Developers · ChatGPT · Claude · Cursor

MCP server

Connect the assistant you already use to your menu. Say what should change; it changes. Free on every plan. Only the pictures it draws for you use AI credits.

Server address
https://api.gustoqr.com/mcp

Add 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

  1. Open Customize, then Connectors. Press Add and choose Add custom connector.
  2. Name it GustoQR, paste the address above and press Add. Claude finds the sign-in by itself.
  3. 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

  1. Open Plugins, press Add and choose Add custom MCP server.
  2. Name it GustoQR and paste the address above. Authentication stays on OAuth; ChatGPT finds the rest by itself.
  3. 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/mcp

Then 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_menusThe menus in the owner’s GustoQR account: id, name, status (draft or published), currency and public address
list_menuRead 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_settingsRead 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_themesThe 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_itemsAdd 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_itemsChange 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_pricesRaise 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_itemsRemove items from the menu
set_sold_outMark items sold out, or back on sale
move_itemMove an item to another place in its category, or into another category

Sections

update_categoryRename 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_categoryRemove a whole category with all its items
move_categoryMove a category to another place in the menu

Languages

set_languagesAdd or remove guest languages, or pick the one guests see first
set_translationChange 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_venueChange the venue details
set_announcementPro only: a banner at the top of the menu for an event or an offer
apply_themeSwitch the menu to a signature theme by its variant id from list_themes
update_themeFine-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_photosDraw a new AI photo for items that have none and put it on each item
generate_venue_imageDraw 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_imageChange 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_photoPut 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_imageUse 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_menuA new draft menu
publish_menuMakes a draft live at its own address

Undo

list_versionsThe 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_versionUndo: 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_reportRead 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_analyticsVisits, QR scans, orders and revenue by day
list_ordersOrders from the POS and from guests ordering on the menu
update_order_statusMoves an order along: preparing, ready, served, paid or cancelled
list_tablesThe venue’s tables and whether each is free or occupied
activity_logWhat happened at the till: orders taken and paid, tables opened, moved and closed, staff changes

For the technical

TransportStreamable HTTP, stateless. POST https://api.gustoqr.com/mcp
Sign-inOAuth 2.1 with PKCE and dynamic client registration; metadata at /.well-known/oauth-authorization-server
KeyAuthorization: Bearer sk-…, or a read-only gq_ro_…
Limits1200 messages and 300 changes a minute per key
RESTThe same account over plain HTTP: API docs