QR Maker for AI assistants and developers
Connect QR Maker to Claude, ChatGPT, Cursor or any MCP client, and your assistant can design, check and create QR codes while it builds your flyer, menu, slides or website, then answer questions about how they're scanned. Developers can do the same through the REST API.
Connect the MCP server
Server address:
https://qrmaker.app/mcpYou sign in with your QR Maker account and approve the app. Codes it makes appear in your dashboard, and you can disconnect it any time under Dashboard → Integrations.
Claude (web, desktop and mobile)
- Open Settings → Connectors and choose Add custom connector.
- Name it QR Maker and paste https://qrmaker.app/mcp.
- Select Connect, sign in to QR Maker and approve.
Claude Code
claude mcp add --transport http qr-maker https://qrmaker.app/mcp
- Run the command, then type /mcp in Claude Code and choose QR Maker to sign in.
ChatGPT
- Open Settings → Apps & Connectors and add a connector (developer mode may need to be on).
- Use https://qrmaker.app/mcp as the URL with OAuth, then sign in to QR Maker and approve.
Cursor
{
"mcpServers": {
"qr-maker": { "url": "https://qrmaker.app/mcp" }
}
}- Add this to ~/.cursor/mcp.json (or the project's .cursor/mcp.json), then sign in when Cursor asks.
VS Code
{
"servers": {
"qr-maker": { "type": "http", "url": "https://qrmaker.app/mcp" }
}
}- Add this to .vscode/mcp.json, start the server and sign in when asked.
Other MCP clients
- Connect to https://qrmaker.app/mcp over Streamable HTTP. Sign-in uses OAuth 2.1, discovered from the server's protected resource metadata.
- Clients without OAuth can send an API key instead: Authorization: Bearer qrm_…
Things to ask
- “Make a poster for our café's Saturday market with a QR code to our menu, in a style that suits a café.”
- “Create a Wi-Fi QR code for our guest network and put it on a printable table card.”
- “Try three designs for a QR code to our booking page and tell me which scans best.”
- “How many people scanned the spring flyer code this month, and from which countries?”
- “Point the menu QR code at our new menu page.”
Tools
Every code except Wi-Fi encodes a short qrmaker.app link, so its destination can change after printing and scans are counted. Changing or deleting a code asks for confirmation in apps that support it.
- list_design_options
- Styles, frames, shapes and the rules that keep codes scannable.
- preview_qr_code
- Renders up to four draft designs, each with a scan check. Nothing is saved.
- check_qr_code
- Decodes a saved or draft code under phone-like conditions and checks contrast and print size.
- create_qr_code
- Saves a code to your account and returns its short link, images and a scan check.
- list_qr_codes
- Your codes with destinations, scan totals and image links.
- get_qr_code
- One code's content, design and links.
- get_qr_code_image
- SVG markup to place in HTML, a PNG, or public image links.
- get_scan_stats
- Scans over any date range by day, week or month, country, device and code.
- get_account
- Whether the account can create codes and get images right now.
- update_qr_code
- Changes a code's name, destination or design. Printed short-link codes follow the change.
- delete_qr_code
- Deletes a code; its short link stops working.
REST API
Base URL https://qrmaker.app/api/v1. Create an API key under Dashboard → Integrations and send it as Authorization: Bearer qrm_…. The full description is in the OpenAPI document.
| GET | /codes | List codes (query, type, limit, offset) |
| POST | /codes | Create a code: { type, content, name?, design? } |
| GET | /codes/{id} | Get a code |
| PATCH | /codes/{id} | Update name, content or design |
| DELETE | /codes/{id} | Delete a code |
| GET | /codes/{id}/image | SVG or PNG (format, size) |
| GET | /codes/{id}/check | Scan check of a saved code |
| POST | /preview | Preview up to 4 designs as PNG data URLs with scan checks |
| POST | /check | Scan check of a draft design |
| GET | /stats | Scan statistics (code_id, from, to, group_by) |
| GET | /design-options | Styles, frames, shapes and rules |
| GET | /account | Account status |
Example: create a code
curl https://qrmaker.app/api/v1/codes \
-H "Authorization: Bearer qrm_your_key" \
-H "Content-Type: application/json" \
-d '{
"type": "link",
"content": { "url": "https://example.com/menu" },
"name": "Menu",
"design": { "style": "mosaic", "frame": "label-bottom", "frame_text": "Scan for menu", "frame_color": "#7C2D12" }
}'Errors are JSON, such as { "error": { "code": "invalid_input", "message": "content.url is required for link codes. …" } }. Limits are 120 requests a minute and 200 new codes a day per account; a 429 response says when to try again. Hosted image links (/q/<slug>.svg and .png?size=) always show a code's current design.
Questions or feedback: torstein@vikse.dev. See also our privacy notice and terms.