Create and track QR codes, audio codes, menus, and scan analytics for a Qrblox merchant.
The Model Context Protocol server for Qrblox β let any MCP-aware AI agent generate and manage QR codes, audio codes, menus, and loyalty campaigns.
π Full reference: docs.qrblox.com/mcp.html
π Endpoint: https://app.qrblox.com/api/mcp
π Mint a key: create.qrblox.com/settings/api-keys
π’ No-key sandbox: POST https://app.qrblox.com/api/generate-qr-code
This is a public, README-only repo. The MCP server itself is deployed at the endpoint above; the canonical docs live at docs.qrblox.com/mcp.html.
qrblox-mcp is a JSON-RPC 2.0 MCP server. Point Claude Desktop,
Cursor, Codex, or any MCP client at https://app.qrblox.com/api/mcp,
paste in a sk-qrblox- key, and the assistant can immediately draft QR
codes (and audio codes, menus, and loyalty campaigns) and read scan
analytics on a merchant workspace.
Every code created via the MCP lives on the caller's Qrblox account alongside codes made from the iOS, Android, Canva, and web surfaces.
curl -X POST https://app.qrblox.com/api/generate-qr-code \
-H 'content-type: application/json' \
-d '{"url":"https://example.com"}'
Returns:
{
"ok": true,
"code": {
"codeId": "β¦",
"destinationUrl": "https://example.com",
"qrImage": "data:image/png;base64,β¦", // inline PNG
"qrImageUrl": "https://storage.googleapis.com/β¦", // hosted PNG
"claimToken": "β¦",
"expiresAt": "β¦"
},
"upgrade": { "signup": "https://app.qrblox.com", "apiKeys": "https://create.qrblox.com/settings/api-keys" }
}
Sandbox limits: 3 codes / IP / day, codes expire in 7 days.
Sign in to create.qrblox.com β
Settings β API keys β New API key. Keys are
sk-qrblox-<64 hex chars>, shown once, and revocable anytime.
// ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"qrblox": {
"url": "https://app.qrblox.com/api/mcp",
"headers": {
"Authorization": "Bearer sk-qrblox-..."
}
}
}
}
Restart Claude Desktop. Then ask: "Generate a QR code for https://my-spring-menu.com."
Same URL, same Authorization header.
# tools/list β no auth required
curl -X POST https://app.qrblox.com/api/mcp \
-H 'content-type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
# tools/call β create a code on your account
curl -X POST https://app.qrblox.com/api/mcp \
-H 'authorization: Bearer sk-qrblox-...' \
-H 'content-type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
"params":{"name":"qrblox.qr.create",
"arguments":{"title":"Spring menu",
"destinationUrl":"https://qrblox.com/menu/spring"}}}'
All tools are merchant-scoped and draft-first β agents propose, the merchant approves before publishing.
| Tool | Description |
|---|---|
qrblox.ping | Confirm reachability + identity. |
qrblox.merchant.get_profile | The merchant workspace attached to the key. |
qrblox.qr.list | List recent QR codes. |
qrblox.qr.create | Create a draft QR code (URL, menu, offer, campaign). |
qrblox.audio.create | Draft an audio code (near-ultrasonic payload). |
qrblox.menu.create / .list / .add_item | Build and extend merchant menus. |
qrblox.challenge.create | Scan streaks, scan-count games, visit-window or loyalty campaigns. |
qrblox.analytics.scan_summary | Total scans + by-day series. |
Plus two REST endpoints for non-MCP callers:
| Endpoint | Auth | Notes |
|---|---|---|
POST /api/generate-qr-code | none | 3 / IP / day, sandbox, 7-day expiry. |
POST /api/bulk-qr-codes | Bearer sk-qrblox-... | Up to 50 permanent codes per call, written to your merchant workspace. |
| URL | What it returns |
|---|---|
GET https://app.qrblox.com/api/mcp | Server info + the full tool list (no auth). |
POST https://app.qrblox.com/api/mcp tools/list | JSON-RPC tool discovery (no auth). |
GET https://app.qrblox.com/api/generate-qr-code | Public manifest: endpoint shape, limits, upgrade path. |
Full reference and connect snippets at docs.qrblox.com/mcp.html.
| HTTP / JSON-RPC | Meaning |
|---|---|
400 / -32600 | Invalid JSON-RPC 2.0 request. |
401 / -32001 | Missing or invalid key. data.code = NO_AUTH / INVALID_API_KEY / INVALID_TOKEN. |
403 / -32001 | Key revoked (data.code = REVOKED). |
200 / -32601 | Unsupported method. |
200 / -32602 | Unknown tool. |
200 / -32000 | Tool handler threw β read error.message. |
Β© Qrblox / Terahertz Inc.
Source-derived launch command. Check the maintainerβs required arguments and credentials before running:
npx -y qrblox-mcpMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"com-qrblox-mcp": {
"command": "npx",
"args": [
"-y",
"qrblox-mcp"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the clientβs tool list, then try a read-only example from its documentation.
Claude Desktop setup referenceqrblox-mcpnpmQrblox works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.