Server address
https://api.gustoqr.com/mcpAdd this address as a connector in your assistant and sign in to GustoQR when it asks. No key to paste. Tools that cannot sign in take an API key instead.
Connect
Claude
- Open Customize, then Connectors. Press Add and choose Add custom connector.
- Name it GustoQR, paste the address above and press Add. Claude finds the sign-in by itself.
- Press Connect, sign in to GustoQR and allow it.
On the GustoQR sign-in page, tick Read only to let an assistant look at your menus, orders and sales without being able to change anything.
ChatGPT
- Open Plugins, press Add and choose Add custom MCP server.
- Name it GustoQR and paste the address above. Authentication stays on OAuth; ChatGPT finds the rest by itself.
- Tick the box, press Create as a plugin, then sign in to GustoQR and allow it.
Claude Code
Terminal
claude mcp add --transport http gustoqr https://api.gustoqr.com/mcpThen run /mcp inside Claude Code and sign in.
Cursor
.cursor/mcp.json
{
"mcpServers": {
"gustoqr": {
"url": "https://api.gustoqr.com/mcp"
}
}
}VS Code
.vscode/mcp.json
{
"servers": {
"gustoqr": {
"type": "http",
"url": "https://api.gustoqr.com/mcp"
}
}
}With an API key
For scripts, agents and any tool without sign-in, send a key with each request. A read-only key gives it only the tools that read.
Your API keys
Terminal
claude mcp add --transport http gustoqr https://api.gustoqr.com/mcp \
--header "Authorization: Bearer sk-…"JSON config
{
"mcpServers": {
"gustoqr": {
"url": "https://api.gustoqr.com/mcp",
"headers": {
"Authorization": "Bearer sk-…"
}
}
}
}Things to ask
- Raise every cocktail by $1 and round to the nearest 50 cents.
- The sea bass is sold out until tomorrow.
- Add a Sunday brunch section, shown only on Sundays from 10:00 to 15:00, with these six dishes: …
- Write a short description for every item that has none.
- Add German and Spanish to the menu.
- What sold best in the last 30 days, and what should I take off?
- Give the menu a dark, elegant look.
- Draw photos for the four desserts that have none.
- On Sundays only: add a Bottles section to the Sunday menu.
- Undo that last change.
What happens when it changes something
- A change is saved as it is made. On a published menu your guests see it at once. A draft stays hidden until you publish it in the panel.
- Every change can be undone. The menu as it was before each change is kept, the last 50 of them, whether the assistant made it or you did in the panel. Say “undo that” and the assistant puts it back.
- It asks before it removes. The server tells the assistant to confirm with you before it deletes items or sections, changes many prices or publishes.
- Pictures cost AI credits. A drawn photo is 2 credits, an edit 1, from the same balance your panel shows. The assistant is told to say the cost and wait for your yes.
- It does not invent. Prices, allergens and calories come from you, never from the assistant’s guess.
- Translations follow. Write in your main language; the menu’s other languages are translated for you.
- Disconnect any time. Delete the key named “MCP key” in the box above and the assistant is cut off.
Tools
34 tools. Every tool but list_menus takes the menu_id it works on.
Read
list_menus | The menus in the owner’s GustoQR account: id, name, status (draft or published), currency and public address |
list_menu | Read the whole menu: every category and item with its id, name, price (or its price options, happy-hour rows and add-ons), description, whether its name is kept in every language (keep_name), diet tags, allergens, calories, portion, nutrition and its photo URL if it has one, in the menu's main language, and whether the menu shows photos |
get_settings | Read the venue: name, kind of place, tagline, currency, languages, contact details, booking link, opening hours, the story and Wi-Fi guests see under Info, menu note and announcement; its look (theme, layout, fonts, main colours, what shows, and the cover, logo and background picture URLs, which you also get to see); and whether the owner is on Pro |
list_themes | The 40 signature themes, each with three colour variants: what each looks like, what kind of place it suits and which are Pro |
Items and prices
add_items | Add new items to an existing category (category_id) or to a new category (new_category, its name, with new_category_when when the whole section is shown only at certain times) |
update_items | Change existing items: price or price options, happy hours and add-ons, name, description, keep_name, diet tags, allergens (with the alcohol and pork notices), calories, portion size, nutrition (protein, fat, carbs, caffeine) or when it is shown (when) |
adjust_prices | Raise or lower many prices at once: every price option and add-on of the items it covers changes together, and free items stay free |
remove_items | Remove items from the menu |
set_sold_out | Mark items sold out, or back on sale |
move_item | Move an item to another place in its category, or into another category |
Sections
update_category | Rename a category, change the line under its heading, keep its name as written in every language, all in the main language, show the whole section only at certain times (when), or leave the menu's price note off its prices |
remove_category | Remove a whole category with all its items |
move_category | Move a category to another place in the menu |
Languages
set_languages | Add or remove guest languages, or pick the one guests see first |
set_translation | Change the text of one item or category in one guest language only, when the owner talks about that language's text ("take 9am–3pm out of the English section title", "the German description should say…") |
Venue and look
update_venue | Change the venue details |
set_announcement | Pro only: a banner at the top of the menu for an event or an offer |
apply_theme | Switch the menu to a signature theme by its variant id from list_themes |
update_theme | Fine-tune the look: layout, item layout, fonts, colours, corners, shadows, texture, motion, header style and what shows (prices, descriptions, photos, dark mode for guests with dark phones, allergen notice) |
Pictures
generate_item_photos | Draw a new AI photo for items that have none and put it on each item |
generate_venue_image | Draw a new AI picture for the cover at the top of the menu, the logo or the menu background, and put it in place |
edit_image | Change a picture that is already on the menu (the cover, the logo, the background or an item photo): zoom in or out, change the light, the time of day or the season, remove or add something, make it look more professional |
set_item_photo | Put a picture on an item from a link (a photo the owner gave you, or one you made), or take the item’s photo off |
set_venue_image | Use a picture from a link as the logo, the cover at the top of the menu or the menu background, or take that picture off |
Go live
create_menu | A new draft menu |
publish_menu | Makes a draft live at its own address |
Undo
list_versions | The menu as it was before each of its last 50 changes, newest first, whoever made them: source is panel (the owner or the panel’s assistant), api, mcp (a connected assistant) or restore |
restore_version | Undo: puts the menu’s content and look back as a version has them, taking back the change it was kept before and every change after it |
Orders and sales
sales_report | Read the venue's sales from GustoQR's orders (the POS and guests ordering on the menu) over the last days: revenue, orders, the average order, each item's units and revenue next to the period before, the items that did not sell, the busiest hours and weekdays, sales by category and the items often ordered together |
menu_analytics | Visits, QR scans, orders and revenue by day |
list_orders | Orders from the POS and from guests ordering on the menu |
update_order_status | Moves an order along: preparing, ready, served, paid or cancelled |
list_tables | The venue’s tables and whether each is free or occupied |
activity_log | What happened at the till: orders taken and paid, tables opened, moved and closed, staff changes |
For the technical
| Transport | Streamable HTTP, stateless. POST https://api.gustoqr.com/mcp |
| Sign-in | OAuth 2.1 with PKCE and dynamic client registration; metadata at /.well-known/oauth-authorization-server |
| Key | Authorization: Bearer sk-…, or a read-only gq_ro_… |
| Limits | 1200 messages and 300 changes a minute per key |
| REST | The same account over plain HTTP: API docs |