mcpField
P
payqr

payqr

Remote
qr.cz-agents.devFinance6Updated 2w ago

About payqr

payqr is a local MCP server for generating and reading European payment QR codes, along with text, Wi-Fi, and vCard codes. It supports SPAYD and EPC/GiroCode and keeps QR processing on-device.

Key features

  1. 01Create SPAYD and EPC/GiroCode payment QRs
  2. 02Generate text, Wi-Fi, and vCard QRs
  3. 03Decode QR codes from images
  4. 04Return QR images and encoded text
  5. 05Process QR data locally

Use cases

  1. 01Prepare a bank-transfer QR from payment details
  2. 02Read payment fields from an existing QR image
  3. 03Share Wi-Fi access or contact details as a QR

MCP support

Exposes QR generation and decoding tools to MCP clients, including payment, text, Wi-Fi, vCard, and image-reading operations.

Configuration

Remote servers need no local install. Pick your client, then copy the config or install in one click.

Endpointhttps://payqr.cz-agents.dev/mcp
Copy install command
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.

Packages
npm@czagents/payqr0.1.4

Tools

6
ParameterTypeRequiredDescription
bicstringNoOptional BIC for EPC/GiroCode line 5. Ignored with a warning for SPAYD.
ibanstringYesRecipient IBAN. Validated with the IBAN mod-97 checksum.
amountnumberNoOptional payment amount.
messagestringNoOptional payment message or EPC remittance text.
currencystringNoOptional ISO 4217 currency code. Defaults to CZK for SPAYD and EUR for EPC.
standardenumNoPayment QR standard. Defaults to auto detection.spayd | epc | auto
recipient_namestringNoRecipient name. Required for EPC/GiroCode.
constant_symbolstringNoOptional Czech constant symbol for SPAYD.
variable_symbolstringNoOptional reference: goes to remittance (line 11) for EPC, to X-VS for SPAYD.

Details

From the project README

@czagents/payqr

European payment QR codes — generate and read SPAYD (CZ/SK) and EPC/GiroCode (Eurozone) payment QR, plus standard QR (text, WiFi, vCard). Scan with any banking app to pre-fill a transfer. Runs locally, no data leaves your device. Free.

Deterministically create SPAYD (Czech/Slovak) and EPC / GiroCode (SEPA) payment QR codes, plus plain-text, Wi-Fi and vCard QR codes — and decode QR codes back from an image.

Free, MIT-licensed, no AI and no paid API. Everything is computed locally; nothing is sent anywhere.

💡 Prefer a browser? The same engine runs as a free web app at https://qr.cz-agents.dev — type the details or drop a payment screenshot / QR code, all client-side.

Why

Copying an IBAN, amount and variable symbol from a broker deposit instruction (Revolut, Trading 212, XTB, an invoice…) into a banking app by hand is slow and error-prone — one wrong digit sends money to the wrong account. This server turns those details into a scannable payment QR your bank app reads directly, and can also read an existing payment QR back into structured fields.

Install

Add it to your MCP client (e.g. Claude Desktop claude_desktop_config.json):

{
  "mcpServers": {
    "payqr": {
      "command": "npx",
      "args": ["-y", "@czagents/payqr"]
    }
  }
}

Or run directly:

npx -y @czagents/payqr        # stdio transport

Tools

Each example is an MCP tool-call argument object.

  • qr_payment — creates a payment QR, selecting SPAYD for CZ/SK IBANs and EPC/GiroCode for other SEPA IBANs. Do not use it from payment details extracted from an image until the user has checked the read-back fields; EPC also requires recipient_name. Example: {"iban":"CZ6508000000192000145399","amount":1500,"currency":"CZK","variable_symbol":"1234567890","message":"Invoice 2026-001"}.
  • qr_text — creates a QR containing plain text. Do not use it for a structured payment, Wi-Fi configuration, or contact when the dedicated tool is appropriate. Example: {"text":"https://cz-agents.dev"}.
  • qr_wifi — creates a Wi-Fi network QR for WPA, WEP, or an open network. Do not use it to share credentials with someone who should not receive network access. Example: {"ssid":"Office WiFi","password":"correct-horse-battery-staple","security":"WPA","hidden":false}.
  • qr_vcard — creates a vCard 3.0 contact QR. Do not use it when the contact has not agreed to share the included personal details. Example: {"name":"Ada Lovelace","phone":"+420123456789","email":"[email protected]","org":"Analytical Engines"}.
  • qr_read — decodes and classifies an existing base64 PNG/JPEG QR image. Do not use it to verify a QR generated by this server, which is already self-verified; do not treat a failed decode as a verified payment. Example: {"image_data":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUg..."}.
  • qr_payment_batch (paid; available when x402 is configured) — generates and verifies up to 50 payment QRs in one invoice-run call. Do not use it for a single payment, or before obtaining the x402 payment terms. Example: {"payments":[{"ref":"INV-001","iban":"CZ6508000000192000145399","amount":1500,"currency":"CZK","variable_symbol":"2026001"}]}.

Each generating tool returns both a rendered QR image and a text block with the encoded payload, the chosen standard and any warnings — so clients display the QR natively and you can verify exactly what it encodes.

Optional IBANforge referral

Successful qr_payment responses, and paid batch responses that generate at least one QR, can include an optional next_steps referral. It is disabled by default. To enable it, set all three variables:

IBANFORGE_REFERRAL_ENABLED=true
IBANFORGE_REFERRAL_URL=https://ibanforge.com/?src=payqr
IBANFORGE_REFERRAL_RELATIONSHIP=unpaid_partner # or affiliate

The URL must use HTTPS and belong to ibanforge.com (or one of its subdomains). Invalid enabled configuration stops the server at startup. The referral URL never contains IBAN, amount, reference, or other payment data. Free non-payment tools, failed payments, and unpaid x402 responses never carry the referral. Affiliate relationships are identified in the returned copy.

Payment-from-image workflow

When you paste a screenshot or photo of payment details, the assistant reads the IBAN, amount, currency, recipient and reference from the image and calls qr_payment. Before showing the QR it echoes the extracted fields back for you to verify against the source — a misread digit sends real money to the wrong place — and only then presents the code.

Standards

  • SPAYD (SPD*1.0*…) — the Czech/Slovak "QR Platba" string format read by Czech and Slovak bank apps.
  • EPC / GiroCode (BCD…) — the SEPA Credit Transfer QR standard (EPC069-12), EUR-only, widely used in Germany, Austria and across the euro area. Requires a recipient name.

Privacy

No telemetry, no network calls for QR generation, no AI. Pure local computation.

License

MIT © cz-agents

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.