
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
- 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.
- 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.
- 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.
- 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 →
get_pricingReturn 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_faqReturn 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_restaurantFetch 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_productsSearch 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_menusList 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_restaurantsSearch 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_sessionOpen 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_orderPlace 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_orderCancel 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_statusPoll 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_billAsk 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_callFlag 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_menuFetch 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_loyaltyLook 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_promoValidate 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_loyaltyLoyalty 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_cartBuild 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_cartRead 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_slotsList 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_reservationCreate 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_reservationCancel 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_auditList the active products of your restaurant that lack a usable description, an image, or an allergen declaration. Read-only; nothing is changed.
sales_summaryOrder 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_summaryReservation 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_descriptionPropose 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_textPropose 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_translationPropose 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/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.
Cookies
Before we count this visit
Analytics and ad measurement tell us which pages and which of our ads do their job: Google Analytics and Google Ads, the Meta pixel, Yandex Metrica, and one first-party id of our own. Nothing is stored until you answer, and declining changes nothing about the site.