# Make QR codes from Claude

> Connect Claude or any MCP client to the free IoTReady QR tool. One address needs no sign-in and stores nothing. The other manages the codes in your account.

- **Page** - https://iotready.com/docs/platform/qr-mcp
- **Book** - [Platform](https://iotready.com/docs/platform.md)

The [free QR tool](https://iotready.com/qr.md) has two MCP servers. Ask Claude for a Wi-Fi code for the
office, a voucher that works once, or a poster code that should stop on Friday,
and it makes them.

## No account: `/mcp`

```
https://iotready.com/mcp
```

Nothing to sign in to and nothing stored. Claude can draw a plain code of any
kind we support, and make codes that expire or work once. Those two are signed:
the dates are inside the code, and a scan shows where it leads and asks for a
click. We keep no copy, so save the SVG when Claude hands it to you.

| Tool                 | What it does                                             |
| -------------------- | -------------------------------------------------------- |
| `list_qr_types`      | The nine kinds of code and the fields each takes         |
| `build_payload`      | The exact text a phone reads for a type and its fields   |
| `create_qr`          | Draws a plain code as SVG                                |
| `create_expiring_qr` | A web address that works between two dates               |
| `create_one_time_qr` | A web address the first person through spends            |
| `verify_code`        | Checks a signed link is ours and still inside its window |

It's rate limited per address, so a script that hammers it gets told to wait.

## Your account: `/mcp/account`

```
https://iotready.com/mcp/account
```

This one signs you in with the same emailed code as the app, then asks once
whether to let the client in. It manages the codes in your account. You can
change where a printed code goes, move its dates, raise its scan limit, or read
how many times it was scanned.

| Tool                     | What it does                                                       |
| ------------------------ | ------------------------------------------------------------------ |
| `list_codes`, `get_code` | Your saved codes, with scan totals                                 |
| `create_code`            | Saves a fixed code, or an editable one with dates and a scan limit |
| `update_code`            | Changes any of it. Archiving turns an editable code off            |
| `delete_code`            | Deletes a code and its history for good                            |
| `get_scan_stats`         | Scans per day, by country and by device class                      |
| `get_usage`              | This month's counted scans against your limits                     |
| `render_code`            | Draws a saved code, with its colours and logo                      |
| `submit_engine_interest` | Sends an IoTReady Engine enquiry, only when you ask                |

## Connect Claude

1. In Claude, open **Settings > Connectors** and add a custom connector.
2. Paste one of the addresses above.
3. For `/mcp/account`, click **Connect**. Claude sends you to a sign-in page on
   iotready.com, then to a page that names the app and asks you to allow it.

## Connect Claude Code

```bash
claude mcp add --transport http iotready-qr https://iotready.com/mcp
claude mcp add --transport http iotready-qr-account https://iotready.com/mcp/account
```

Run `/mcp` and pick `iotready-qr-account` to sign in.

## Disconnecting

Your account page lists every connected app. Disconnect one and its access
stops at once. Tokens last an hour and refresh quietly while you use the app.
