cz-agents-mcp
dev.cz-agents/payqr
Documentation
@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 requiresrecipient_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.
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
