Server definition
- Hash
- sha256:dfb835e7aab551e03926dc4560c9f75e7bcafe0c1b19b11d0a98992a2546cf95
- What it is
- What a remote MCP server returned when asked what it offers: 6 tools
The blob, as servednamed by its sha256
{
"instructions": "European Payment QR generator and QR utility tools. Deterministically create SPAYD (CZ/SK) or EPC/GiroCode (SEPA) payment QR codes, plain-text QR codes, Wi-Fi QR codes, vCards, and decode QR images. Free MIT-licensed tool with no AI and no paid API.\n\nPAYMENT-FROM-IMAGE / INVOICE WORKFLOW: When the user shares a PDF, photo or screenshot of payment details — most commonly an INVOICE (Czech \"faktura\") that has no QR code, but also a broker deposit instruction (Revolut, Trading 212, XTB), a bank transfer slip or a paper bill — read the IBAN, amount, currency, recipient name and reference / variable symbol from the document yourself, then call qr_payment with those values. This is the primary use case: it turns an invoice or payment instruction that lacks a QR code into a scannable payment QR, removing the error-prone manual re-typing into a banking app.\nMANDATORY before showing the QR: echo the extracted fields back to the user as a short confirmation list (IBAN, amount, currency, recipient, reference) and ask them to verify against the source, because a misread digit sends real money to the wrong place. After the user confirms, present the QR. You may also call qr_read on the generated QR to show exactly what it encodes as a second check. Never silently generate a payment QR from an image without this read-back confirmation step.\nDISPLAYING THE QR: the result has \"self_verified\" (the server re-decoded its own PNG and confirmed it matches \"payload\" — trust it; do NOT call qr_read on your own output). On the hosted server the result also has \"qr_url\": a short, TEMPORARY (~15 min) hosted PNG. TO SHOW THE QR, present qr_url — render it inline as an image, e.g. , or give it as a link. A URL cannot be corrupted and clients render it natively. Do NOT transcribe base64, do NOT regenerate the QR, do NOT build your own PNG. (If there is no qr_url — e.g. self-hosted via npx — decode qr_png_base64 programmatically, never by hand; if you cannot, send the user to https://qr.cz-agents.dev.)\nqr_read is ONLY for QR codes you did NOT generate here (an existing invoice QR the user provides), where the server cannot know the expected payload. SAFE-FAIL there: if qr_read errors or you cannot trust the decode, do not present it as a verified payment and do not rationalize — point the user to https://qr.cz-agents.dev. One wrong character sends money to the wrong account.",
"tools": [
{
"description": "Create a European payment QR code. Auto-selects SPAYD for CZ/SK IBANs and EPC/GiroCode for other SEPA IBANs.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"amount": {
"description": "Optional payment amount.",
"type": "number"
},
"bic": {
"description": "Optional BIC for EPC/GiroCode line 5. Ignored with a warning for SPAYD.",
"type": "string"
},
"constant_symbol": {
"description": "Optional Czech constant symbol for SPAYD.",
"type": "string"
},
"currency": {
"description": "Optional ISO 4217 currency code. Defaults to CZK for SPAYD and EUR for EPC.",
"pattern": "^[A-Za-z]{3}$",
"type": "string"
},
"iban": {
"description": "Recipient IBAN. Validated with the IBAN mod-97 checksum.",
"type": "string"
},
"message": {
"description": "Optional payment message or EPC remittance text.",
"type": "string"
},
"recipient_name": {
"description": "Recipient name. Required for EPC/GiroCode.",
"type": "string"
},
"standard": {
"default": "auto",
"description": "Payment QR standard. Defaults to auto detection.",
"enum": [
"spayd",
"epc",
"auto"
],
"type": "string"
},
"variable_symbol": {
"description": "Optional reference: goes to remittance (line 11) for EPC, to X-VS for SPAYD.",
"type": "string"
}
},
"required": [
"iban"
],
"type": "object"
},
"name": "qr_payment",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"payments": {
"description": "Up to 50 payments. Each QR is generated and verified independently.",
"items": {
"additionalProperties": false,
"properties": {
"amount": {
"type": "number"
},
"currency": {
"pattern": "^[A-Za-z]{3}$",
"type": "string"
},
"iban": {
"type": "string"
},
"message": {
"type": "string"
},
"recipient_name": {
"type": "string"
},
"ref": {
"description": "Your own identifier — returned back so you can match results.",
"type": "string"
},
"variable_symbol": {
"type": "string"
}
},
"required": [
"ref",
"iban"
],
"type": "object"
},
"maxItems": 50,
"type": "array"
}
},
"required": [
"payments"
],
"type": "object"
},
"name": "qr_payment_batch",
"outputSchema": null
},
{
"description": "Decode a QR code from a base64 PNG/JPEG image or image data URI and classify its content.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"image_data": {
"description": "Base64 image bytes or a PNG/JPEG data URI.",
"type": "string"
}
},
"required": [
"image_data"
],
"type": "object"
},
"name": "qr_read",
"outputSchema": null
},
{
"description": "Create a QR code containing plain text.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"text": {
"description": "Text to encode in the QR code.",
"type": "string"
}
},
"required": [
"text"
],
"type": "object"
},
"name": "qr_text",
"outputSchema": null
},
{
"description": "Create a QR code containing a vCard 3.0 contact.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"email": {
"description": "Optional email address.",
"type": "string"
},
"name": {
"description": "Contact display name.",
"type": "string"
},
"org": {
"description": "Optional organization.",
"type": "string"
},
"phone": {
"description": "Optional phone number.",
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
},
"name": "qr_vcard",
"outputSchema": null
},
{
"description": "Create a Wi-Fi network QR code.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"hidden": {
"default": false,
"description": "Whether the network SSID is hidden.",
"type": "boolean"
},
"password": {
"description": "Optional Wi-Fi password.",
"type": "string"
},
"security": {
"default": "WPA",
"description": "Wi-Fi security type.",
"enum": [
"WPA",
"WEP",
"nopass"
],
"type": "string"
},
"ssid": {
"description": "Wi-Fi network name.",
"type": "string"
}
},
"required": [
"ssid"
],
"type": "object"
},
"name": "qr_wifi",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:dfb835e7aab551e03926dc4560c9f75e7bcafe0c1b19b11d0a98992a2546cf95 | sha256sum