{
  "markdown": "# Quality QR MCP Server\n\n[![Validate manifests](https://github.com/silly-geese/quality-qr-mcp/actions/workflows/validate.yml/badge.svg)](https://github.com/silly-geese/quality-qr-mcp/actions/workflows/validate.yml)\n[![Smithery](https://smithery.ai/badge/quality-qr/qr-code-mcp)](https://smithery.ai/server/quality-qr/qr-code-mcp)\n[![MCP](https://img.shields.io/badge/MCP-streamable--http-7c3aed.svg)](https://modelcontextprotocol.io)\n[![Protocol](https://img.shields.io/badge/protocol-2025--03--26-blue.svg)](https://modelcontextprotocol.io/specification)\n[![License](https://img.shields.io/badge/license-proprietary-lightgrey.svg)](LICENSE)\n\nCreate and manage trackable QR codes through AI assistants like Claude, Cursor, and any MCP-compatible tool.\n\nUnlike generic QR code generators, Quality QR codes are **saved to your account** with scan tracking, analytics, and the ability to update destinations without reprinting.\n\n**Endpoint:** `https://quality-qr.app/api/mcp`\n\n## Setup\n\n### 1. Get an API Key\n\nSign up at [quality-qr.app](https://quality-qr.app) and generate an API key at **Dashboard > Settings > API Keys**.\n\n### 2. Configure Your MCP Client\n\n> **Smithery users:** If you install via [Smithery](https://smithery.ai/server/quality-qr/qr-code-mcp), you'll be prompted for your `apiKey` directly — Smithery handles the `Authorization` header for you. The configs below are for manual setup.\n\n#### Claude Desktop\n\nAdd to your Claude Desktop config (`~/Library/Application Support/Claude/claude_desktop_config.json` on Mac):\n\n```json\n{\n  \"mcpServers\": {\n    \"quality-qr\": {\n      \"url\": \"https://quality-qr.app/api/mcp\",\n      \"headers\": {\n        \"Authorization\": \"Bearer YOUR_API_KEY\"\n      }\n    }\n  }\n}\n```\n\n#### Cursor\n\nAdd to your Cursor MCP settings:\n\n```json\n{\n  \"mcpServers\": {\n    \"quality-qr\": {\n      \"url\": \"https://quality-qr.app/api/mcp\",\n      \"headers\": {\n        \"Authorization\": \"Bearer YOUR_API_KEY\"\n      }\n    }\n  }\n}\n```\n\n#### Claude Code\n\n```bash\nclaude mcp add quality-qr --transport http https://quality-qr.app/api/mcp \\\n  --header \"Authorization: Bearer YOUR_API_KEY\"\n```\n\n### 3. Start Using It\n\nAsk your AI assistant:\n\n- \"Create a QR code for https://example.com\"\n- \"Make a WiFi QR code for network MyWiFi with password guest123\"\n- \"Show me the analytics for my QR codes\"\n- \"List all my QR codes\"\n- \"Disable QR code abc123\"\n\n## Available Tools\n\n| Tool | Description |\n|------|-------------|\n| `quality_qr_create` | Create a trackable QR code. 12 types: URL, PDF, Menu, App Store, Social, WiFi, vCard, Email, Phone, SMS, Text, Event. Returns an inline SVG. |\n| `quality_qr_list` | List your QR codes with optional type filter and pagination. |\n| `quality_qr_get` | Get full details of a QR code by ID. |\n| `quality_qr_update` | Update destination URL (dynamic types), rename, or enable/disable. |\n| `quality_qr_delete` | Permanently delete a QR code. Frees plan quota. |\n| `quality_qr_analytics` | Scan analytics: totals, daily trends, device breakdown, top countries. |\n\n## QR Code Types\n\n**Dynamic (URL can be changed after printing):** URL, PDF, Menu, App Store, Social\n\n**Static (data encoded directly):** WiFi, vCard, Email, Phone, SMS, Text, Event\n\n## Rate Limits\n\nMCP tool calls count against your API rate limit. Protocol messages (`initialize`, `tools/list`) are free.\n\n| Plan | Tool Calls / Month | Analytics History | Price |\n|------|-------------------|-------------------|-------|\n| Free | 100 | 7 days | Free |\n| Pro | 1,000 | 30 days | €10/mo |\n| Business | 10,000 | 1 year | €30/mo |\n\n### Rate-Limit Response Headers\n\nEvery response includes headers to help you manage usage:\n\n| Header | Description |\n|--------|-------------|\n| `X-RateLimit-Limit` | Maximum tool calls allowed per month on your plan |\n| `X-RateLimit-Remaining` | Tool calls remaining in the current billing period |\n| `X-RateLimit-Reset` | UTC timestamp when the limit resets (ISO 8601) |\n| `Retry-After` | Seconds to wait before retrying (only present on `429` responses) |\n\nWhen you receive a `429 Too Many Requests` response, wait for the number of seconds specified in `Retry-After` before retrying.\n\n## Security\n\n- All requests authenticated via API key (Bearer token)\n- Keys can be revoked instantly from the dashboard\n- QR codes are scoped to your account (no cross-user access)\n- No admin, billing, or team management operations exposed\n- GDPR and CCPA compliant, hosted on Cloudflare's global edge network\n- See [SECURITY.md](SECURITY.md) to report a vulnerability, and [PRIVACY.md](PRIVACY.md) for data handling details\n\n### API Key Management\n\nYour API key grants full access to your QR codes and analytics. Treat it like a password.\n\n- **Rotate regularly.** Generate a new key in **Dashboard > Settings > API Keys**, update your MCP client config, then revoke the old key. You can have multiple active keys to allow zero-downtime rotation.\n- **Revoke compromised keys immediately.** Revocation takes effect instantly — any in-flight requests using the old key will fail.\n- **Restrict access to config files.** MCP client configs store your key in plaintext. On macOS/Linux, ensure only your user can read them (e.g., `chmod 600`). Avoid committing config files with real keys to version control.\n\n## Links\n\n- [Quality QR](https://quality-qr.app)\n- [Agent Onboarding (SKILL.md)](https://quality-qr.app/agent-onboarding/SKILL.md) — step-by-step instructions for AI agents to use Quality QR autonomously ([source](SKILL.md))\n- [MCP Documentation](https://quality-qr.app/docs/mcp)\n- [API Documentation](https://quality-qr.app/docs/api)\n- [Pricing](https://quality-qr.app/pricing)\n\n## Protocol\n\nThis is a remote MCP server using Streamable HTTP transport (JSON-RPC 2.0 over HTTP POST). No local installation required. Compatible with MCP protocol version `2025-03-26`.\n",
  "bytes": 5797,
  "sha": "6b49cc15a5d704d2161defab432cb9a39c63c6ab4602cc83172780fc7f1b3442",
  "repo_slug": "silly-geese/quality-qr-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_silly_geese_quality_qr_9b088107/readme"
}