Barcode Tools (decode, render, GTIN validate)
Server Details
Decode, render, validate barcodes: QR, DataMatrix, EAN, UPC, PDF417. All tools free, no auth.
- Status
- Healthy
- Uptime
- 98.2% over 22 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 4 tools
Each tool targets a distinct function: decoding, rendering, format listing, and GTIN validation. There is no meaningful overlap even though decode and validate both relate to barcode content.
All tools use a consistent snake_case verb_noun pattern (decode_barcode, list_formats, render_barcode, validate_gtin). This makes the intended action and target clear before reading the description.
With four tools, the server is tightly scoped to the core barcode operations of decode, render, validate, and format discovery. No tool feels redundant, and the count is appropriate for a focused utility server.
The server covers the primary barcode lifecycle: reading existing barcodes, creating new ones, validating GTINs, and enumerating supported formats. The render self-check and format matrix avoid dead ends, and no essential operation appears to be missing.
Available Tools
4 toolsdecode_barcodeDecode barcodes from an imageAInspect
Detect and decode all barcodes in an image. Input: base64-encoded image bytes (PNG/JPEG/WebP/anything sharp reads). Output: JSON array of {format, text}. Supports QR, Aztec, DataMatrix, Code128/39/93, EAN-13/8, UPC-A/E, ITF, PDF417, Codabar. Use formats filter to restrict results.
| Name | Required | Description | Default |
|---|---|---|---|
| formats | No | Optional canonical format ids to keep, e.g. ["qr","ean13"] | |
| image_base64 | Yes | Base64-encoded image file bytes (no data: URI prefix) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries the full burden of disclosing behavior. It covers input format (base64 image bytes, no data URI prefix), output shape (JSON array of {format, text}), and supported symbologies. It omits edge-case behavior such as error handling for invalid base64, empty result when no barcode is found, or image size limits—so it is adequate but not thorough.
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 sentences, all substantive: purpose, input, output, and supported formats/usage tip. The phrasing is tight, though 'anything sharp reads' is informal and slightly imprecise. The structure front-loads purpose and then gives necessary I/O details.
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?
For a 2-parameter tool with full schema coverage and no output schema, the description provides what an agent needs to invoke it: input encoding, output structure, supported formats, and optional filtering. It could add failure modes, but nothing essential for a typical call is missing.
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?
With 100% schema coverage, the baseline is 3, but the description adds value by listing accepted format identifiers and explicitly saying the formats filter restricts results. This goes beyond the schema's single example and helps the agent craft valid filter values.
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?
The description opens with 'Detect and decode all barcodes in an image,' naming a specific verb and resource. It also lists supported symbologies (QR, Aztec, DataMatrix, etc.), which effectively distinguishes this tool from siblings like render_barcode (which creates images) and validate_gtin (which validates codes).
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?
The intended use is clear: when you need to decode barcodes from an image. It also gives a concrete usage tip ('Use formats filter to restrict results'). However, it never explicitly contrasts with siblings or states when not to use it, so it falls one step short of a fully explicit routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_formatsList supported symbologiesAInspect
Static table of supported barcode formats with render/decode support and notes.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. 'Static table' communicates that the call is a read-only, deterministic lookup with no side effects, and 'render/decode support and notes' previews the returned contents. It does not overpromise behavior, though it does not spell out auth or limits.
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?
A single noun phrase conveys the tool's type, scope, and returned fields with no filler. The key differentiator—static reference rather than operational tool—appears first.
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?
Given zero parameters and no output schema, the description gives enough information to call and interpret the result: a table of formats with render/decode support and notes. It omits explicit usage instructions, but for a static reference tool this is a minor gap rather than a blocking omission.
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?
The tool has zero parameters, so the baseline is 4 and the description has no obligation to document arguments. The description adds no parameter-specific semantics, which is acceptable because there are none to explain.
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?
The description identifies a specific resource—supported barcode formats—and frames the operation as a static listing, which is distinct from the active operations performed by decode_barcode, render_barcode, and validate_gtin. It does not explicitly name those alternatives, so it stops short of the strongest differentiation.
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?
Usage context is implied: an agent would call this when it needs to know which formats are supported or whether render/decode is available. There is no explicit when-to-use guidance, prerequisite note, or mention of alternatives, but the lack of parameters and the listing title make misuse unlikely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_barcodeRender a barcode/QR to PNGAInspect
Render text as a barcode PNG. format: one of qr, aztec, datamatrix, code128, code39, code93, ean13, ean8, upca, itf, pdf417. Output: base64 PNG plus 'decoded' self-check flag (we decode our own render; upca intentionally verifies as zero-padded EAN-13). GTIN codes must have a valid mod-10 checksum.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Payload to encode (digits for GTIN symbologies) | |
| scale | No | Rasterization scale, default 6 | |
| format | Yes | Symbology id: qr, aztec, datamatrix, code128, code39, code93, ean13, ean8, upca, itf, pdf417 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden and does so well by disclosing the output shape (base64 PNG plus decoded self-check flag), the self-check behavior, and the intentional UPCA-as-zero-padded-EAN-13 quirk. It does not mention error cases or side effects, but rendering is a benign operation and the key behavioral caveats are covered.
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 tight sentences: one for the core action, one for the format enumeration, and one for output and validation caveats. Information is front-loaded and every sentence earns its place.
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?
For a tool with no output schema, the description compensates by explaining the return payload and self-check flag, and it documents format constraints. It omits explicit alternative routing and potential error conditions, but for a simple 3-parameter render tool this is adequate.
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; the schema already documents text, scale, and format with descriptions. The description adds value by naming all format options and the GTIN checksum constraint, but it does not substantially enrich the meaning of text or scale beyond what the schema provides.
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 concrete action ('Render') and resource ('text as a barcode PNG'), and enumerates supported symbologies. This clearly distinguishes it from siblings decode_barcode, list_formats, and validate_gtin.
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?
The description makes the rendering use case clear and adds practical constraints like the mod-10 checksum requirement for GTIN codes. It does not explicitly name alternatives or state when not to use the tool, but the sibling names and context make the intended usage evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_gtinValidate a GTIN/EAN/UPC codeAInspect
Check a product code against GTIN rules: length + mod-10 checksum. Returns {valid, type: ean13|ean8|upcA|null, normalized}. Rejects codes with a broken checksum (e.g. 8595234703191).
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | Candidate product code, digits only |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the validation logic (length + mod-10 checksum), the exact return shape ({valid, type, normalized}), and rejection behavior with a concrete example. Minor ambiguity remains around what 'rejects' means (false vs error) and normalization semantics, but this is strong coverage for a simple tool.
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?
Two sentences, zero filler, front-loaded with the core function, then return shape and rejection example. Every clause earns its place.
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?
For a single-parameter validation tool with no output schema, the description explains the return value and validation rule. It omits details like the meaning of 'normalized' and behavior on non-digit input, but the tool is simple enough that these are minor gaps.
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%: the 'code' parameter is already described as 'Candidate product code, digits only'. The description adds no extra parameter semantics beyond echoing the schema, so the baseline of 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 ('Check a product code') and resource ('GTIN rules') with precise criteria: length + mod-10 checksum. This clearly separates it from siblings like decode_barcode, list_formats, and render_barcode, which serve different purposes.
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?
Usage context is implied by the purpose: use when you need to validate a GTIN/EAN/UPC code rather than decode or render it. However, it never explicitly states when to use this tool instead of alternatives, and no exclusions or conditions are given.
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.
4 tool updates
- Changed
decode_barcode1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
list_formats1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
render_barcode1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
validate_gtin1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
4 tool updates
- First observed
decode_barcode - First observed
list_formats - First observed
render_barcode - First observed
validate_gtin
Related MCP Connectors
QR & barcode toolkit: generate, decode, vector SVG, logo QR, WiFi and vCard QR codes.
Generate static QR codes (URL, WiFi, vCard, pixel art) and decode QR images. Codes never expire.
QR codes and barcodes offline: WiFi, vCards, SEPA payment codes, Code 128, EAN-13, SVG or PNG.
Render, validate, encode/decode PlantUML diagram-as-code; 22 diagram types. Free, no auth.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables barcode decoding from URLs, uploaded files, or raw bytes via HTTP and MCP, supporting formats like EAN13, QRCode, and DataMatrix.MIT
- AlicenseNot gradedqualityBmaintenanceGenerate QR codes and create, edit and track dynamic (editable) QR codes with scan analytics, folders, style themes and branded subdomain management. Free REST API with an OpenAPI spec alongside; every tool takes a free API key.10AGPL 3.0
- AlicenseNot gradedqualityCmaintenanceEnables encoding 100+ barcode symbologies and decoding common 1D/2D formats, plus terminal QR codes.1MIT
- FlicenseNot gradedqualityBmaintenanceEnables AI agents to decode and render barcodes/QR codes and validate GTINs via the Model Context Protocol, with both hosted and self-hosted deployment options.-
Glama MCP Gateway
Add one secure layer between your agents and this server.