QR Code generation REST API and MCP server. Supports text, URLs, vCards, WiFi configs, email, phone, custom colors/sizes.
Five tools with clear verb-noun naming (generate_*) and complete input schemas. Descriptions are present but generic (avg 95 chars, below 194-char baseline). Most parameters lack descriptions, only 'data', 'ssid', 'to', 'number' have them; 'size', 'errorCorrectionLevel', 'darkColor', 'lightColor' are undescribed in most tools. No output schema documented. No error handling guidance. vCard tool has zero required fields, risking empty QR codes. Tools are read-only (safe) but lack idempotency hints.
Generate a QR code for a mailto link. Returns base64 PNG data URL.
Generate a QR code for a phone number (tel: link). Returns base64 PNG data URL.
Generate a QR code from text or URL. Returns base64 PNG data URL.
Generate a QR code from vCard contact information. Returns base64 PNG data URL.
Generate a QR code for WiFi network credentials. Returns base64 PNG data URL.
Missing parameter descriptions in 4 of 5 tools. 'size', 'errorCorrectionLevel', 'darkColor', 'lightColor' lack descriptions in generate_qr, generate_wifi_qr, generate_email_qr, generate_phone_qr. LLMs cannot infer parameter meaning from names alone.
generate_vcard_qr has zero required fields and no field descriptions. An LLM could call it with no arguments, producing an empty or invalid vCard QR code. No guidance on which fields are meaningful.
No output schema documented. Tool descriptions say 'Returns base64 PNG data URL' but do not specify the exact response structure (e.g., is it a string, an object with a 'data_url' field?). LLMs cannot plan downstream usage.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 48 | 2026-07-28+ | v2 |
No error handling guidance. If QR generation fails (e.g., data too large, invalid color hex), the tool returns 'Error: <message>' as plain text. No recovery hints or categorization (retryable vs. user-fixable).
Tool descriptions are generic (50 - 95 chars, below 194-char baseline). They state WHAT but not WHEN to use or any prerequisites. E.g., 'Generate a QR code from text or URL' does not explain when to choose generate_qr vs. generate_email_qr.