{
  "id": "barcode.generate",
  "object": "tool",
  "name": "Barcode",
  "summary": "Retail, shipping and 2D barcodes.",
  "description": "Generates SVG barcodes: Code 128, Code 39, EAN-13, EAN-8, UPC-A, UPC-E, ITF-14, GS1-128, Data Matrix, PDF417, Aztec and QR. Checks the input for the symbology, including check digits.",
  "category": "images",
  "hosted_by": "Opentools",
  "runtime": "worker",
  "side_effects": false,
  "status": "live",
  "credits": 0,
  "price": "$0.0000",
  "providers": [
    {
      "id": "opentools",
      "name": "Opentools",
      "price": "$0.0000"
    }
  ],
  "mcp_name": "barcode_generate",
  "input_schema": {
    "type": "object",
    "properties": {
      "symbology": {
        "type": "string",
        "enum": [
          "code128",
          "code39",
          "ean13",
          "ean8",
          "upca",
          "upce",
          "itf14",
          "datamatrix",
          "pdf417",
          "azteccode",
          "qrcode",
          "gs1-128"
        ],
        "description": "Barcode type"
      },
      "text": {
        "type": "string",
        "minLength": 1,
        "maxLength": 4000,
        "description": "Data to encode. GS1-128 uses AIs like \"(01)09521234543213\""
      },
      "include_text": {
        "default": true,
        "description": "Print the human-readable text under linear barcodes",
        "type": "boolean"
      },
      "alt_text": {
        "description": "Text to print instead of the encoded data",
        "type": "string",
        "maxLength": 200
      },
      "text_size": {
        "default": 10,
        "description": "Size of the printed text in points",
        "type": "number",
        "minimum": 4,
        "maximum": 40
      },
      "scale": {
        "default": 3,
        "description": "Size multiplier",
        "type": "integer",
        "minimum": 1,
        "maximum": 10
      },
      "height": {
        "default": 15,
        "description": "Bar height in millimetres (linear barcodes)",
        "type": "number",
        "minimum": 2,
        "maximum": 100
      },
      "padding": {
        "default": 4,
        "description": "Quiet zone around the code, in modules",
        "type": "integer",
        "minimum": 0,
        "maximum": 50
      },
      "foreground": {
        "default": "#000000",
        "description": "Bar colour",
        "type": "string",
        "pattern": "^#[0-9a-fA-F]{6}$"
      },
      "background": {
        "description": "Background colour. Transparent if omitted.",
        "type": "string",
        "pattern": "^#[0-9a-fA-F]{6}$"
      },
      "text_color": {
        "description": "Text colour. Same as the bars if omitted.",
        "type": "string",
        "pattern": "^#[0-9a-fA-F]{6}$"
      }
    },
    "required": [
      "symbology",
      "text"
    ]
  },
  "kind": "tool"
}