Create, retarget, style, and track dynamic QR codes through an MCP server with 11 QR types and bulk operations.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent โ or use 1-click editor setup below.
This server is confirmed live โ we successfully called its tools/list endpoint directly (see the verified badge above). We haven't yet sandbox-tested the stdio install command below specifically, which is a separate, ongoing check.
๐ก Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Inspect callable tools, capabilities, and parameters exposed to AI agents by Qr Agent Core.
create_qr_codeCreate a new managed QR code with optional custom styling. The QR code points to a short URL that redirects to your target URL. You can change the target URL later without regenerating the QR image. Supports custom colors, dot shapes, corner shapes, and logo embedding.
get_qr_codeRetrieve details of an existing QR code by its short ID. Returns the current target URL, metadata, and timestamps.
update_qr_destinationChange where an existing QR code redirects to. This is the key 'dynamic link' feature: the QR image stays the same, but scanning it will now go to the new URL. Ideal for updating campaigns, fixing broken links, or A/B testing.
list_qr_codesList all managed QR codes with pagination. Returns short IDs, target URLs, labels, and timestamps. Use this to browse or search for existing QR codes.
delete_qr_codePermanently delete a QR code and all its scan analytics. The short URL will stop working immediately. This cannot be undone.
get_qr_analyticsGet enriched scan analytics for a QR code. Returns total scans, daily trends, device/browser/country/referer breakdowns with percentages, and recent scan events with parsed user-agent and geo data.
QR-as-a-Service API built for AI agents. Create, update, and track dynamic QR codes programmatically via REST API or MCP (37 tools).
QR codes point to short URLs (/r/:shortId) that you can retarget at any time โ the QR image never changes, but scanning it goes to the new destination. Multi-tenant by design, with full scan analytics.
Live API: api.qrforagent.com ย |ย Site: qrforagent.com ย |ย MCP: qr-for-agent
qr.yourbrand.com/r/abc123)qr-for-agent with 37 tools for Claude Desktop, Cursor, etc.POST /api/register with email, no credit card/documentation/.well-known/ai-plugin.json and /.well-known/mcp.jsonOn first startup, an API key is auto-generated and printed to the console.
X-API-Key required)| Method | Path | Description |
|---|---|---|
POST | /api/qr | Create a QR code (11 types, custom styling) |
GET | /api/qr | List all QR codes (paginated) |
GET | /api/qr/:shortId | Get QR code details |
PATCH | /api/qr/:shortId | Update target URL, label, UTM, GTM, redirect rules |
DELETE | /api/qr/:shortId | Delete QR code and its analytics |
GET | /api/qr/:shortId/image | Download QR image (regenerated with stored style) |
POST | /api/qr/bulk | Create up to 50 QR codes (all-or-nothing) |
PATCH | /api/qr/bulk | Update up to 50 QR codes (partial success) |
DELETE | /api/qr/bulk | Delete up to 50 QR codes (partial success) |
POST | /api/qr/bulk/csv | Create up to 500 QR codes from CSV (Pro only) |
X-API-Key required)| Method | Path | Description |
|---|---|---|
GET | /api/analytics/:shortId | Scan stats with device, browser, OS, country, city breakdowns + conversions |
X-API-Key required)| Method | Path | Description |
|---|---|---|
POST | /api/conversions | Record a conversion event for a QR code you own |
GET | /api/conversions/:shortId | Get conversion stats (totals, by_event, by_day, recent) |
X-API-Key required)| Method | Path | Description |
|---|---|---|
POST | /api/webhooks | Register webhook endpoint (returns HMAC secret) |
GET | /api/webhooks | List all webhooks |
DELETE | /api/webhooks/:id | Delete a webhook |
X-API-Key required, Pro only)| Method | Path | Description |
|---|---|---|
GET | /api/domain | Get current custom domain and DNS status |
PUT | /api/domain | Set custom domain |
DELETE | /api/domain | Remove custom domain |
X-API-Key required)| Method | Path | Description |
|---|---|---|
GET | /api/usage | Current usage and quota |
POST | /api/stripe/checkout | Create Stripe Checkout session (upgrade to Pro) |
POST | /api/stripe/portal | Open Stripe billing portal |
| Method | Path | Description |
|---|---|---|
POST | /api/register | Self-service API key registration (rate-limited) |
GET | /r/:shortId | Redirect to target URL (records scan) |
GET | /t/:shortId | Conversion tracking pixel (returns 1ร1 GIF) |
GET | /i/:shortId | Serve QR image (cacheable) |
GET | /health | Health check |
GET | /documentation | Swagger UI |
GET | /.well-known/ai-plugin.json | AI plugin manifest |
GET | /.well-known/mcp.json | MCP discovery manifest |
X-Admin-Secret header required)| Method | Path | Description |
|---|---|---|
GET | /api/admin/keys | List all registered API keys |
GET | /api/admin/stats | Dashboard metrics |
All /api/* endpoints require an X-API-Key header.
qr_ + 32-character random stringnpm run key:create "my-label"npm run key:listPublic endpoints (/r/*, /i/*, /health, /documentation, /.well-known/*) don't require auth.
Published as qr-for-agent on npm. 37 tools for AI agents to manage QR codes natively.
Add to your MCP config (claude_desktop_config.json or .cursor/mcp.json):
| Tool | Description |
|---|---|
create_qr_code | Create a URL QR code with optional custom styling |
get_qr_code | Get QR code details by short ID |
update_qr_destination | Change where a QR code redirects |
list_qr_codes | List all QR codes with pagination |
delete_qr_code | Delete a QR code and its analytics |
get_qr_analytics | Get scan stats and breakdowns |
bulk_create_qr_codes | Create up to 50 QR codes at once |
bulk_update_qr_codes | Update up to 50 QR codes at once |
bulk_delete_qr_codes | Delete up to 50 QR codes at once |
create_vcard_qr | Create a vCard contact QR code |
create_wifi_qr | Create a WiFi credentials QR code |
create_email_qr | Create an email (mailto:) QR code |
create_sms_qr | Create an SMS QR code |
create_phone_qr | Create a phone call QR code |
create_event_qr | Create a calendar event QR code |
create_text_qr | Create a plain text QR code |
create_location_qr | Create a geo-location QR code |
create_social_qr | Create a social media links QR code |
create_app_store_qr | Create a smart app store redirect QR code |
update_vcard_qr | Update a vCard QR code |
update_wifi_qr | Update a WiFi QR code |
update_social_qr | Update a social media QR code |
update_app_store_qr | Update an app store QR code |
create_webhook | Register a webhook endpoint |
list_webhooks | List all registered webhooks |
delete_webhook | Delete a webhook |
register | Register for an API key |
get_usage | Get current usage and quota |
upgrade_to_pro | Create a Stripe Checkout session |
manage_billing | Open Stripe billing portal |
set_utm_params | Set UTM tracking parameters on a QR code |
set_redirect_rules | Set conditional redirect rules on a QR code |
set_custom_domain | Set or remove custom domain (Pro) |
get_custom_domain | Get current custom domain and DNS status |
bulk_create_from_csv | Create up to 500 QR codes from CSV data (Pro) |
record_conversion | Record a post-scan conversion event |
get_conversions | Get conversion stats for a QR code |
Copy .env.example to .env and edit:
| Variable | Default | Description |
|---|---|---|
PORT | 3100 | HTTP port |
HOST | 0.0.0.0 | Bind address |
BASE_URL | http://localhost:3100 | Public URL (used in short URLs) |
DATABASE_URL | ./data/qr-agent.db | SQLite file path |
SHORT_ID_LENGTH | 8 | Length of generated short IDs |
ADMIN_SECRET | (none) | Secret for admin endpoints (X-Admin-Secret header) |
STRIPE_SECRET_KEY | (none) | Stripe API secret key |
STRIPE_WEBHOOK_SECRET | (none) | Stripe webhook signing secret |
STRIPE_PRICE_ID | (none) | Stripe Price ID for Pro plan |
SQLite with Drizzle ORM. Six tables:
Factual signals from GitHub, npm, and our automated checks โ not a rating.
No reviews yet โ be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/benswel-qr-agent-core)<a href="https://allmcps.com/mcp/benswel-qr-agent-core"><img src="https://allmcps.com/api/badge/benswel-qr-agent-core?style=directory" alt="Qr Agent Core on AllMCPs" /></a>