Skip to main content

MCP server for qr-cow: create, style, and manage QR codes (with scan analytics) from Claude, Cursor, Zed, or any MCP client.

Project description

qr-cow MCP server

PyPI Python License: MIT CI

An MCP server that exposes the customer-facing qr-cow.com API to any MCP-compatible AI client (Claude Desktop, Claude Code, Cursor, Zed, …).

Once connected, you can say things like:

"Make a QR code that goes to https://my-cafe.com/menu, call it Café menu" "Render a styled QR for https://acme.com in the ocean preset, 600px" "Show me which countries scanned my café menu last week" "Change the destination of the café menu QR to /menu-v2"

…and the assistant calls the API on your behalf.


1. Create a token

  1. Sign in at https://qr-cow.com.
  2. Go to Dashboard → API & MCP.
  3. Click Create token. Give it a name like "Claude Desktop".
  4. Copy the qrc_live_… value that appears. It's shown once.

2. Wire it into your MCP client

Claude Desktop / Claude Code

Add to ~/.claude.json (or your platform's equivalent config):

{
  "mcpServers": {
    "qr-cow": {
      "command": "uvx",
      "args": ["qr-cow-mcp"],
      "env": {
        "QRCOW_API_TOKEN": "qrc_live_..."
      }
    }
  }
}

Restart the client. You should see qr-cow tools listed.

Cursor / Zed

Same shape — pass command, args, and an env block with QRCOW_API_TOKEN. See their MCP docs for the exact key.

Self-hosted qr-cow

Set QRCOW_API_BASE (defaults to https://qr-cow.com/api) to point at your install:

"env": {
  "QRCOW_API_TOKEN": "qrc_live_...",
  "QRCOW_API_BASE": "https://your-host/api"
}

Tools

Tool What it does
create_qrcode Create and save a static or dynamic QR (URL, Wi-Fi, vCard, …) in your account.
render_styled_qrcode Render a fully styled QR image (dot/eye shapes, gradient, logo) from data plus a preset or style, without saving it. Returns the image.
list_qrcodes List recent QR codes in your account.
get_qrcode Fetch one QR code with its current destination + design.
update_qrcode_destination Change a dynamic QR's destination — the printed code keeps working.
delete_qrcode Soft-delete a code.
get_qrcode_analytics Scans, unique scanners, country / device / hour-of-day breakdown.
me The signed-in user's profile + current plan.

Develop locally

git clone https://github.com/qrcow/qr_cow_mcp.git
cd qr_cow_mcp
uv venv && source .venv/bin/activate
uv pip install -e ".[dev]"
pytest

# Try it out — auth doesn't matter for startup
QRCOW_API_TOKEN=qrc_live_local QRCOW_API_BASE=http://localhost:8080/api qr-cow-mcp

The server speaks stdio, so the easiest way to manually exercise it is through an MCP client.

Privacy & security

  • The server is a thin pass-through: your token stays in your MCP client config and is only ever sent to the qr-cow API (or the QRCOW_API_BASE you configure) as a Bearer header.
  • No telemetry, no third-party calls. Requests carry a User-Agent: qr-cow-mcp/<version> header so the API can distinguish MCP traffic.

Contributing & releases

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

qr_cow_mcp-0.1.1.tar.gz (11.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

qr_cow_mcp-0.1.1-py3-none-any.whl (9.2 kB view details)

Uploaded Python 3

File details

Details for the file qr_cow_mcp-0.1.1.tar.gz.

File metadata

  • Download URL: qr_cow_mcp-0.1.1.tar.gz
  • Upload date:
  • Size: 11.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.11.2

File hashes

Hashes for qr_cow_mcp-0.1.1.tar.gz
Algorithm Hash digest
SHA256 4f56b350d9aaf3b6150e5704bb214ff4e91a75077e3b1e129d752da4e2f664f2
MD5 e301b7ebd568e89ecfc9385738300668
BLAKE2b-256 3a3137f671354d856c0a84e6e81096aa83a27b123b5b17ca7eea8786d2c7968f

See more details on using hashes here.

File details

Details for the file qr_cow_mcp-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: qr_cow_mcp-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 9.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.11.2

File hashes

Hashes for qr_cow_mcp-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4bf2b0cbb664ca29cc9af99b3d213d3404859de7b29f57d2513cac724e1450f6
MD5 ac1104fd9c673f0d51fa7f82be096523
BLAKE2b-256 4c082953d8ad30c2c9ca352009752f782baeb966a176b115bd9a36c49cb63389

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page