DEV Community

Cover image for How to create QR codes from Claude and ChatGPT with MCP
Mongi Gazelle
Mongi Gazelle

Posted on

How to create QR codes from Claude and ChatGPT with MCP

QR codes are a good fit for an AI assistant: the task is small, the input is a URL, and the output is an image. This tutorial connects Claude (or ChatGPT) to qrlia, a QR code platform with a remote MCP server, and walks through creating, updating and tracking a code.

Disclosure: I built qrlia.

What you need

No API key is needed. The server uses OAuth 2.1: you sign in in the browser and approve access.

The server

  • URL: https://mcp.qrlia.com/mcp
  • Transport: Streamable HTTP
  • Auth: OAuth 2.1 (scopes qrlia.read, qrlia.write, and an opt-in qrlia.admin for workspace admins)

Option 1: Claude (web, desktop, mobile)

qrlia is in the Claude connector directory: https://claude.ai/directory/connectors/qrlia

  1. Open the link above, or Settings → Connectors and search "qrlia".
  2. Click Connect.
  3. Choose your workspace, sign in, approve the scopes.

Option 2: ChatGPT

In ChatGPT, open Settings → Apps, turn on developer mode under Advanced, and create an app with the URL https://mcp.qrlia.com/mcp. ChatGPT opens the qrlia sign-in; approve access. Your ChatGPT plan needs to support custom apps.

Option 3: Claude Code

claude mcp add --transport http qrlia https://mcp.qrlia.com/mcp
Enter fullscreen mode Exit fullscreen mode

Then, inside Claude Code:

/mcp
Enter fullscreen mode Exit fullscreen mode

Select qrlia and sign in in the browser window that opens. Add --scope user to the add command if you want it in every project.

Option 4: Cursor and other MCP clients

Add the server to your client's MCP config. For Cursor (~/.cursor/mcp.json):

{
  "mcpServers": {
    "qrlia": {
      "url": "https://mcp.qrlia.com/mcp"
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

Cursor will prompt you to sign in. Configs for other clients are in https://github.com/mgazelle/qrlia-mcp.

Step 1: Create a code

Create a QR code for https://example.com called Spring flyer and show
me the image.
Enter fullscreen mode Exit fullscreen mode

Claude calls a create tool, then fetches the image (PNG or SVG) and shows it. The code is dynamic: it encodes a short link, and the short link redirects to your URL.

Step 2: Change where it points

You printed 500 flyers and the page moved:

Change the Spring flyer code to point to https://example.com/summer.
Enter fullscreen mode Exit fullscreen mode

The printed code stays the same. Only the redirect changes.

Step 3: Check scans

Show scan analytics for the last 30 days: which codes were scanned
most, and from which countries?
Enter fullscreen mode Exit fullscreen mode

On the free plan you get scan totals. Pro adds breakdowns by day, country, city, device, OS and referrer.

Step 4: Use your brand

On a paid plan you can describe your brand and let the assistant save it as a design:

Save a design called Brand: dark red #7C220D modules, blue #00AEEF
corner markers, rounded dots, our logo from
https://example.com/logo.png in the centre, and a banner frame that
says "Scan to save my contact". Then apply it to the Spring flyer code.
Enter fullscreen mode Exit fullscreen mode

Every code that uses the design follows it, and editing the design updates them all. Without your own logo, codes show the qrlia mark; you can also ask for no logo at all.

Other things to try

  • "Create a Wi-Fi QR code for network CafeGuest." (static: no short link, no scan stats)
  • "Make a vCard QR code for Jane Doe, sales, jane@example.com."
  • "Create QR codes for these 20 URLs and put them in a folder called Spring." (bulk create handles up to 200 per call; folders are Pro)
  • "Render the Spring flyer code as SVG using my saved design."

Safety notes

  • Each tool is marked read-only or destructive. Claude asks before running a destructive one, like deleting a code.
  • Admin tools (members, domains, webhooks, API key revoke) only appear if a workspace admin opts in to the admin scope.
  • Revoke access any time under Settings → Connected apps in qrlia. A password change also revokes it.

Prefer HTTP?

The same operations are in a REST API with OpenAPI docs at https://docs.qrlia.com (Pro plan). MCP and REST share one service layer, so they behave the same.

Wrap-up

That's the whole setup: one URL, one sign-in. If you try it, tell me which prompts work badly; that's what I'm tuning next.

Top comments (0)