QR Forge MCP server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| QRFORGE_API_URL | No | API base URL | https://qrforge.work |
| QRFORGE_API_TOKEN | Yes | Your QR Forge API token (required for local/stdio usage) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| whoamiA | Return the authenticated account's identity and QR-code count (GET /me). |
| list_api_tokensA | List the account's API tokens (secrets are never returned). |
| create_api_tokenB | Create a new API token. The full secret is returned exactly once. |
| revoke_api_tokenC | Revoke (delete) an API token by id. |
| list_qr_typesA | List available QR code types and their required fields (GET /qr/types). |
| list_qr_stylesA | List QR style presets and defaults (GET /qr/styles). |
| render_qrA | Render a styled QR code for an arbitrary URL without saving it. Returns a PNG image (format='png') or the SVG markup as text (format='svg'). |
| create_url_qrcodeA | Create a Website-link QR code. static=True encodes the URL directly (no redirect, no scan tracking, not editable); default is a tracked, editable dynamic link. |
| create_whatsapp_qrcodeB | Create a WhatsApp QR code from a wa.me link (tracked dynamic link). |
| create_wifi_qrcodeB | Create a Wi-Fi QR code (static; encodes credentials directly). auth is one of WPA, WPA3, WEP, nopass. |
| create_phone_qrcodeC | Create a phone-number QR code (static; dials when scanned). |
| create_email_qrcodeB | Create an email QR code (static; opens a prefilled email when scanned). |
| create_file_qrcodeA | Create a file/document QR code. Provide the file via file_path (local), file_url (downloaded by the server), or file_base64. Accepts images, PDF, Office, OpenDocument and text files up to 50 MB. |
| list_qrcodesA | List the account's QR codes with optional search (q matches name/filename), active filter, and pagination (limit max 100). Returns data + pagination. |
| get_qrcodeA | Get a single QR code's details by id. Use get_qrcode_png to view the image. |
| update_qrcodeA | Update a QR code's mutable fields. Only fields valid for the QR's type apply (e.g. target_url for url; ssid/auth/password/hidden for wifi). Set expires_in_days to 0/null to clear expiry. |
| delete_qrcodeB | Delete a QR code (and its underlying file, if any). |
| get_qrcode_pngB | Render a saved QR code as a PNG image using its stored style/logo. |
| get_qrcode_svgB | Return a saved QR code as SVG markup (text). |
| download_qrcode_fileA | Download a file-backed QR code's current file. With save_path, writes it there and returns the path; otherwise returns base64 (small files only). |
| replace_qrcode_fileC | Replace a file-backed QR code's file while keeping its QR/link unchanged. |
| set_qrcode_logoC | Set/replace a QR code's center logo (PNG, JPG, or WebP). |
| remove_qrcode_logoC | Remove a QR code's center logo. |
| get_qrcode_historyC | File-replacement history for a file-backed QR code (newest first). |
| get_qrcode_scansC | Scan analytics for a dynamic QR code: daily series + totals (days 1-365). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 25 tools
Each tool targets a distinct action or QR type. Create tools are clearly separated by QR type (email, file, phone, URL, WhatsApp, WiFi). Management tools like get, list, update, delete are unambiguous. Even get_qrcode, get_qrcode_png, and get_qrcode_svg are distinct in output format.
All tool names follow a consistent snake_case verb_noun pattern (e.g., create_url_qrcode, list_qrcodes, delete_qrcode). There are no deviations or mixed conventions.
25 tools is slightly above the typical 3-15 range but still justified given the domain diversity: multiple QR types, file operations, analytics, style management, and API tokens. Each tool serves a distinct purpose.
The tool surface covers creation for all major QR types, full CRUD, file handling, analytics, style customization, and token management. Minor gaps exist (e.g., no batch operations or advanced reporting), but core workflows are well-covered.