QR codes active 90 days, claimable forever. Request an API key in chat to retarget and track scans.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Bearer token for authentication. Format: 'Bearer YOUR_API_KEY'. Request a free API key using the request_api_key tool directly in chat.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Create a new QR code. Authenticated users (API key required) get a permanent short URL that can be retargeted at any time without reprinting the physical QR image — limits are set by the account plan. Anonymous users receive a one-time data URI image that is not stored and cannot be updated. On success the result is a pre-formatted markdown table — display it exactly as received, do not reformat or summarise.
A human-readable label for the QR code
Destination URL — must start with https:// or http://
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Create a new QR code. Authenticated users (API key required) get a permanent short URL that can be retargeted at any time without reprinting the physical QR image — limits are set by the account plan. Anonymous users receive a one-time data URI image that is not stored and cannot be updated. On success the result is a pre-formatted markdown table — display it exactly as received, do not reformat or summarise.
| Argument | Type | Description |
|---|---|---|
| title* | string | A human-readable label for the QR code |
| target_url* | string | Destination URL — must start with https:// or http:// |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"title",
"target_url"
],
"properties": {
"title": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "A human-readable label for the QR code"
},
"target_url": {
"type": "string",
"format": "uri",
"description": "Destination URL — must start with https:// or http://"
}
}
}Permanently delete a QR code and its scan history. This action cannot be undone. To prevent accidental or injected deletions, you MUST supply confirm_title — the exact title of the code as returned by get_qr_code or list_qr_codes. If the title does not match the stored record, the deletion is refused. Always call get_qr_code or list_qr_codes first to retrieve the exact title before calling this tool. Requires authentication.
| Argument | Type | Description |
|---|---|---|
| qr_code_id | string | Internal UUID from create_qr_code or list_qr_codes |
| short_code | string | Short code from the redirect URL (e.g. "abc123") |
| confirm_title* | string | The exact title of the QR code to delete — must match the stored title character-for-character. This prevents blind or injected deletions. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"confirm_title"
],
"properties": {
"qr_code_id": {
"type": "string",
"description": "Internal UUID from create_qr_code or list_qr_codes"
},
"short_code": {
"type": "string",
"description": "Short code from the redirect URL (e.g. \"abc123\")"
},
"confirm_title": {
"type": "string",
"minLength": 1,
"description": "The exact title of the QR code to delete — must match the stored title character-for-character. This prevents blind or injected deletions."
}
}
}Get your account details: current plan, QR code usage, and which features are available. Use this before create_qr_code to check remaining capacity, or to confirm which features are active on your plan. Requires authentication.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}Look up a single QR code by its internal ID or short code. Returns a pre-formatted markdown table with fields: Title, ID, Short Code, Short URL, Destination, Status, Created, QR Code Link. Display the table exactly as received — do not reformat or summarise. Requires authentication.
| Argument | Type | Description |
|---|---|---|
| qr_code_id | string | Internal UUID from create_qr_code or list_qr_codes |
| short_code | string | Short code from the redirect URL (e.g. "abc123") |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"qr_code_id": {
"type": "string",
"description": "Internal UUID from create_qr_code or list_qr_codes"
},
"short_code": {
"type": "string",
"description": "Short code from the redirect URL (e.g. \"abc123\")"
}
}
}Get the total lifetime scan count for a QR code. Returns a pre-formatted markdown table with fields: Title, ID, Short Code, Short URL, Destination, Status, Created, QR Code Link, Total Scans. Display the table exactly as received — do not reformat or summarise. Requires authentication.
| Argument | Type | Description |
|---|---|---|
| qr_code_id* | string | Internal UUID of the QR code |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"qr_code_id"
],
"properties": {
"qr_code_id": {
"type": "string",
"description": "Internal UUID of the QR code"
}
}
}List all QR codes in your account. Returns one pre-formatted markdown table per QR code with fields: Title, ID, Short Code, Short URL, Destination, Status, Created, QR Code Link. Display each table exactly as received — do not reformat or summarise. Requires authentication.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number (default: 1) |
| limit | integer | Items per page, max 20 (default: 20) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Page number (default: 1)"
},
"limit": {
"type": "integer",
"maximum": 20,
"minimum": 1,
"description": "Items per page, max 20 (default: 20)"
}
}
}Get a free API token — no account or email required. The token gives you up to 5 QR codes that can be updated at any time. IMPORTANT LIFETIME WARNING: the token expires after 90 days, and QR codes are permanently deleted ~90 days after that (~180 days total). To keep codes alive permanently, claim a free account at https://qrverloz.com/claim — this must be done before the token expires. Save the returned token: it is shown only once. Add it to your MCP client config under Authorization: Bearer, then call create_qr_code.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}Change the destination URL of a QR code without touching the printed image. Print once, redirect anywhere — forever. Accepts either the internal qr_code_id or the short_code from the redirect URL. On success the result is a pre-formatted markdown table — display it exactly as received, do not reformat or summarise. Requires authentication.
| Argument | Type | Description |
|---|---|---|
| qr_code_id | string | Internal UUID from create_qr_code or list_qr_codes |
| short_code | string | Short code from the redirect URL (e.g. "abc123") |
| target_url* | string | New destination URL — must start with https:// or http:// |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"target_url"
],
"properties": {
"qr_code_id": {
"type": "string",
"description": "Internal UUID from create_qr_code or list_qr_codes"
},
"short_code": {
"type": "string",
"description": "Short code from the redirect URL (e.g. \"abc123\")"
},
"target_url": {
"type": "string",
"format": "uri",
"description": "New destination URL — must start with https:// or http://"
}
}
}