QR codes and barcodes drawn locally: SEPA payment codes, WiFi, vCard, Code 128, EAN-13. It draws a QR code from text or a URL, a WiFi join code, a vCard, an EPC069-12 SEPA payment code checked against the shared business profile's IBAN, and Code 128, EAN-13, EAN-8 or UPC-A with the check digit computed or verified. No network call of any kind.
Ask for the SEPA payment code on an invoice right after asking for the invoice itself, in the same chat: invoice_payment_qr reads the IBAN from the shared business profile and the total from the invoice you just created, so nothing gets retyped between the two calls.
| You say | Tool |
|---|---|
| Make a QR code for this URL. | qr_create |
| Put a payment QR code on invoice INV-2026-0007. | invoice_payment_qr |
| Give this SKU a Code 128 barcode. | barcode_create |
The first Code 128 table transcription was missing one row, silently shifting 67 of 107 values to their neighbour: a clean-looking barcode that scanned as the wrong string. Comparing against an independent encoder caught it; every table is now pinned against that comparison in the test suite.
The file is .cursor/mcp.json, and the key inside it is mcpServers.
| Scope | Path |
|---|---|
| This project only | <project>/.cursor/mcp.json |
| Every project | ~/.cursor/mcp.json |
{
"mcpServers": {
"barcode": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@theluckystrike/mcp-barcode"]
}
}
}
The Customize page shows the server and its tools once it has started.
The npm publish of @theluckystrike/mcp-barcode is pending; until then use the .mcpb bundle or a clone and build from the latest release.
The same server runs at https://mcp.zovo.one/mcp/barcode over MCP streamable HTTP, no install. Mint a free token with curl https://mcp.zovo.one/mcp/token, or use a Pro key. It has no filesystem, so a file comes back as a one-hour download link.
{
"mcpServers": {
"barcode": {
"url": "https://mcp.zovo.one/mcp/barcode",
"headers": { "Authorization": "Bearer <token>" }
}
}
}
The current field table marks `type` as required, with `stdio` for a locally launched server, so write it out rather than relying on command and args alone. The other documented restriction is that `envFile` is stdio-only: a remote HTTP or SSE server does not read it, and its headers belong in the config.
Free: 20 codes a calendar month, every symbology and QR kind, SVG output. Pro is $19 once, verified offline.
<project>/.cursor/mcp.json applies to that project and can be committed, which suits a server tied to one client. ~/.cursor/mcp.json applies everywhere. Both are managed from the Customize page.
The current field table marks type as required, with stdio for a locally launched server, so include it. Pointing at a remote endpoint, envFile is documented as stdio-only and is not read.
Servers in Cursor's marketplace get an Add to Cursor button. The deeplink reference currently documents prompt, command and rule links only, so for MCP Barcode pasting the config block above is the supported route.
MCP Barcode in detail · The same server in Claude Code and VS Code · Every server in Cursor · Guides · Cursor docs