In Claude it is one address and a sign-in. In editors it is that address and a token in a config file. This walks through both, for each of the common clients, shows the prompts that work, and explains what the connection can and cannot do.
Create an account to connect one
Assistants ask for a connection in one of two shapes, and it is the assistant that decides which.
Sign in and approve. You paste the server address, the assistant sends you to us, you sign in as yourself and press Authorize. Nothing is copied and nothing is stored at your end. This is how Claude's own Connectors UI works, and it has no field for a token at all.
A token in a config file. Editors and command-line tools are configured from a file, so there is no browser step to hang a sign-in off. You make a named token in your dashboard and paste it in beside the address.
Both reach exactly the same server with exactly the same tools, and both can be withdrawn from your AI Assistants page at any time.
Open Settings → Connectors, choose Add custom connector, paste https://mcp.getdynamicqr.com and press Connect. Claude opens a page on our site: sign in if you are not already, check the account it names is the right one, and press Authorize. You are sent straight back and the connection is live.
There is nothing to copy and no token to keep. The authorization appears on your AI Assistants page under Authorized assistants, and withdrawing it there stops Claude immediately.
If Claude reports a problem starting authorization, it is worth pasting the address into a browser — it should answer with a short block of JSON naming the server. If it answers with our homepage instead, the address is missing a part.
Claude Code is configured from a file rather than a settings screen, so it takes the token route: an entry with "type": "http", the url, and an Authorization header carrying Bearer and your token. Your dashboard prints the whole block ready to copy, with a placeholder where the token goes.
It lists the available tools once it connects. If it shows none, the token is usually the cause — a revoked one and a mistyped one look identical from the client side.
ChatGPT supports MCP servers as connectors. Add a new one and give it the server address. If it offers to authenticate you it will send you here to sign in and approve, exactly as Claude does; if it asks for a credential instead, supply a token as a bearer value.
The tools it gets are exactly the ones Claude gets — the server does not know or care which assistant is on the other end, beyond recording the name so your dashboard can tell you what is connected.
These all read a JSON config file listing MCP servers. The block is the same shape in each: a name for the server, "type": "http", the URL, and an Authorization header carrying Bearer and your token.
Your dashboard shows this block filled in for your own install, so it is a copy and one substitution rather than something to assemble by hand. After saving the config, restart the editor — most of them read MCP servers at startup only.
The useful requests are the ones that are awkward in a dashboard. Be specific — naming a folder, a client, a date or a short link is all it needs, and it saves a round of questions.
Every type the dashboard offers can be made in a sentence: URL, WhatsApp, WiFi, email, SMS, phone, vCard, text, PDF, video, social, app, coupon, menu, barcode and gift giveaway.
Anything the create form can set, a sentence can set: an expiry date and where to send people afterwards, a password scanners have to type, a folder, a client, a custom short link, campaign tags, scan alerts, a webhook, tracking pixels, geofencing, multi-URL routing, an A/B split, and the colours and frame.
Describe the look rather than the hex codes. It works from the QR Studio vocabulary — module shapes, eye shapes, colours, gradients and frames — starting from one of eighteen ready-made looks and adjusting, and the code comes back drawn in the conversation so you can look at it and ask again.
Every ready-made look is checked for contrast, quiet zone and light-on-dark before it ships, so what comes back still scans, and you are told when something you asked for would make scanning worse rather than having it quietly refused. Restyling never moves where a code points — the destination, the short link and the scan history are untouched, and printed copies carry on working. Logos are added here in the studio: an assistant has no file to upload, and a code that already has one keeps it and appears in the picture.
Moving a code changes nothing a scanner sees — the destination, the short URL and the scan history all stay exactly as they were. Renaming and deleting folders stay in the dashboard, because deleting one unfiles every code in it.
Your assistant shows you each action before it takes it. Re-pointing takes effect for every printed copy within seconds, and nothing on this connection can delete a code — that stays in the dashboard, where there is a 30-day trash.
Two things make the difference between one exchange and three.
Name the values, not the intent. "Make a WiFi code" will have it asking which network and which security type; "make a WiFi code for Guests, WPA, password letmein" is done in one. Same for dates — "expire it on 31 December" beats "make it temporary".
Folders and clients are matched by name. If you say "put it in the Events folder" and nothing is called Events, it is told so rather than filing the code loose at the top level — a code quietly filed nowhere in particular is the kind of wrong nobody notices until they go looking. For a folder it can simply make one and carry on; clients are created in the dashboard, so there it will ask.
If your assistant mistypes a field it gets an error naming the right one, rather than quietly creating a code without it. And if you ask for something your plan does not include — a password on Freemium, say — the code is still created and the reply says exactly what was not applied, so nothing is lost silently.
Four things account for nearly every failure. The address — paste it into a browser; it should answer with a short block of JSON naming the server rather than a web page. The token, if you are using one — it is shown once and never again, so a half-copied one is common; make a new one rather than hunting for the old one. The plan — the connection refuses with a readable message on plans that do not include AI assistant access, and your assistant will show you that message. The header — it has to be Authorization: Bearer <token>, with the word Bearer and a space in front.
Your AI Assistants page lists everything that has ever connected, with the time it was last active. If nothing appears there, the handshake never reached us, which points at the URL or the header rather than at anything on this side.
Two things, and one of them takes a click.
AI assistant access rides those two tiers. Everything else here works the same whichever assistant you use.
This install serves MCP at <code>https://mcp.getdynamicqr.com</code>. In Claude that address is the entire setup — it sends you here to sign in and approve the connection.
Tools configured from a file need one instead of a sign-in. Made in the dashboard under AI Assistants, and shown once, because only a one-way hash of it is stored.
Claude, ChatGPT, Cursor, Windsurf, Zed, Cline — anything that supports custom MCP servers.
Every QR type and every option on the create form is reachable in a sentence once you are connected — expiry, password, folders, clients, short links and campaign tags included — plus designing the code and filing it away.
Clients this has been set up against.
Five steps, once.
Sign in and open AI Assistants from the dashboard sidebar to find the server address.
In your assistant, add a custom MCP server and paste that address.
If it sends you to us, sign in and press Authorize — that is the whole setup.
If it asks for a credential instead, create a token on that same page and paste it in as a bearer header.
Ask it "which of my QR codes were scanned this week?" to confirm it works.
Straight answers to what usually decides whether this is the right tool for the job.