Skip to main content
Glama
README.md
# @qr-branding/mcp-server

MCP server for the [QR Branding](https://qr-branding.com) API. Lets Claude Desktop, Claude Code, Cursor, ChatGPT desktop, and any other Model Context Protocol client generate branded QR codes, render any of the 118 curated templates, or assemble Wi-Fi / vCard / geo payloads — all through your QR Branding API key.

## What it does

The server exposes the QR Branding public API gateway (`https://qr-branding.com/api/v1/...`) as a small set of MCP tools. The gateway handles authentication, credit metering and rate limiting; this server just forwards prompts/inputs from your assistant to the gateway and renders the QR image inline back into the chat.

## Install

```bash
npx -y @qr-branding/mcp-server
```

## Get an API key

Sign in at [qr-branding.com](https://qr-branding.com) and create a key under **Dashboard → API keys** (`/dashboard/keys`). Keys look like `qrb_xxx...`. API access requires an active **Studio** pack; without one every call returns HTTP 402 `studio_required`.

## Client config

### Claude Desktop (`claude_desktop_config.json`) / Claude Code (`.mcp.json`)

Claude Desktop: Settings → Developer → Edit Config opens the file (macOS `~/Library/Application Support/Claude/claude_desktop_config.json`, Windows `%APPDATA%\Claude\claude_desktop_config.json`).

```json
{
  "mcpServers": {
    "qr-branding": {
      "command": "npx",
      "args": ["-y", "@qr-branding/mcp-server"],
      "env": {
        "QR_BRANDING_API_KEY": "qrb_xxx"
      }
    }
  }
}
```

### Optional environment

- `QR_BRANDING_API_BASE_URL` — override the gateway URL. Default `https://qr-branding.com`. Useful for self-hosters and staging.

## Remote server (no install)

The same seven tools are served over Streamable HTTP at `https://qr-branding.com/mcp`. Claude Code:

```bash
claude mcp add --transport http qr-branding https://qr-branding.com/mcp --header "Authorization: Bearer qrb_xxx"
```

Want to try it before getting a key? The remote server also answers without one, in a keyless trial mode: every tool except `qr_generate_ai`, PNG up to 720 px, 20 tool calls per day per network. This npm package always needs `QR_BRANDING_API_KEY`.

Full docs: https://qr-branding.com/docs/integrations/mcp

## Tools

| Tool | What it does |
|---|---|
| `qr_generate` | Manual QR generation with explicit colors, module/finder shapes, logo, caption, format. |
| `qr_generate_ai` | Prompt-driven design — the server-side LLM (Groq → Gemini fallback) picks the style for you. |
| `qr_list_templates` | List the 118 curated templates (id, name, description, preview thumbnail URL). |
| `qr_generate_from_template` | Render a template by id with per-call overrides (content, colors, format/size). |
| `qr_build_wifi` | Encode Wi-Fi credentials into a scannable Wi-Fi QR. |
| `qr_build_vcard` | Encode a contact card (vCard) into a QR. |
| `qr_build_geo` | Encode latitude/longitude into a `geo:` URI QR. |

For raster/SVG outputs the tool returns an inline image block so the assistant shows the QR directly in chat. For PDF the tool saves to a temp file and returns the path.

## Usage examples

Ask your assistant things like:

- "Generate a QR code for https://qr-branding.com with a circular module shape and gold color."
- "Make me a luxury QR for my coffee brand — content is https://baristabros.example, gold dots on cream background."
- "List the QR templates in the 'business' category and render template 12 for https://acme.example."
- "Encode my home Wi-Fi as a QR: SSID 'HomeNetwork', password 'wifi-please-7', WPA, hidden."
- "Build a vCard QR for Jane Doe at Acme Inc., +1-555-867-5309, jane@acme.example, https://acme.example."
- "Make a geo QR for 40.4168, -3.7038 (Madrid)."

## Limits and billing

API access is metered by **API credits** issued with your plan or topped up via promo codes. The free tier has no API quota — the gateway returns HTTP 402 `out_of_api_credits` and the tool surfaces that verbatim with an upgrade hint. Manage your plan at [qr-branding.com/dashboard](https://qr-branding.com/dashboard).

## Privacy

This server only forwards your prompts/inputs to `qr-branding.com`. It does not phone home, does not include analytics or third-party telemetry, and reads `QR_BRANDING_API_KEY` only once at startup. The QR Branding privacy policy lives at [qr-branding.com/privacy](https://qr-branding.com/privacy).

## Develop locally

```bash
npm install
npm run build      # tsc → dist/

# smoke test the gateway with your key
QR_BRANDING_API_KEY=qrb_xxx npm run smoke
# include a sample QR generation
QR_BRANDING_API_KEY=qrb_xxx SMOKE_GENERATE=1 npm run smoke

# wire dist/index.js into your MCP client as a `command` for local testing
node dist/index.js
```

## License

MIT

TDQS

A3.9/5.0

Scored across 7 tools

Disambiguation4/5

The three qr_generate* tools overlap in purpose (all produce a branded QR) but are cleanly separated by intent: manual control, AI-driven design, and template-based rendering, with descriptions that clarify when to pick each. The qr_build_wifi/vcard/geo tools are unmistakably distinct payload encoders.

Naming Consistency4/5

All tools share a consistent qr_ prefix and snake_case, with a readable verb_noun structure (qr_generate, qr_list_templates, qr_build_wifi). Minor deviation is the mix of 'generate' vs 'build' verbs and the suffixed variants qr_generate_ai / qr_generate_from_template, but the pattern stays predictable.

Tool Count5/5

Seven tools is well-scoped for a QR branding service, with each tool earning its place across generation modes, template discovery, and specific payload types. No redundant or filler tools.

Completeness4/5

The surface covers the full generation lifecycle (manual, AI, template), template listing, and three specialized payload builders. Minor gaps exist for other common encodings (URL, email, SMS, text) though qr_generate likely accepts arbitrary content, so agents can work around this.

Maintenance

ActivityMaintained
ResponsivenessNo issues