payqr
European payment QR — SPAYD (CZ/SK) & EPC/GiroCode (SEPA), plus text/WiFi/vCard. Local, free.
Should I use this
Quality & Safety
Findings (1)
- LOWin qr_read
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"payqr": {
"command": "npx",
"args": [
"@czagents/payqr"
]
}
}
}Runnable packages
0.1.4stdioRemote endpoints
https://payqr.cz-agents.dev/mcpstreamable-httpWhat it can do
Tool inventory
Tools (6)
🟢qr_payment(iban, bic, amount, currency, message, ...)
Create a European payment QR code. Auto-selects SPAYD for CZ/SK IBANs and EPC/GiroCode for other SEPA IBANs.
Input Schema
{
"type": "object",
"properties": {
"iban": {
"type": "string",
"description": "Recipient IBAN. Validated with the IBAN mod-97 checksum."
},
"bic": {
"type": "string",
"description": "Optional BIC for EPC/GiroCode line 5. Ignored with a warning for SPAYD."
},
"amount": {
"type": "number",
"description": "Optional payment amount."
},
"currency": {
"type": "string",
"pattern": "^[A-Za-z]{3}$",
"description": "Optional ISO 4217 currency code. Defaults to CZK for SPAYD and EUR for EPC."
},
"message": {
"type": "string",
"description": "Optional payment message or EPC remittance text."
},
"variable_symbol": {
"type": "string",
"description": "Optional reference: goes to remittance (line 11) for EPC, to X-VS for SPAYD."
},
"constant_symbol": {
"type": "string",
"description": "Optional Czech constant symbol for SPAYD."
},
"recipient_name": {
"type": "string",
"description": "Recipient name. Required for EPC/GiroCode."
},
"standard": {
"type": "string",
"enum": [
"spayd",
"epc",
"auto"
],
"default": "auto",
"description": "Payment QR standard. Defaults to auto detection."
}
},
"required": [
"iban"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢qr_text(text)
Create a QR code containing plain text.
Input Schema
{
"type": "object",
"properties": {
"text": {
"type": "string",
"description": "Text to encode in the QR code."
}
},
"required": [
"text"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢qr_wifi(ssid, password, security, hidden)
Create a Wi-Fi network QR code.
Input Schema
{
"type": "object",
"properties": {
"ssid": {
"type": "string",
"description": "Wi-Fi network name."
},
"password": {
"type": "string",
"description": "Optional Wi-Fi password."
},
"security": {
"type": "string",
"enum": [
"WPA",
"WEP",
"nopass"
],
"default": "WPA",
"description": "Wi-Fi security type."
},
"hidden": {
"type": "boolean",
"default": false,
"description": "Whether the network SSID is hidden."
}
},
"required": [
"ssid"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢qr_vcard(name, phone, email, org)
Create a QR code containing a vCard 3.0 contact.
Input Schema
{
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Contact display name."
},
"phone": {
"type": "string",
"description": "Optional phone number."
},
"email": {
"type": "string",
"description": "Optional email address."
},
"org": {
"type": "string",
"description": "Optional organization."
}
},
"required": [
"name"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢qr_read(image_data)
Decode a QR code from a base64 PNG/JPEG image or image data URI and classify its content.
Input Schema
{
"type": "object",
"properties": {
"image_data": {
"type": "string",
"description": "Base64 image bytes or a PNG/JPEG data URI."
}
},
"required": [
"image_data"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢qr_payment_batch(payments)
PAID. Create payment QR codes for a whole batch of payments in one call — e.g. an invoice run. The free qr_payment tool handles one payment per call; this one returns the whole set. Requires payment via x402; call without payment first to receive the terms.
Input Schema
{
"type": "object",
"properties": {
"payments": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ref": {
"type": "string",
"description": "Your own identifier — returned back so you can match results."
},
"iban": {
"type": "string"
},
"amount": {
"type": "number"
},
"currency": {
"type": "string",
"pattern": "^[A-Za-z]{3}$"
},
"message": {
"type": "string"
},
"variable_symbol": {
"type": "string"
},
"recipient_name": {
"type": "string"
}
},
"required": [
"ref",
"iban"
],
"additionalProperties": false
},
"maxItems": 50,
"description": "Up to 50 payments. Each QR is generated and verified independently."
}
},
"required": [
"payments"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Community
Evidence