barcode-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@barcode-mcpgenerate a QR code that links to https://example.com"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@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 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 a 1D barcode (Code 128, EAN-13, EAN-8, UPC-A, Code 39, ITF-14) or QR as a PNG. |
| Generate a QR code as a PNG (convenience wrapper). |
| Generate up to 50 barcodes/QRs at once from a list. |
| Decode 1D/2D barcodes from an image (base64 or file path) → value + format. |
encode_epccomputes 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 vector3074257BF7194E4000001A85.
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 /healthzOr with Docker:
docker build -t convalexa-barcode-mcp .
docker run -p 8787:8787 -e MCP_API_KEY=secret convalexa-barcode-mcpThen 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 directlyStack
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 toolsbulk_barcodeBulk generate barcodesA
Generate many barcodes/QR codes at once from a list. Returns one PNG per item (capped at 50).
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | List of values to encode (one barcode each, max 50) | |
| scale | No | Pixel scale factor (default 3) | |
| height | No | 1D bar height (default 10; ignored for QR) | |
| symbology | No | Barcode type for all items (default code128) | |
| includetext | No | Show value under 1D barcodes (default true) |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | Local image file path (png/jpg/etc.) | |
| base64 | No | Image as base64 (data URI prefix allowed) | |
| formats | No | Optional list of zxing formats to restrict to (e.g. ["QR_CODE","CODE_128"]) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | Filter value 0-7 (default 1 for SGTIN, 0 otherwise) | |
| scheme | Yes | EPC scheme | |
| serial | No | SGTIN only: numeric serial (0 to 274877906943) | |
| reference | Yes | SGTIN: item reference incl. indicator digit; SSCC: serial reference incl. extension digit; GIAI: individual asset reference | |
| companyPrefix | Yes | GS1 company prefix, 6-12 digits |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | The data/text to encode | |
| scale | No | Pixel scale factor (default 3) | |
| height | No | 1D bar height in mm-units (default 10; ignored for QR) | |
| eclevel | No | QR error-correction level (default M) | |
| symbology | No | Barcode type (default code128) | |
| includetext | No | Show the human-readable value under 1D barcodes (default true) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Text, URL or data to encode | |
| scale | No | Pixel scale factor (default 4) | |
| eclevel | No | Error-correction level (default M) |
TDQS
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.
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.
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.
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.
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.
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.
5 tool updates
v0.1.0- First observed
bulk_barcode - First observed
decode_barcode - First observed
encode_epc - First observed
generate_barcode - First observed
generate_qr
TDQS
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.
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.
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.
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
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
MCP server for real-time product search by barcode (EAN, UPC, GTIN) or keyword on ean-search.org
MCP server for Api2Pdf — generate PDFs & images from HTML, URLs or office files; merge, barcodes.
Barcode / GTIN validation MCP (EAN-13, UPC-A, EAN-8, GTIN-14).
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceMCP server for looking up product information by UPC, EAN, GTIN barcodes and PLU produce codes.-
- AlicenseNot gradedqualityCmaintenanceMCP server for looking up EAN/UPC barcodes to get localized product details like title, description, price, and images.81MIT
- AlicenseNot gradedqualityCmaintenanceProvides 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.14MIT
- AlicenseNot gradedqualityBmaintenanceEnables encoding 100+ barcode symbologies and decoding common 1D/2D formats, plus terminal QR codes.1MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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