Developers & agents
QR codes in Cursor and Copilot
Add {"mcpServers": {"useqr": {"url": "https://useqr.app/api/mcp"}}} to ~/.cursor/mcp.json, or the servers form to .vscode/mcp.json for Copilot, and the IDE agent can generate, decode and verify QR codes with no API key. Without MCP, a fetch against the keyless API in a snippet does most dev jobs.
Why an IDE agent needs QR codes at all
Not for the app you are shipping: your code should use a library or the API directly. The IDE agent needs them for the work around the code: test fixtures that must decode to known values, a QR image in a README pointing at the docs or a download, a quick "what does this code in the design PNG contain?", a batch of codes for a demo dataset. Small jobs, constantly, where the cost of setup usually exceeds the job, which is why keyless matters more here than anywhere.
Cursor
~/.cursor/mcp.json (or per-project .cursor/mcp.json):
{ "mcpServers": { "useqr": { "url": "https://useqr.app/api/mcp" } } }
The agent gains the six UseQR tools (generate, typed payloads, decode, verify,
batch, size) documented in the tool reference.
The one that changes IDE workflows is qr_verify: an agent asked to "make the QR
code in the hero section match our brand palette" can rasterise its own output and
prove the recoloured code still decodes
before committing, instead of shipping a plausible-looking failure.
Copilot in VS Code
Copilot's agent mode reads MCP servers from .vscode/mcp.json, with a servers key:
{ "servers": { "useqr": { "type": "http", "url": "https://useqr.app/api/mcp" } } }
Because the server needs no credential, that file is safe to commit, the whole team and CI inherit the capability with zero onboarding. (Copilot's extension and MCP surface evolves quickly; if your build differs, any MCP-capable client takes the same URL.) Per-surface pages: /for/cursor · /for/copilot.
The no-MCP pattern: the API in a snippet
Most one-off jobs do not need tools. They need one HTTP call the agent can write from memory against the keyless API:
// test fixture: known payload, deterministic bytes
const png = await fetch(
"https://useqr.app/api/v1/qr?data=fixture-001&size=256"
).then((r) => r.arrayBuffer());
<!-- README badge-style QR linking to the releases page -->

Determinism is what makes the fixture pattern sound: the same parameters return the same bytes, so snapshot tests do not flake, though for QR specifically, prefer matrix snapshots and decode assertions over PNG byte comparisons. And since responses are immutable-cached, a README image URL costs the reader's browser one fetch a year.
Prompts that work
Concrete asks that these setups handle end to end:
- "Generate
tests/fixtures/qr/with ten codes encodingfixture-000through-009as SVG, and a manifest JSON." (batch + files) - "Decode every PNG under
assets/qr/and check the URLs still return 200." (decode + a loop, the dead-link failure mode is real) - "Add a QR code to the conference slide in
slides.mdlinking to the repo, sized for scanning off a screen." - "Verify the styled code in
signup-poster.svgdecodes; if not, tell me why."
Honest boundaries
The IDE agent generates static codes. Nothing here provides scan analytics or editable destinations. For production code paths, still prefer an in-process library (no network dependency in your build). And treat any QR code an agent draws (rather than obtains from a generator), as decoration until a real decoder has read it back.
FAQ
How do I add an MCP server to Cursor?
Create ~/.cursor/mcp.json (or .cursor/mcp.json in the project) with a mcpServers entry naming the server and its URL. For UseQR that is {"mcpServers":{"useqr":{"url":"https://useqr.app/api/mcp"}}}; keyless, so no env vars.
Does GitHub Copilot support MCP servers?
VS Code's Copilot agent mode reads servers from .vscode/mcp.json using a servers key with type http and a URL. The surface is evolving, so check your version's docs; any MCP-capable client accepts the same UseQR URL.
Is it safe to commit the MCP config to the repo?
For keyless servers like UseQR, yes, the config contains only a public URL, no secret. That is precisely the advantage: the whole team and CI get the capability without a credential-distribution step.
Why would an IDE agent verify QR codes?
Because a styling change can silently break scannability. The qr_verify tool rasterises the agent's output and decodes it with a real decoder, so a recoloured or restyled code is proven to scan before it is committed.
Try it: free, no signup
Related
- QR codes in Claude, Add the keyless UseQR MCP server to Claude in one command: generate, decode and verify QR codes in chat, embed them in artifacts, and script them in Claude Code.
- QR codes from an AI agent: the UseQR MCP server, UseQR runs a keyless MCP server over Streamable HTTP at /api/mcp. One command adds it to Claude; a few lines of JSON add it to Cursor or Copilot. Agents…
- QR codes in CI and automated testing, How to test QR codes in a pipeline: decode assertions, snapshot the matrix rather than the PNG, verify endpoints as gates, and E2E download-and-decode round trips.
- A free QR code API with no key, UseQR's REST API needs no signup, no API key and no SDK. GET /api/v1/qr?data=hello returns a PNG. The shortest form is /q/hello.png, which drops straight…