QR Forge MCP server
Allows creating trackable QR codes for WhatsApp, enabling users to generate codes that link to WhatsApp contacts or chats.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@QR Forge MCP server create a URL QR code for https://example.com"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
QR Forge MCP server
An MCP server for QR Forge — create and manage trackable QR codes (links, files, Wi-Fi, WhatsApp, phone, email) straight from an AI agent. It's a thin client over the public QR Forge REST API; it stores nothing and authenticates with your QR Forge API token.
Get a token at https://qrforge.work/api/keys.
Two ways to use it
1. Local (stdio) — install and run on your machine
uvx qrforge-mcp # or: pipx install qrforge-mcpAdd it to your MCP client (Claude Desktop / Claude Code) — claude_desktop_config.json
or .mcp.json:
{
"mcpServers": {
"qrforge": {
"command": "qrforge-mcp",
"env": { "QRFORGE_API_TOKEN": "your-token-here" }
}
}
}Or with Claude Code's CLI:
claude mcp add qrforge --env QRFORGE_API_TOKEN=your-token-here -- qrforge-mcpEnvironment variables:
Var | Required | Default | Purpose |
| yes (local) | — | Your QR Forge API token |
| no |
| API base URL |
2. Hosted — connect to our server, no install
The hosted server runs at https://mcp.qrforge.work/mcp/. Pass your token in the
X-QRForge-Token header:
claude mcp add --transport http qrforge https://mcp.qrforge.work/mcp/ \
--header "X-QRForge-Token: your-token-here"The hosted server sits behind Cloudflare, which strips the
Authorizationheader on streaming requests — so useX-QRForge-Tokenfor the hosted endpoint. (Authorization: Bearer <token>still works for local/self-hosted instances.)
The hosted server is stateless and multi-user: it forwards each request's token to the API and never stores it.
Related MCP server: freeqrcode-mcp-server
Tools
Identity/tokens:
whoami,list_api_tokens,create_api_token,revoke_api_tokenDiscovery:
list_qr_types,list_qr_stylesRender (no save):
render_qrCreate:
create_url_qrcode,create_whatsapp_qrcode,create_wifi_qrcode,create_phone_qrcode,create_email_qrcode,create_file_qrcodeManage:
list_qrcodes,get_qrcode,update_qrcode,delete_qrcodeImages:
get_qrcode_png,get_qrcode_svgFiles/logo:
download_qrcode_file,replace_qrcode_file,set_qrcode_logo,remove_qrcode_logoAnalytics:
get_qrcode_history,get_qrcode_scans
style (optional, on create/render/update) is an object with keys module_drawer
(square|rounded|circle|gapped|vertical_bars|horizontal_bars), fill_type
(solid|radial|horizontal|vertical), fill_color, fill_color_2, back_color (hex).
File tools accept the file via file_path (local), file_url (server downloads it),
or file_base64 — up to 50 MB.
Develop
pip install -e ".[dev]"
pytest -qRun the hosted server locally:
qrforge-mcp --http --host 0.0.0.0 --port 8001 # streamable-HTTP at /mcp/
# or stdio:
QRFORGE_API_TOKEN=... qrforge-mcpLicense
MIT
Available Tools
25 toolscreate_api_tokenB
Create a new API token. The full secret is returned exactly once.
Inputs: name. Returns: object
create_email_qrcodeB
Create an email QR code (static; opens a prefilled email when scanned).
Inputs: email (required), subject, body, name, +1 more.
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.
Inputs: file_path, file_url, file_base64, filename, +3 more.
create_phone_qrcodeC
Create a phone-number QR code (static; dials when scanned).
Inputs: phone (required), name, style.
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.
Inputs: target_url (required), name, static, expires_in_days, +1 more.
create_whatsapp_qrcodeB
Create a WhatsApp QR code from a wa.me link (tracked dynamic link).
Inputs: target_url (required), name, expires_in_days, style.
create_wifi_qrcodeB
Create a Wi-Fi QR code (static; encodes credentials directly). auth is one of WPA, WPA3, WEP, nopass.
Inputs: ssid (required), auth, password, hidden, +2 more.
delete_qrcodeB
Delete a QR code (and its underlying file, if any).
Inputs: id (required). Returns: object
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).
Inputs: id (required), save_path. Returns: object
get_qrcodeA
Get a single QR code's details by id. Use get_qrcode_png to view the image.
Inputs: id (required). Returns: object
get_qrcode_historyC
File-replacement history for a file-backed QR code (newest first).
Inputs: id (required). Returns: object
get_qrcode_pngB
Render a saved QR code as a PNG image using its stored style/logo.
Inputs: id (required), size, no_logo.
get_qrcode_scansC
Scan analytics for a dynamic QR code: daily series + totals (days 1-365).
Inputs: id (required), days. Returns: object
get_qrcode_svgB
Return a saved QR code as SVG markup (text).
Inputs: id (required). Returns: result
list_api_tokensA
List the account's API tokens (secrets are never returned).
Inputs: no named parameters. Returns: object
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.
Inputs: q, active, page, limit. Returns: object
list_qr_stylesA
List QR style presets and defaults (GET /qr/styles).
Inputs: no named parameters. Returns: object
list_qr_typesA
List available QR code types and their required fields (GET /qr/types).
Inputs: no named parameters. Returns: object
remove_qrcode_logoC
Remove a QR code's center logo.
Inputs: id (required). Returns: object
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').
Inputs: url (required), format, size, style.
replace_qrcode_fileC
Replace a file-backed QR code's file while keeping its QR/link unchanged.
Inputs: id (required), file_path, file_url, file_base64, +1 more. Returns: object
revoke_api_tokenC
Revoke (delete) an API token by id.
Inputs: token_id (required). Returns: object
set_qrcode_logoC
Set/replace a QR code's center logo (PNG, JPG, or WebP).
Inputs: id (required), file_path, file_url, file_base64, +1 more. Returns: object
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.
Inputs: id (required), name, is_active, target_url, +10 more. Returns: object
whoamiA
Return the authenticated account's identity and QR-code count (GET /me).
Inputs: no named parameters. Returns: object
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
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.
Maintenance
Related MCP Connectors
Generate QR codes for URLs, PIX, Wi-Fi, vCards, WhatsApp and more. For AI agents.
Create and edit dynamic QR codes from AI assistants via the QRay agent MCP endpoint.
Make, re-point and track QR codes and short links, and read QR images, from your AI assistant.
Generate branded, scan-validated QR codes (manual, AI, templates, Wi-Fi, vCard, geo).
Related MCP Servers
- AlicenseAqualityFmaintenanceDynamic QR code platform for AI agents. Create, customize, and track QR codes without regenerating images. 37 tools covering 11 QR types (URL, vCard, WiFi, event…).373MIT
- AlicenseBqualityDmaintenanceEnables AI assistants to generate QR codes for URLs, text, vCard, WiFi, email, and phone numbers with customizable size, colors, and error correction.115 npm1MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to generate QR codes for URLs, WiFi, contacts, and more with structured parameters.4,762 npm4MIT
- AlicenseNot gradedqualityFmaintenanceEnables AI assistants to generate styled QR codes with customizable colors, styles, gradients, and frames, as well as typed QR codes for WiFi, vCard, etc., using the QRMint API without requiring an API key.63 npm1MIT