Barcode Generator
Server Details
Generate barcodes and QR codes in 35 symbologies: QR, Data Matrix, PDF417, EAN-13, Code 128, more.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
TDQS
Scored across 3 tools
The three tools split cleanly along action lines: generate produces an image, get_barcode_type returns technical reference for one format, and list_barcode_types enumerates all formats. No two tools overlap in purpose, and the descriptions reinforce the intended call order (list -> get -> generate).
All three names follow a strict verb_noun snake_case pattern (generate_barcode, get_barcode_type, list_barcode_types). The shared 'barcode' domain noun keeps the set predictable and readable.
Three tools is at the low end but each earns its place: one generator plus two reference/lookup helpers that directly support correct usage of the generator. Nothing feels redundant or missing from a count perspective, though it is a minimal surface.
The generation lifecycle is well covered: discovery of formats, per-format technical reference, and rendering across 35 symbologies with validation feedback. Minor gaps exist for adjacent operations like decoding/reading an existing barcode or batch generation, but the stated purpose (generation) is fully served.
Available Tools
3 toolsgenerate_barcodeGenerate barcodeARead-onlyIdempotentInspect
Encode a value into any of 35 barcode and QR symbologies and return the rendered image. Supports QR Code, Data Matrix, PDF417, Aztec, EAN-13, UPC-A, Code 128/39/93, ITF-14 and more. Returns SVG markup by default (or a data: URI when asked), plus a link to the online generator pre-filled with the same value. Use "type" with the canonical name from list_barcode_types; common spellings like "qr" or "code-128" are accepted. Linear formats such as EAN-13 enforce strict charset and length rules and will fail on invalid input.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | Barcode symbology, e.g. "Qrcode", "Ean13", "Code128", "Datamatrix", "Pdf417", "gs1-128". | |
| value | Yes | The data to encode — a URL, product number, tracking code, phone number, Wi-Fi string, etc. | |
| format | No | Output encoding. "svg" returns XML markup; "data-uri" returns a ready-to-embed data: URL. | svg |
| height | No | Symbol height in pixels (linear formats mainly). | |
| caption | No | Optional human-readable text drawn under the symbol. Defaults to the value itself. | |
| showText | No | Draw the human-readable caption under the symbol. | |
| errorCorrection | No | QR error-correction level. Higher levels survive more damage but produce a denser symbol. Ignored by linear formats. | M |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (readOnly, idempotent, non-destructive), so the bar is lower, yet the description still adds real context: default SVG output vs data: URI, an accompanying pre-filled link, and that linear symbologies fail on invalid input.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four front-loaded sentences, none wasted: capability, supported formats, return shape, then the type-value and validation caveats. Information density is high with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by describing exactly what is returned (SVG markup or data: URI plus an online-generator link), and it covers type sourcing and validation limits. An agent has everything needed to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% so the baseline is 3, but the description adds meaning beyond the schema by pointing at list_barcode_types for canonical 'type' values and noting lenient spellings like "qr" or "code-128" are accepted, plus the failure behavior tied to strict charsets.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Encode a value into any of 35 barcode and QR symbologies and return the rendered image') and enumerates supported formats, which clearly distinguishes it from the sibling read-only tools get_barcode_type and list_barcode_types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent to list_barcode_types for canonical type names and warns that linear formats like EAN-13 enforce strict charset/length rules. It lacks an explicit when-not-to-use statement, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_barcode_typeGet barcode type detailsARead-onlyIdempotentInspect
Return the full technical reference for one symbology: character set, data length, check digit rules, X-dimension and quiet-zone guidance, print ratio, magnification, governing standard, inventor and year, typical applications, FAQ, and related formats. Use this to pick a format for a requirement, or to find out why generate_barcode rejected a value.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | Barcode symbology to look up, e.g. "Qrcode", "Ean13", "gs1-128", "pdf417". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as a safe, idempotent, closed-world read, so the safety profile is covered. The description adds real behavioral value by disclosing the depth and breadth of the returned reference (standards, check-digit rules, quiet-zone guidance, FAQ), which matters because no output schema exists. It does not say whether unknown or mis-cased identifiers error or how they are normalized.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Opens with the core verb and resource, then a dense but purposeful enumeration of return contents, closed by two usage cases. The list is long but each item earns its place given there is no output schema; nothing is redundant padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of explaining return values and does so thoroughly, plus it routes the agent to generate_barcode for diagnostics. It leaves unresolved the failure behavior for unknown symbology names, which is the one gap an agent would hit in practice.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single parameter is already documented with mixed-case examples ('Qrcode', 'Ean13', 'gs1-128', 'pdf417'). The description only restates that the parameter identifies one symbology, adding no case-sensitivity or lookup-syntax detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Return the full technical reference for one symbology,' then enumerates exactly what that reference contains. The singular 'one symbology' implicitly contrasts with the list_barcode_types sibling, and generate_barcode is named explicitly. An agent can distinguish this from both siblings without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives two concrete use cases: picking a format for a requirement, and diagnosing why generate_barcode rejected a value. This is clear context and implies the alternative table-lookup tool, but it never explicitly states when to use list_barcode_types instead of this one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_barcode_typesList barcode typesARead-onlyIdempotentInspect
List every symbology this server can generate (35 formats), grouped by family, with a one-line summary and sample data for each. Call this first when you are unsure which "type" to pass to generate_barcode. Optionally narrow by family (e.g. "EAN / UPC", "2D Barcodes") or category ("linear", "stacked", "2d").
| Name | Required | Description | Default |
|---|---|---|---|
| family | No | Case-insensitive substring match on the family name, e.g. "Code 128", "2D", "EAN". | |
| category | No | Restrict to one structural class of symbology. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false, so safety is covered. The description adds genuinely useful behavior beyond that: the result is a grouped catalog of 35 formats with one-line summaries and sample data, which matters since there is no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the core purpose, then the routing guidance, then the optional filters. No filler or restatement of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by describing the return shape (grouped by family, summary, sample data), and it covers both optional filter parameters. An agent has everything needed to decide when and how to call it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description goes slightly beyond by giving concrete family values that actually appear in the catalog ('EAN / UPC', '2D Barcodes'), helping the agent supply a matchable string rather than guessing at the schema's generic examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (list) and resource (barcode symbologies/types) plus scope: 35 formats, grouped by family, with summaries and sample data. It is clearly distinguishable from generate_barcode (produces a barcode) and get_barcode_type (details for one type).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells the agent when to call it: 'Call this first when you are unsure which "type" to pass to generate_barcode.' It names the dependent sibling tool and the condition that triggers use, plus the optional narrowing paths.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
- First observed
generate_barcode - First observed
get_barcode_type - First observed
list_barcode_types
Related MCP Connectors
Decode, render, validate barcodes: QR, DataMatrix, EAN, UPC, PDF417. All tools free, no auth.
Generate QR codes (URL, WiFi, vCard) and barcodes as PNG/SVG
QR codes and barcodes offline: WiFi, vCards, SEPA payment codes, Code 128, EAN-13, SVG or PNG.
QR & barcode toolkit: generate, decode, vector SVG, logo QR, WiFi and vCard QR codes.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables encoding 100+ barcode symbologies and decoding common 1D/2D formats, plus terminal QR codes.1MIT
- AlicenseAqualityDmaintenanceMCP server for generating and decoding barcodes, QR codes, and encoding RFID EPCs according to GS1 standards. All processing is local with no network calls.5MIT
- AlicenseAqualityAmaintenanceMCP server for scanning and generating barcodes and QR codes. Enables decoding barcodes from images, generating QR codes, and creating barcodes in multiple formats.341 npm1MIT
- AlicenseNot gradedqualityDmaintenanceEnables barcode decoding from URLs, uploaded files, or raw bytes via HTTP and MCP, supporting formats like EAN13, QRCode, and DataMatrix.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.