mcp-barcode
Generates EPC069-12 SEPA payment QR codes with IBAN, beneficiary name, amount, and reference, validated with ISO 7064 mod 97 so euro banking apps can scan and prefill payment details.
mcp-barcode
MCP server for QR code and barcode generation: generates barcodes and QR codes. QR codes and barcodes drawn on your machine, with no upload and no network call.
Works with Claude Desktop, Claude Code, Cursor and any Model Context Protocol client. Runs on your own machine, or hosted with no install.
Product page: https://mcp.zovo.one/s/barcode — what it does, the tools it exposes, and a live token endpoint.
Install
Hosted, nothing to install. Get a token from https://mcp.zovo.one/mcp/connect (the connect page) or https://mcp.zovo.one/mcp/token (the same token as JSON); a free anonymous one is issued on the spot and a Pro key works the same way. Then point an MCP client at https://mcp.zovo.one/mcp/barcode over streamable-http and send the token as Authorization: Bearer <token>.
If your client cannot set headers, put the token in the path instead: https://mcp.zovo.one/mcp/barcode/t/<token>. Both forms work. The bare URL with no token answers 401 on tools/call, so the token is not optional.
Claude Desktop, one click. Download barcode.mcpb from the latest release and double-click it.
From source. The mirror is self-contained: every @theluckystrike/* dependency is vendored, so a fresh clone builds with no extra setup.
git clone https://github.com/theluckystrike/mcp-barcode.git
cd mcp-barcode
npm install && npm run buildThen point your client at the built entry point:
{
"mcpServers": {
"barcode": {
"command": "node",
"args": ["/absolute/path/to/mcp-barcode/dist/index.js"]
}
}
}
@theluckystrike/mcp-barcodeis not published on npm yet, so annpx -y @theluckystrike/mcp-barcodecommand will fail. The three paths above are the working ones and each is exercised by CI.

Read-only mirror of mcp-servers/servers/barcode. See MIRROR.md.
Make a QR code or a barcode in the conversation you are already in. Paste a URL and get a QR code you can put on a flyer. Give a client's invoice an EPC payment code their banking app scans and fills in for them. Print an EAN-13 for a product, a Code 128 for a shelf label, a WiFi code for the office wall, a vCard for a conference badge. Everything is drawn on your machine: no upload, no account, no API key, and no network call of any kind.
In the official MCP Registry (io.github.theluckystrike/barcode-qr-code-sepa-payment-ean13).
Listed on the AI Product Index — live remote endpoint at mcp.zovo.one/s/barcode, free tier, no signup.
npm publish for @theluckystrike/mcp-barcode is pending, so npx -y @theluckystrike/mcp-barcode returns 404 today. Until then, the .mcpb one-click bundle or a clone+build is the working path.
Related MCP server: QRzap MCP Server
Install
Claude Desktop, ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or
%APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"barcode": { "command": "npx", "args": ["-y", "@theluckystrike/mcp-barcode"] }
}
}Claude Code:
claude mcp add barcode -- npx -y @theluckystrike/mcp-barcodeCursor, .cursor/mcp.json:
{
"mcpServers": {
"barcode": { "command": "npx", "args": ["-y", "@theluckystrike/mcp-barcode"] }
}
}Tools
tool | what it does |
| Text or a URL as a QR code, at any error correction level, SVG or PNG |
| A code that joins a WiFi network when scanned |
| A code that adds a contact (vCard 3.0) |
| An EPC069-12 payment code a euro banking app scans: IBAN, name, amount, reference |
| The payment code for an invoice, using the IBAN and name from your shared business profile |
| Code 128, EAN-13, EAN-8 or UPC-A, with the check digit computed or verified |
| Many codes in one call, into a directory (Pro) |
| What you have generated, and how much of this month's free allowance is left |
| Free or Pro, and activating a key |
Free vs Pro
Free | Pro | |
Codes per calendar month | 20 | Unlimited |
SVG (prints at any size) | Yes | Yes |
PNG | No | Yes, 32 to 4000 px |
| No | Yes, up to 500 rows a call |
QR, WiFi, vCard, SEPA payment codes, all four barcode symbologies | Yes | Yes |
Get Pro: https://mcp.zovo.one/buy/barcode - $19 one time, or $39 for every server in the suite, lifetime. Keys verify offline; nothing is sent anywhere.
A wrong check digit is refused, not redrawn
Give barcode_create twelve digits and the thirteenth is computed for you. Give it thirteen and the thirteenth is
checked:
Error: EAN-13 check digit is wrong: "5901234123450" ends in 0, but the first 12 digits give 7.
Pass 5901234123457, or pass the first 12 digits and the check digit is computed. Nothing was written.The alternative, silently redrawing the code the caller asked for, prints a label that scans as a different product, and nobody finds out until the till. The same rule applies to the IBAN in a payment code: it is validated with ISO 7064 mod 97 before anything is drawn, so a transposed pair of digits is caught here rather than by a payment that goes nowhere.
Measured: error correction M is free on a SEPA payment code, Q and H are not
A typical EPC payment record (IBAN, beneficiary, EUR 120.50, an invoice number) is 73 bytes. QR codes come in fixed capacity steps, so raising the error correction level does not raise the code size smoothly:
level | recoverable | QR version | modules a side | change |
L | 7% | 4 | 33 | baseline |
M | 15% | 4 | 33 | no change at all |
Q | 25% | 6 | 41 | +24% |
H | 30% | 7 | 45 | +36% |
L and M land in the same version 4 symbol: at this payload size the extra recovery data still fits in the same
box, so choosing L over M buys nothing and gives up half the damage tolerance. That is why M is the default
here. Q and H are worth asking for only when the code will be printed small, on something that creases, or
behind a logo. On a 300 px PNG the same step costs bytes too: 2,419 at M against 3,462 at H.
Measured: SVG is flat, PNG grows 14x, and they cross at about 200 px
The same payment code written both ways, at five sizes:
requested size | PNG bytes | SVG bytes |
128 px | 1,481 | 2,079 |
256 px | 2,186 | 2,079 |
512 px | 3,589 | 2,079 |
1024 px | 7,585 | 2,081 |
2048 px | 21,688 | 2,081 |
An SVG carries the module grid, not the pixels, so its size barely moves: the two extra bytes at 1024 px are the width attribute getting longer. Below roughly 200 px a PNG is smaller; above it the PNG grows without limit and the SVG does not, and the SVG is the one that stays sharp when a printer scales it up. That is the reason the free tier is the SVG tier rather than a small-PNG tier: for the thing most people do with a code, put it in a document and print it, SVG is the better file, not the consolation prize.
Privacy
Everything stays on your machine. There is no network code in this server at all: no fetch, no HTTP client,
no telemetry. Codes are written where you say, and a small register of what was generated lives under
~/.local/share/mcp-servers/barcode/ (or $XDG_DATA_HOME). License keys verify offline with a public key.
Built by theluckystrike. Support: support@zovo.one
Use these docs as an MCP server
Any MCP client (Claude, Cursor, Windsurf, VS Code) can read this repository's documentation directly via GitMCP — no install:
Docs MCP URL: https://gitmcp.io/theluckystrike/mcp-barcode
Available Tools
10 toolsbarcode_batchBarcodes in bulkA
Call this tool to draw many barcodes or QR codes at once from a list of rows, each with its own value and file name, into out_dir. Pro; the free tier does one code per call.
Inputs: items (required), out_dir (required), text, format, +6 more.
barcode_createBarcodeA
Call this tool to draw a linear barcode (code128, ean13, ean8, upca) as SVG, or PNG to out_path. A short EAN or UPC gets its check digit computed; a wrong one is refused, never redrawn. qr_create makes QR codes.
Inputs: value (required), symbology (required), text, format, +4 more.
code_listCodes generatedARead-onlyIdempotent
List the codes this server generated, newest first, with what each carried and where it went, plus how much of the free 20 a month is used. Filter by kind. It reads the register, not the files.
Inputs: kind, limit.
invoice_payment_qrPayment QR for an invoiceA
Call this tool for a SEPA payment QR from just an amount and reference: IBAN and name are read from the shared business profile, never asked for; pass invoice_id instead to take the amount from an invoice.
Inputs: iban, name, size, amount, +7 more.
license_activateActivate licenseA
Activate a Pro key (MCPL1.xxx.yyy) from checkout: verified offline against a built-in public key, saved to your config file. A wrong, malformed or expired key is refused, unsaved. license_status reads it back.
Inputs: key (required).
license_statusLicense statusA
Report this server's licence state: product, tier free or pro, licence id, expiry, the key source and the upgrade URL. No arguments, no network. Explains a free-tier refusal; license_activate installs a key.
Inputs: no named parameters.
qr_createQR codeA
Call this tool to turn text or a URL into a QR code: SVG inline, or a PNG at a pixel size to out_path (Pro). Returns version, module grid and payload size. Free: 20 codes a month on this server.
Inputs: text (required), size, format, margin, +3 more.
qr_payment_sepaSEPA payment QR codeA
Call this tool for an EPC069-12 payment QR a euro banking app can scan. Amount and reference are enough: the beneficiary IBAN and name default to the shared business profile, never asked for.
Inputs: bic, iban, name, size, +10 more.
qr_vcardContact QR codeB
Call this tool to make a QR code that adds a contact when scanned (vCard 3.0). For your own card pass nothing: name, phone, email and address default to the shared business profile, never asked for.
Inputs: org, url, name, note, +10 more.
qr_wifiWiFi QR codeA
Call this tool to make a QR code that joins a WiFi network when scanned: ssid, password and auth type, written to out_path or returned as SVG. Free: 20 codes a month. qr_create takes plain text or a URL.
Inputs: ssid (required), auth, size, format, +6 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 10 tools
Most tools are clearly separated by payload type (qr_create for text/URL, qr_wifi, qr_vcard, barcode_create, barcode_batch, code_list, and the two license tools). However, invoice_payment_qr and qr_payment_sepa both produce a SEPA payment QR from an amount and reference using the shared business profile's IBAN, so an agent can easily pick the wrong one. The descriptions hint at a difference (invoice_id lookup vs. raw amount), but the boundary is thin and the names do not reinforce it.
The set follows a readable <domain>_<action> convention: qr_*, barcode_*, code_list, license_*. The only real deviations are invoice_payment_qr, which inverts the order used by its near-twin qr_payment_sepa, and the noun_noun license_status alongside noun_verb license_activate. These are minor and still parseable.
Ten tools is a well-scoped set for a QR/barcode generator, with each family (QR types, barcode, batch, history, licensing) earning its place. The only questionable inclusions are two license tools and two near-duplicate payment tools, which nudge it just over the minimum needed.
The core lifecycle is covered: generate single codes (text, WiFi, vCard, SEPA), generate barcodes and batches, list history, and manage licensing. Gaps are minor rather than blocking: no structured QR types beyond WiFi/vCard/payment (e.g. email, SMS, geo), no decode/read-back of an existing code, and no way to delete or prune generated files or history entries.
Maintenance
Related MCP Connectors
Generate QR codes for URLs, PIX, Wi-Fi, vCards, WhatsApp and more. For AI agents.
Generate QR codes (URL, WiFi, vCard) and barcodes as PNG/SVG
Create and manage QR codes on me-qr.com from AI clients like Claude and ChatGPT.
Manage your Hovercode QR codes, short links, landing pages, and forms by chatting. Create and restyle QR codes, retarget printed dynamic codes without reprinting, host PDFs behind a QR, build landing pages and forms, organise with folders and tags, and read scan analytics. Hosted, OAuth, works with Claude, ChatGPT, Cursor, and any MCP client.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables the generation of QR codes in PNG, SVG, Base64, and ASCII formats via Model Context Protocol clients. Users can save codes directly to local files or display them as terminal-friendly art through natural language commands.-
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to generate QR codes for URLs, WiFi, contacts, and more with structured parameters.5,687 npm4MIT
- AlicenseAqualityBmaintenanceLocal OCR & image analysis via Apple Vision Framework — private, offline, no API keys. Extracts text from images and PDFs, detects faces, barcodes, QR codes, and document corners. Works with Claude Code, Claude Desktop, and Cursor.6126 npm8MIT
- AlicenseNot gradedqualityCmaintenanceImage generation for Claude Code via ChatGPT subscription token. No API key needed.5MIT