MCP Server
MCP Server
qr3.app exposes an MCP server for AI tools like Claude and Cursor. The current server uses a standard HTTP transport and bearer authentication.
Secure connection
Endpoint: https://mcp.qr3.app/mcp
The current remote server uses HTTP bearer authentication:
Authorization: Bearer <API_KEY>Use only an MCP client that can send a custom HTTP Authorization header from its secure credential store. Never commit an API key to a project configuration file or repository.
Claude Remote Connectors use OAuth. qr3 currently offers bearer-key authentication only, so it is not directly compatible with that connector flow until OAuth support is added.
Discovery without an API key
A client does not have to ask for credentials first in order to find out what this server offers. https://mcp.qr3.app/mcp answers the following methods without an Authorization header:
| Method | Returns |
|---|---|
initialize | Protocol version, capabilities, server name |
tools/list | every tool together with its input schema |
resources/list | the catalogue of static resources |
resources/read | the content of a single resource |
prompts/list | the prompt list |
ping | reachability |
Every method that touches a workspace goes through tools/call, and that still requires the bearer key. Without it the server answers with HTTP 401, application/problem+json and WWW-Authenticate: Bearer realm="qr3.app".
curl -s https://mcp.qr3.app/mcp \ -H 'Content-Type: application/json' \ -H 'Accept: application/json, text/event-stream' \ -d '{"jsonrpc":"2.0","id":1,"method":"resources/list","params":{}}'For clients that do not speak MCP, the same catalogue is available as plain JSON at https://mcp.qr3.app/resources, and a single resource at https://mcp.qr3.app/resources/<uri-without-qr3://>.
Available tools
Core tools
| Tool | Description |
|---|---|
create_qr | Create a QR code for a URL |
update_qr | Update a QR code’s target URL, status, tags, notes, or expiry |
list_qrs | List QR codes with a status filter and cursor pagination |
get_qr_stats | Get aggregated scan statistics for a QR code |
create_batch | Create QR codes from a list of URLs (max. 50) |
create_dpp_qr | Create a DPP QR code for a battery, textile, or general product |
create_vcard_qr | Create a static vCard QR code |
create_wifi_qr | Create a static WiFi QR code |
validate_dpp | Validate DPP data without creating it |
get_image | Get an API-provided PNG, SVG, PDF, or EPS asset URL |
shorten_url | Create a dynamic URL QR code and return its short URL |
DPP resources
The server also exposes static resources for the DPP contract:
| URI | Content |
|---|---|
qr3://qr-types | The six Codes API types: URL, vCard, WiFi, email, SMS, and location |
qr3://error-codes | Error types and handling guidance |
qr3://rate-limits | Plan-based rate limits |
qr3://quickstart | Quickstart guide |
qr3://dpp-schema | Battery-first DPP contract |
qr3://gs1-test-vectors | GS1 resolver examples |
qr3://dpp-content-negotiation-examples | Resolver response examples |
Example prompts
Create a QR code for https://example.com
Show me the scan stats for qr_abc123
Create a battery DPP with GTIN 04012345678901 and the required battery data