Skip to content

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:

MethodReturns
initializeProtocol version, capabilities, server name
tools/listevery tool together with its input schema
resources/listthe catalogue of static resources
resources/readthe content of a single resource
prompts/listthe prompt list
pingreachability

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".

Terminal window
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

ToolDescription
create_qrCreate a QR code for a URL
update_qrUpdate a QR code’s target URL, status, tags, notes, or expiry
list_qrsList QR codes with a status filter and cursor pagination
get_qr_statsGet aggregated scan statistics for a QR code
create_batchCreate QR codes from a list of URLs (max. 50)
create_dpp_qrCreate a DPP QR code for a battery, textile, or general product
create_vcard_qrCreate a static vCard QR code
create_wifi_qrCreate a static WiFi QR code
validate_dppValidate DPP data without creating it
get_imageGet an API-provided PNG, SVG, PDF, or EPS asset URL
shorten_urlCreate a dynamic URL QR code and return its short URL

DPP resources

The server also exposes static resources for the DPP contract:

URIContent
qr3://qr-typesThe six Codes API types: URL, vCard, WiFi, email, SMS, and location
qr3://error-codesError types and handling guidance
qr3://rate-limitsPlan-based rate limits
qr3://quickstartQuickstart guide
qr3://dpp-schemaBattery-first DPP contract
qr3://gs1-test-vectorsGS1 resolver examples
qr3://dpp-content-negotiation-examplesResolver 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