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-mcp
Add 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-mcp
Environment variables:
| Var | Required | Default | Purpose |
|---|---|---|---|
QRFORGE_API_TOKEN |
yes (local) | — | Your QR Forge API token |
QRFORGE_API_URL |
no | https://qrforge.work |
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.
Tools
- Identity/tokens:
whoami,list_api_tokens,create_api_token,revoke_api_token - Discovery:
list_qr_types,list_qr_styles - Render (no save):
render_qr - Create:
create_url_qrcode,create_whatsapp_qrcode,create_wifi_qrcode,create_phone_qrcode,create_email_qrcode,create_file_qrcode - Manage:
list_qrcodes,get_qrcode,update_qrcode,delete_qrcode - Images:
get_qrcode_png,get_qrcode_svg - Files/logo:
download_qrcode_file,replace_qrcode_file,set_qrcode_logo,remove_qrcode_logo - Analytics:
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 -q
Run the hosted server locally:
qrforge-mcp --http --host 0.0.0.0 --port 8001 # streamable-HTTP at /mcp/
# or stdio:
QRFORGE_API_TOKEN=... qrforge-mcp
License
MIT
Metadata
Release files for qrforge-mcp 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| qrforge_mcp-0.1.0.tar.gz | 12.6 kB | Without provenance | Details for qrforge_mcp-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| qrforge_mcp-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for qrforge_mcp-0.1.0-py3-none-any.whl |
Total release size: 24.2 kB
Release files / qrforge_mcp-0.1.0.tar.gz
| Download URL | qrforge_mcp-0.1.0.tar.gz |
|---|---|
| Size | 12.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4d01906a9b771d209e9bd4946b3e819e075c8e7e91677a17c487c6875612be8d
|
|
BLAKE2b-256 checksum How to use checksums |
d129462f2d88d511cd3f797f972c159ffad6850181aecdf9d945f09f8187fead
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.2
|
Release files / qrforge_mcp-0.1.0-py3-none-any.whl
| Download URL | qrforge_mcp-0.1.0-py3-none-any.whl |
|---|---|
| Size | 11.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f44d41b7be0c450afbbd474a671fcec1447e63e162abe39f16d42ff8fd152bc1
|
|
BLAKE2b-256 checksum How to use checksums |
9c683cc6824ecc381e6a91f6b0cd178a37861546362b6b13b33e175bb53b0ba7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.2
|
Security for qrforge-mcp 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.