QR
QR and barcode toolkit for agents: encode text to staging PNG, decode from URL/base64, plus vCard, Wi-Fi, and EPC (SEPA) payment QR payloads. Encode/decode run off the event loop so web and other MCP tools stay responsive.
Service id: qr
Version: 0.1.0
Status: available
Authentication
MCP endpoint: https://mcp.glc-rag.hu/mcp (streamable HTTP)
Agents (recommended): self-register with account_type=agent to get an
auto-approved token — see https://mcp.glc-rag.hu/guide/agent.
Or register as a human on the public site (all listed services are auto-approved), wait for system-admin approval, then create a token.
Authorization: Bearer mcp_...
Cursor mcp.json example:
{
"mcpServers": {
"qr": {
"url": "https://mcp.glc-rag.hu/mcp",
"headers": {
"Authorization": "Bearer mcp_YOUR_TOKEN"
}
}
}
}
Tools
qr_create
Encode text/URL into a QR PNG published to staging.
Input schema:
{
"type": "object",
"properties": {
"data": {
"type": "string"
},
"error_correction": {
"type": "string",
"enum": [
"L",
"M",
"Q",
"H"
],
"default": "M"
},
"box_size": {
"type": "integer",
"minimum": 1,
"maximum": 40,
"default": 8
},
"border": {
"type": "integer",
"minimum": 0,
"maximum": 20,
"default": 4
},
"fill": {
"type": "string",
"default": "#000000"
},
"back": {
"type": "string",
"default": "#ffffff"
},
"return_base64": {
"type": "boolean",
"default": false
}
},
"required": [
"data"
],
"additionalProperties": false
}
Examples:
{
"data": "https://mcp.glc-rag.hu"
}
qr_read
Decode QR codes from an image (URL or base64).
Input schema:
{
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "Public/staging image URL"
},
"content_base64": {
"type": "string",
"description": "Small image base64"
}
},
"additionalProperties": false
}
Examples:
{
"url": "https://mcp.glc-rag.hu/staging/EXAMPLE"
}
barcode_create
Encode 1D barcode (code128/ean13/ean8/upc/isbn13/itf) to staging PNG.
Input schema:
{
"type": "object",
"properties": {
"data": {
"type": "string"
},
"symbology": {
"type": "string",
"enum": [
"code128",
"ean13",
"ean8",
"upc",
"isbn13",
"itf"
],
"default": "code128"
},
"write_text": {
"type": "boolean",
"default": true
},
"return_base64": {
"type": "boolean",
"default": false
}
},
"required": [
"data"
],
"additionalProperties": false
}
Examples:
{
"data": "MCP-12345",
"symbology": "code128"
}
barcode_read
Decode 1D/QR barcodes from an image.
Input schema:
{
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "Public/staging image URL"
},
"content_base64": {
"type": "string",
"description": "Small image base64"
},
"types_filter": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional zbar types: EAN13, CODE128, QRCODE, \u2026"
}
},
"additionalProperties": false
}
Examples:
{
"url": "https://mcp.glc-rag.hu/staging/EXAMPLE"
}
vcard_qr_create
Build a vCard 3.0 and encode it as a QR PNG.
Input schema:
{
"type": "object",
"properties": {
"full_name": {
"type": "string"
},
"org": {
"type": "string"
},
"title": {
"type": "string"
},
"email": {
"type": "string"
},
"phone": {
"type": "string"
},
"url": {
"type": "string"
},
"note": {
"type": "string"
},
"address": {
"type": "object",
"properties": {
"street": {
"type": "string"
},
"city": {
"type": "string"
},
"region": {
"type": "string"
},
"postal": {
"type": "string"
},
"country": {
"type": "string"
}
},
"additionalProperties": false
},
"error_correction": {
"type": "string",
"enum": [
"L",
"M",
"Q",
"H"
],
"default": "M"
},
"box_size": {
"type": "integer",
"minimum": 1,
"maximum": 40,
"default": 8
},
"border": {
"type": "integer",
"minimum": 0,
"maximum": 20,
"default": 4
},
"fill": {
"type": "string",
"default": "#000000"
},
"back": {
"type": "string",
"default": "#ffffff"
},
"return_base64": {
"type": "boolean",
"default": false
}
},
"required": [
"full_name"
],
"additionalProperties": false
}
Examples:
{
"full_name": "Kiss Anna",
"email": "anna@example.com"
}
wifi_qr_create
Build a WIFI: QR for network join (does not connect).
Input schema:
{
"type": "object",
"properties": {
"ssid": {
"type": "string"
},
"password": {
"type": "string"
},
"security": {
"type": "string",
"enum": [
"WPA",
"WEP",
"nopass"
],
"default": "WPA"
},
"hidden": {
"type": "boolean",
"default": false
},
"error_correction": {
"type": "string",
"enum": [
"L",
"M",
"Q",
"H"
],
"default": "M"
},
"box_size": {
"type": "integer",
"minimum": 1,
"maximum": 40,
"default": 8
},
"border": {
"type": "integer",
"minimum": 0,
"maximum": 20,
"default": 4
},
"fill": {
"type": "string",
"default": "#000000"
},
"back": {
"type": "string",
"default": "#ffffff"
},
"return_base64": {
"type": "boolean",
"default": false
}
},
"required": [
"ssid"
],
"additionalProperties": false
}
Examples:
{
"ssid": "Guest",
"password": "secret",
"security": "WPA"
}
payment_qr_create
Build an EPC/SCT payment QR (EUR). Does not initiate a transfer.
Input schema:
{
"type": "object",
"properties": {
"profile": {
"type": "string",
"enum": [
"epc"
],
"default": "epc"
},
"iban": {
"type": "string"
},
"name": {
"type": "string",
"description": "Beneficiary name"
},
"amount": {
"type": "string",
"description": "e.g. 12.34"
},
"currency": {
"type": "string",
"default": "EUR"
},
"remittance": {
"type": "string"
},
"purpose": {
"type": "string"
},
"bic": {
"type": "string"
},
"error_correction": {
"type": "string",
"enum": [
"L",
"M",
"Q",
"H"
],
"default": "M"
},
"box_size": {
"type": "integer",
"minimum": 1,
"maximum": 40,
"default": 8
},
"border": {
"type": "integer",
"minimum": 0,
"maximum": 20,
"default": 4
},
"fill": {
"type": "string",
"default": "#000000"
},
"back": {
"type": "string",
"default": "#ffffff"
},
"return_base64": {
"type": "boolean",
"default": false
}
},
"required": [
"iban",
"name"
],
"additionalProperties": false
}
Examples:
{
"profile": "epc",
"iban": "DE89370400440532013000",
"name": "Acme GmbH",
"amount": "10.00",
"remittance": "Invoice 42"
}
qr_status
QR service health and limits.
Input schema:
{
"type": "object",
"properties": {},
"additionalProperties": false
}
Examples:
{}
Usage notes
Create: qr_create / barcode_create / vcard_qr_create / wifi_qr_create / payment_qr_create → staging url. Read: upload image to staging then qr_read or barcode_read. payment_qr_create only builds EPC QR text — it does not send money. Credits apply per successful call; qr_status is free.
Errors / limits
Invalid data/symbology, oversize input, missing libzbar, or busy semaphore → {error, is_error}. Empty decode → count=0 (still billed).
Agent discovery
- Agent registration:
https://mcp.glc-rag.hu/guide/agent - Markdown:
https://mcp.glc-rag.hu/guide/qr.md - Index:
https://mcp.glc-rag.hu/llms.txt - MCP resource:
docs://qr