Skip to main content
Glama

@convalexa/barcode-mcp

MCP (Model Context Protocol) server that gives AI assistants Convalexa's barcode, QR and RFID/EPC tools — generate, bulk-generate, encode EPCs and decode barcodes. Runs locally over stdio; nothing is uploaded.

Built by Convalexa Solutions LLP — Make-in-India UHF RFID & barcode. Companion to the free web tools at https://www.convalexa.in/tools/.

Tools

Tool

What it does

encode_epc

Encode SGTIN-96 / SSCC-96 / GIAI-96 EPC (hex + EPC URI + 96-bit binary) from a GS1 company prefix, reference and serial, per the GS1 EPC Tag Data Standard.

generate_barcode

Generate a 1D barcode (Code 128, EAN-13, EAN-8, UPC-A, Code 39, ITF-14) or QR as a PNG.

generate_qr

Generate a QR code as a PNG (convenience wrapper).

bulk_barcode

Generate up to 50 barcodes/QRs at once from a list.

decode_barcode

Decode 1D/2D barcodes from an image (base64 or file path) → value + format.

encode_epc computes the EPC value to write to a tag — a browser/host cannot program a physical tag. SGTIN-96 output is validated against the GS1 reference vector 3074257BF7194E4000001A85.

Related MCP server: eanscan-mcp

Install

Claude Desktop / Claude Code (after npm publish)

{
  "mcpServers": {
    "convalexa-barcode": {
      "command": "npx",
      "args": ["-y", "@convalexa/barcode-mcp"]
    }
  }
}

Local / from source (before publish)

{
  "mcpServers": {
    "convalexa-barcode": {
      "command": "node",
      "args": ["/absolute/path/to/convalexa-mcp/src/index.js"]
    }
  }
}

Claude Desktop config lives at: macOS ~/Library/Application Support/Claude/claude_desktop_config.json, Windows %APPDATA%\Claude\claude_desktop_config.json. For Claude Code: claude mcp add convalexa-barcode -- npx -y @convalexa/barcode-mcp.

Remote hosting (optional)

For a hosted connector (e.g. https://mcp.convalexa.in/mcp) usable without a local install, run the Streamable HTTP variant on a Node host. Your .aspx/IIS host can't run this — use a Node host (Railway, Fly.io, Render, or a small VPS).

npm install express          # express is an optional dependency
PORT=8787 MCP_API_KEY=secret npm run start:http
# endpoints: POST /mcp   GET /healthz

Or with Docker:

docker build -t convalexa-barcode-mcp .
docker run -p 8787:8787 -e MCP_API_KEY=secret convalexa-barcode-mcp

Then point a subdomain (e.g. mcp.convalexa.in) at the host over HTTPS and add it as a custom MCP connector. MCP_API_KEY (optional) requires Authorization: Bearer <key>. The server runs stateless (a fresh MCP instance per request).

Develop

npm install
npm test          # unit smoke test (epc vector, generate, decode round-trip)
node test/client.js   # end-to-end MCP handshake + tool calls
npm start         # run the stdio server directly

Stack

Node ≥18, ESM. @modelcontextprotocol/sdk, zod, bwip-js (generation), @zxing/library + jimp (decoding). No network calls; all processing is local.

License

MIT © Convalexa Solutions LLP

Available Tools

5 tools
bulk_barcodeBulk generate barcodesA

Generate many barcodes/QR codes at once from a list. Returns one PNG per item (capped at 50).

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesList of values to encode (one barcode each, max 50)
scaleNoPixel scale factor (default 3)
heightNo1D bar height (default 10; ignored for QR)
symbologyNoBarcode type for all items (default code128)
includetextNoShow value under 1D barcodes (default true)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It discloses the output format (one PNG per item) and the hard limit of 50, which are key runtime behaviors. While it does not mention side effects or permissions, this is a non-destructive generation task, so the transparency is adequate and exceeds the minimum.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, each serving a distinct purpose: stating the bulk action and specifying the output behavior with a cap. It is front-loaded and free of unnecessary detail, making it highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the moderate complexity (5 parameters, no output schema, no annotations), the description provides the core purpose, output format, and an important constraint (cap). It does not explicitly describe parameter interactions or defaults, but the schema covers these, making the description sufficient for most use cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, meaning every parameter is already documented in the schema. The description adds no parameter-specific details beyond the list input, so it does not need to compensate for gaps. A baseline score of 3 is appropriate because the schema carries the explanatory weight.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool generates many barcodes/QR codes at once from a list, which is a specific verb+resource combination. It distinguishes itself from siblings like generate_barcode and generate_qr by emphasizing bulk operation, and the output detail (one PNG per item, capped at 50) adds further clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the intended use case—batch generation from a list—and the cap at 50 suggests handling multiple items. However, it does not explicitly name alternatives or state when not to use this tool (e.g., for a single barcode). The sibling names provide context, but the description itself lacks explicit exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

decode_barcodeDecode barcode from imageA

Decode 1D and 2D barcodes (QR, Code 128, EAN, UPC, Code 39, DataMatrix, etc.) from an image supplied as a base64 string or a local file path. Returns the decoded value(s) and format(s).

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoLocal image file path (png/jpg/etc.)
base64NoImage as base64 (data URI prefix allowed)
formatsNoOptional list of zxing formats to restrict to (e.g. ["QR_CODE","CODE_128"])

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description does the job of disclosing core behavior: it takes an image (base64 or path) and returns decoded values and formats. It doesn't mention potential limitations or edge-case behavior, but for a read-only decode operation, it provides adequate transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with purpose and formats. Every sentence is informative with no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description explains the return value and input options, but the schema allows zero required parameters, and the description doesn't explicitly state that at least one of path/base64 must be provided. This ambiguity could lead an agent to call with no input, so it isn't fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already covers all three parameters with descriptions (100% coverage). The description adds no extra meaning beyond stating the input can be base64 or file path, which is already in the schema. It doesn't clarify the mutual exclusivity of path/base64 or that none are formally required.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'Decode' and clearly identifies the resource as barcodes from an image, listing many format examples. It is distinct from the sibling tools which are generation/encoding tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The tool's purpose as a decoder is clear and contrasts with siblings that generate/encode barcodes. However, it doesn't explicitly state when to choose this over alternatives or mention any exclusions, but the context is sufficient for most use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

encode_epcEncode EPC (UHF RFID)A

Encode an SGTIN-96, SSCC-96 or GIAI-96 EPC for UHF RFID tags from a GS1 company prefix, reference and (for SGTIN) serial. Returns the EPC hex, EPC tag URI and 96-bit binary. This computes the value to write to a tag; it does not program a physical tag.

ParametersJSON Schema
NameRequiredDescriptionDefault
filterNoFilter value 0-7 (default 1 for SGTIN, 0 otherwise)
schemeYesEPC scheme
serialNoSGTIN only: numeric serial (0 to 274877906943)
referenceYesSGTIN: item reference incl. indicator digit; SSCC: serial reference incl. extension digit; GIAI: individual asset reference
companyPrefixYesGS1 company prefix, 6-12 digits

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It transparently states the tool computes a value and does not physically program a tag, and it lists the outputs (EPC hex, tag URI, binary). It does not cover potential validation errors or edge cases, but for a pure computation tool, the key behavioral traits are disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long and front-loaded with the action and target. It efficiently states the inputs, outputs, and a crucial caveat without redundancy or fluff. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Although there is no output schema, the description explicitly states the return values (EPC hex, tag URI, and 96-bit binary), which is essential for a tool with no structured response definition. It also clarifies the scope (computes, not physically writes). It does not provide examples or detailed scheme-specific guidance, but given the schema richness, it is sufficiently complete for an agent to use correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides 100% coverage for all five parameters, each with detailed descriptions. The tool description adds minimal extra meaning beyond naming the inputs in prose. Since the schema does the heavy lifting, a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description begins with a specific verb 'Encode' and clearly identifies the resource (SGTIN-96, SSCC-96, or GIAI-96 EPC for UHF RFID tags). It lists the exact input types and distinguishes itself from sibling tools that deal with barcodes/QR codes rather than RFID EPC encoding.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use this tool: for computing EPC values for UHF RFID tags. It explicitly states what it does not do ('does not program a physical tag'), providing a clear exclusion. However, it does not name alternative tools or compare itself to siblings, though siblings are clearly different in purpose.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_barcodeGenerate barcodeC

Generate a 1D barcode (Code 128, EAN-13, EAN-8, UPC-A, Code 39, ITF-14) or QR code as a PNG image.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYesThe data/text to encode
scaleNoPixel scale factor (default 3)
heightNo1D bar height in mm-units (default 10; ignored for QR)
eclevelNoQR error-correction level (default M)
symbologyNoBarcode type (default code128)
includetextNoShow the human-readable value under 1D barcodes (default true)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of disclosure, but it only states the output format (PNG image) and supported symbologies. It does not explain the return value representation, error handling, size limits, or any side effects. This is insufficient for an agent to anticipate tool behavior reliably.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that conveys the core functionality and supported formats without redundancy. Every word earns its place, and it is appropriately sized for a relatively simple tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 6 parameters, no output schema, and no annotations, yet the description provides minimal context. It doesn't explain the actual return format (e.g., file path, base64 data), how errors are surfaced, or the difference between 1D barcodes and QR handling. This is incomplete for an agent to use the tool correctly without additional assumptions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so each parameter is already documented with meaningful descriptions. The tool description adds no additional parameter semantics beyond what the schema provides, such as cross-parameter dependencies (e.g., height ignored for QR). The baseline of 3 is appropriate given full schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool generates barcodes and QR codes as PNG images, listing specific symbologies. However, the overlap with sibling tool 'generate_qr' is not addressed, so the description doesn't fully distinguish when to use this tool rather than that one. The verb and resource are specific, but sibling differentiation is incomplete.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like 'generate_qr' for QR codes or 'bulk_barcode' for multiple barcodes. The description doesn't mention any conditions, exclusions, or preferred scenarios. The agent is left to infer usage solely from the tool name and sibling list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_qrGenerate QR codeA

Generate a QR code as a PNG image. Convenience wrapper around generate_barcode for QR.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYesText, URL or data to encode
scaleNoPixel scale factor (default 4)
eclevelNoError-correction level (default M)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It discloses the output format (PNG) and its wrapper relationship to generate_barcode, but does not mention side effects, error behavior, or limitations. For a simple generation tool, this is acceptable but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is only two sentences, with the core action in the first sentence and the sibling relationship in the second. No filler or redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple 3-parameter schema and full schema coverage, the description provides enough context to understand the tool's purpose and output. The lack of output schema means return format is implied by 'PNG image', which is adequate but not explicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers 100% of parameters with descriptions, so the baseline is 3. The description does not add further meaning to parameters like data, scale, or eclevel beyond what the schema already states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool generates a QR code as a PNG image, using a specific verb and resource. It distinguishes itself from generate_barcode by explicitly calling itself a convenience wrapper for QR, so an agent knows this is the QR-specific option.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions it is a convenience wrapper around generate_barcode for QR, implying that for QR code generation this tool is preferred over the more general generate_barcode. However, it does not explicitly state when to use alternatives like bulk_barcode or decode_barcode, so guidance is helpful but not fully explicit.

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. Dates show when Glama detected each change.

  1. 5 tool updatesv0.1.0
    • First observedbulk_barcode
    • First observeddecode_barcode
    • First observedencode_epc
    • First observedgenerate_barcode
    • First observedgenerate_qr

TDQS

A3.8/5.0
Disambiguation5/5

Each tool targets a distinct operation: decoding, generating a QR, encoding an EPC, generating a general barcode, and bulk generation. The potential overlap between generate_qr and generate_barcode is explicitly resolved by naming generate_qr as a convenience wrapper.

Naming Consistency4/5

Most tools follow a clear verb_noun pattern (decode_barcode, generate_qr, encode_epc, generate_barcode). bulk_barcode deviates slightly as an adjective_noun, but it's understandable and not chaotic.

Tool Count5/5

With 5 tools, the server covers a coherent set of barcode operations without being bloated. This is an appropriate scope for a specialized barcode MCP server.

Completeness4/5

The server provides decoding, generation, bulk generation, and EPC encoding, covering common workflows. However, it lacks generation support for 2D formats other than QR (e.g., DataMatrix), which are decodable, creating a minor gap.

Maintenance

ActivityStale
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server for looking up EAN/UPC barcodes to get localized product details like title, description, price, and images.
    8
    1
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides GTIN barcode validation and check digit computation for EAN-13, UPC-A, EAN-8, and GTIN-14 formats as an MCP server, part of the Pipeworx gateway.
    14
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables encoding 100+ barcode symbologies and decoding common 1D/2D formats, plus terminal QR codes.
    1
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Convalexa-Solutions-LLP/barcode-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server