Skip to content
Thmenu logo

Thmenu MCP server

Which MCP servers are Thmenu's own, from the official registry and from asking its own domain, whether they answer, and what they offer. A program checked each of these, nobody copied them from a product page.

read 2026-10-25

← Back to Thmenu

Whose server it is
  • Registry namecom.thmenu/thmenuverified in the MCP registry

The registry name sits under thmenu.com. The registry only lets a publisher use that namespace after proving control of the domain through DNS or HTTP.

When we asked itchecked 2026-10-25
  • Stateanswerschecked 2026-10-25
  • Tools27
  • Server calls itselfThmenu
  • Server version0.5.0
  • Protocol version2025-03-26

On 2026-10-25 the server answered initialize and tools/list without a sign-in. First answer in 95 ms.

Should an agent connect itNot proven either way yet
  • Whether its tools do the product's job has not been judged yet.
  • Checked on 3 of the 7 days it takes to judge reliability.

Once connected

  • cancel_order, create_cart, cancel_reservation change data without a sign-in: anyone with the address can call them.
  • Parameters are untyped or undescribed in 19 of 27 tools: check arguments before calling.

Said by rules from the measurements above. The likely first call is a model's pick from the tool list; read its description before relying on it.

Measured dailydaily checks: 3, the first on 2026-10-25
  • INITE MCP scoreafter a weeka score needs 7 daily checks: 3 so far
  • Answeredmeasuring3 of the 7 daily checks it takes to print a share
  • Median first answer106 ms
  • Space in an agent's context≈ 5,691 tokensthe definitions of all its tools (27), which an agent carries on every turn
  • Tool definitionsB · 88 of 100
  • Typed results0 of 27 toolsdeclared outputSchema: results come typed, read once
  • Parameters without a description: in 19 of 27

What an agent can do with it

  • not sure · Take table orders that appear live in the staff dashboard
  • not sure · Track dish views, orders and daily revenue, and draft dish descriptions

Each of the product's use cases, put to Jev against this server's tool list: can an agent do it with these tools?

Worth a look

  • Tools that change data, on a server that answers without a sign-in: cancel_order, create_cart, cancel_reservation

A program checks the server once a day: initialize and tools/list, no model. Tokens are the definitions' length at about four characters a token. The grade averages six checks of every tool's name, description, schema and annotations; it says how well the tools are described, not whether they work. The score weighs what was measured and nothing else: answering (25%), doing the product's job (25%), definitions (20%), context (10%), use (10%) and how readily a client connects (10%). A part that was not measured is left out, and a hidden instruction caps the score at 40. The state of vendors' MCP servers: method and numbers →

Tools it offers27 tools · read 2026-10-25
  • get_pricing

    Return Thmenu's commercial model as structured facts: free forever, every feature included, no subscription and no trial; the only charge is a platform fee in basis points on payment volume processed through Thmenu (the payment…

  • get_faq

    Return the FAQ entries from the public /faq page in the requested locale (31 locales; unknown locale falls back to en and the response says which locale was served). Useful for grounding answers to common product questions.

  • get_restaurant

    Fetch a public restaurant profile by slug: name, description, address/city/country, currency, timezone, phone, menu URL, opening hours (7 days, minutes from midnight; a close_minute above 1440 ends after midnight on the next day, e.g…

  • search_products

    Search products inside a single restaurant by keyword. Returns up to 20 matching products with name, description, price, allergen tags, and the deep-link URL. Restaurant must be in the public directory.

  • list_public_menus

    List restaurants that have opted into the public directory (directory_opt_in = 1 — the same flag the owner sets under "AI visibility"). Returns slug, name, city, country, and the menu URL. Paginated.

  • search_restaurants

    Search the public directory (opt-in venues only) by location, opening status, cuisine, dietary options, declared attributes, ordering channel, declared price level and menu language — and, right now, a free table or an open waitlist (the…

  • start_order_session

    Open a 30-minute transactional window for an AI agent against a specific restaurant. Returns an agent_session_id you MUST pass to every downstream order tool (place_order, cancel_order, request_bill, waiter_call, apply_promo). Also…

  • place_order

    Place an order against the agent_session_id from start_order_session. Atomically inserts the order + items, applies server-side canonical pricing + tax (do NOT trust the unit_price you compute — we re-read it from D1), decrements…

  • cancel_order

    Cancel an order placed via the same agent_session_id. Atomic — only succeeds while the order is still in "pending" or "confirmed" (the early KDS-accept state). Once the kitchen starts preparing, you must escalate to waiter_call…

  • get_order_status

    Poll the current status of an order. Returns status, prepared_items_count, total_items_count, eta_minutes (if available), and an optional customer-facing message. Safe to call every 30 seconds; do NOT poll faster.

  • request_bill

    Ask the venue to bring the bill for a table. INSERTs a bill_requests row + fires the admin push notification. The split_type defaults to "full"; pass "personal" for German-style per-device splits.

  • waiter_call

    Flag a waiter to the table. INSERTs a waiter_calls row + fires the admin push notification. Pass an optional human-readable message (max 500 chars) the staff sees in the dashboard.

  • get_restaurant_menu

    Fetch the full public menu for a restaurant — categories, products, prices, allergens, nutrition. Use this to build the cart you pass to place_order. PUBLIC tool, no auth required. `allergen_codes` are EU 1169/2011 Annex II keys (gluten…

  • check_loyalty

    Look up a loyalty member by member_id. Returns balance, tier, lifetime_points, and the most recent 10 transactions so the agent can ground its recommendation ("you have 320 points, enough for a free coffee").

  • apply_promo

    Validate a promo code (eligibility preview only — does NOT reserve a slot). Returns valid=true with discount info when the code is currently redeemable; pass the same code as place_order.promo_code to actually apply + redeem it (the slot…

  • join_loyalty

    Loyalty sign-up for a guest. The guest must confirm their own e-mail, so joining happens on the restaurant's menu (My thmenu → Loyalty); this tool answers with that instruction and never reveals whether an e-mail or phone is already…

  • create_cart

    Build an anonymous takeaway or delivery cart for a listed restaurant and get a one-time confirmation link for the guest. PUBLIC tool, no auth. Table orders are not supported here (they stay on the QR menu). Send the guest to confirm_url…

  • get_cart

    Read an anonymous cart by cart_id: state (open · consumed · expired), the one-time confirmation link while open, lines re-priced from the live menu, and the order id once the guest has confirmed. PUBLIC tool, no auth.

  • get_reservation_slots

    List bookable 30-minute reservation slots for the next 1–7 days (venue timezone) for a listed restaurant with a reservation module. busy_count is the number of existing requests at that slot and is informational. A reservation is a…

  • request_reservation

    Create an anonymous reservation REQUEST (date-time, party size, note) for a listed restaurant and get a one-time confirmation link. PUBLIC tool, no auth. Send the guest to confirm_url: they enter their name and email or phone there and…

  • cancel_reservation

    Cancel a reservation using the 6-character confirmation code the GUEST received by email/SMS (the code is the authorisation; ask the guest for it — this tool never issues or reveals codes). Thin wrapper over the venue's own cancellation…

  • menu_audit

    List the active products of your restaurant that lack a usable description, an image, or an allergen declaration. Read-only; nothing is changed.

  • sales_summary

    Order counts by status, order total sums, top products by quantity and busiest hours for the last 7 and 30 days of your restaurant. Read-only.

  • reservation_summary

    Reservation requests of your restaurant for the next 14 days grouped by day and status, with pending requests that still need an answer. Read-only; no guest contact details.

  • draft_product_description

    Propose a new description for one of your products. Nothing goes live: the text is saved as a DRAFT change set the owner reviews, previews and publishes (or discards) in the admin panel.

  • draft_site_text

    Propose the public website text of your restaurant — tagline, about paragraph, SEO title and SEO description — as a DRAFT change set. Only declared facts are allowed: no numbers, awards, links or markup; validation rejects anything else…

  • draft_translation

    Propose a translation (name and/or description) of one product or category into one menu language. Nothing goes live: it is saved as a DRAFT change set the owner reviews and publishes in the admin panel; manual translations override…

How to connect

Add the server to your MCP client config. Claude Desktop, Cursor and most other clients read this shape:

{
  "mcpServers": {
    "thmenu": {
      "type": "http",
      "url": "https://mcp.thmenu.com/"
    }
  }
}

Add it

Claude Code, in a terminal

claude mcp add --transport http thmenu https://mcp.thmenu.com/

Add to CursorAdd to VS Code

claude.ai, ChatGPT and other clients: add https://mcp.thmenu.com/ as a custom connector in the settings.

OpenAPI spec

5 paths, read 2026-10-25. Open the spec ↗

Each line is something a program found when it went looking: the registry entry, the server's own answer, a spec that parses. A missing line means we did not find it, not that it does not exist.