MCP · Model Context Protocol

Connect your AI to QrVerloz

Create, update, and inspect QR codes from any MCP-compatible AI client — Claude, Cursor, VS Code, Continue, and more. No browser required. No account needed to start.

Server URL

https://qrverloz.com/api/mcp

Quick Start

Up and running in 3 steps — no signup required.

Want ready-made config files for Claude Desktop, Claude Code, Cursor, VS Code, and more? Clone the qrverloz-mcp repo ↗

1
Add the server
Open your AI client settings and add the MCP server URL.
https://qrverloz.com/api/mcp
2
Get a free token
Call request_api_key — no signup, no email. Returns a 90-day token. Save it; it is shown only once.
request_api_key()
3
Create a QR code
Add the token to your client headers, then call create_qr_code.
"Authorization": "Bearer qrv_..."

Authentication

Two modes — anonymous for quick tests, authenticated for production.

Unauthenticated
No header required
  • Anonymous, ephemeral data-URI images only
  • QR codes are not stored and cannot be updated
  • Rate limited: 5/min · 10/hr · 30/day
  • Good for testing before committing
Bearer Token
Authorization header required
  • Persistent QR codes with permanent short URLs
  • Retarget any time without reprinting
  • Limits set by account plan (5 codes on Free, same for guest tokens)
  • Token from request_api_key or the Settings dashboard
Authorization: Bearer <token>

Tools Reference

8 tools available. Provide either qr_code_id or short_code where both are listed as optional.

request_api_key
Anonymous OK
Get a free persistent API token — no account or email required. The token gives you up to 5 permanent QR codes that can be updated at any time. Valid for 90 days. Save the returned token: it is shown only once.

No parameters required.

Example Response

{
  "success": true,
  "token": "qrv_abc123...",
  "important": "Save this token — it is shown only once.",
  "plan": "guest (Free)",
  "max_qr_codes": 5,
  "expires": "2026-07-08",
  "next_steps": [
    "1. Add to MCP client headers: Authorization: Bearer qrv_abc123...",
    "2. Restart your AI client.",
    "3. Call create_qr_code — codes will be permanent and updateable.",
    "4. To keep codes after 90 days, visit /claim"
  ]
}
create_qr_code
Anonymous OKAuth Recommended
Create a new QR code pointing to a URL. Authenticated users 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.

Parameters

NameTypeRequiredDescription
titlestringYesA human-readable label for the QR code (1–200 characters)
target_urlstring (URL)YesDestination URL — must start with https:// or http://

Example Response

{
  "success": true,
  "id": "clxyz...",
  "title": "Summer Sale",
  "short_code": "abc123",
  "short_url": "https://qrverloz.com/r/abc123",
  "target_url": "https://example.com/sale",
  "tip": "Use update_qr_target to change the destination at any time."
}
get_qr_code
Auth Required
Look up a single QR code by its internal ID or short code. Returns the current destination URL, status, and creation date. Provide either qr_code_id or short_code.

Parameters

NameTypeRequiredDescription
qr_code_idstringNoInternal UUID from create_qr_code or list_qr_codes
short_codestringNoShort code from the redirect URL (e.g. "abc123")

Example Response

{
  "id": "clxyz...",
  "title": "My QR Code",
  "short_code": "abc123",
  "short_url": "https://app.example.com/r/abc123",
  "target_url": "https://example.com",
  "is_active": true,
  "created_at": "2026-01-15T10:30:00.000Z"
}
list_qr_codes
Auth Required
List all QR codes in your account with their short URLs and current destinations.

Parameters

NameTypeRequiredDescription
pageintegerNoPage number (default: 1)
limitintegerNoItems per page, max 50 (default: 20)

Example Response

{
  "total": 12,
  "page": 1,
  "limit": 20,
  "items": [
    {
      "id": "clxyz...",
      "title": "My QR Code",
      "short_code": "abc123",
      "target_url": "https://example.com",
      "is_active": true
    }
  ]
}
get_qr_scans
Auth Required
Get the total lifetime scan count for a QR code.

Parameters

NameTypeRequiredDescription
qr_code_idstringYesInternal UUID of the QR code

Example Response

{
  "id": "clxyz...",
  "title": "My QR Code",
  "short_url": "https://app.example.com/r/abc123",
  "total_scans": 247
}
update_qr_target
Auth Required
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.

Parameters

NameTypeRequiredDescription
qr_code_idstringNoInternal UUID from create_qr_code or list_qr_codes
short_codestringNoShort code from the redirect URL (e.g. "abc123")
target_urlstring (URL)YesNew destination URL — must start with https:// or http://

Example Response

{
  "success": true,
  "id": "clxyz...",
  "title": "My QR Code",
  "short_url": "https://app.example.com/r/abc123",
  "target_url": "https://new-destination.com"
}
delete_qr_code
Auth Required
Permanently delete a QR code and its scan history. This action cannot be undone. To prevent accidental deletions, you must supply confirm_title — the exact title of the code as returned by get_qr_code or list_qr_codes. If the titles do not match the deletion is refused.

Parameters

NameTypeRequiredDescription
qr_code_idstringNoInternal UUID from create_qr_code or list_qr_codes
short_codestringNoShort code from the redirect URL (e.g. "abc123")
confirm_titlestringYesThe exact title of the QR code — must match character-for-character to prevent blind deletions

Example Response

{
  "success": true,
  "deleted_id": "clxyz...",
  "deleted_short_code": "abc123",
  "deleted_title": "My QR Code",
  "note": "The QR code and its scan history have been removed."
}
get_account_info
Auth Required
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.

No parameters required.

Example Response

{
  "tier": "free",
  "plan_name": "Free",
  "is_guest": true,
  "qr_codes": {
    "used": 1,
    "limit": 5,
    "remaining": 4
  },
  "features": {
    "custom_colors": false,
    "logo_overlay": false,
    "scheduled_redirects": false,
    "password_protection": false,
    "bulk_upload": false,
    "csv_export": false,
    "svg_export": false,
    "analytics": false
  },
  "limits": {
    "max_scans_per_code_per_day": 50,
    "bulk_upload_max_rows": 0
  }
}

Rate Limits

All limits are per IP address.

TierPer minutePer hourPer dayQR code limit
Unauthenticated5 creates10 creates30 createsEphemeral only
Guest / Free token60 req5 permanent codes
Starter plan60 req50 permanent codes
Pro plan60 req200 permanent codes

All tiers share a global cap of 60 requests/min per IP across all tools. The anonymous per-minute/hour/day limits apply only to the create_qr_code tool.

Got a guest token? Claim it to make it permanent.
Guest tokens expire after 90 days — but your QR codes do not have to.

Visit /claim, link your email address, and your guest token is converted to a full account. All your QR codes are preserved, the token never expires, and you unlock analytics, custom branding, and more depending on your plan.