Thmenu
Ce que fait ce MCP
Provides restaurant discovery, menus, carts, reservations, orders, loyalty, delivery checkout, waiter requests, and restaurant owner reporting and draft content tools.
Outils
Schéma d’entrée
{'type': 'object', 'required': ['agent_session_id', 'code'], 'properties': {'code': {'type': 'string', 'maxLength': 64, 'minLength': 1}, 'agent_session_id': {'type': 'string'}}}
Schéma d’entrée
{'type': 'object', 'required': ['agent_session_id', 'order_id'], 'properties': {'order_id': {'type': 'string'}, 'agent_session_id': {'type': 'string'}}}
Schéma d’entrée
{'type': 'object', 'required': ['confirmation_code'], 'properties': {'confirmation_code': {'type': 'string', 'maxLength': 12, 'minLength': 6}}}
Schéma d’entrée
{'type': 'object', 'required': ['agent_session_id', 'member_id'], 'properties': {'member_id': {'type': 'string'}, 'agent_session_id': {'type': 'string'}}}
Schéma d’entrée
{'type': 'object', 'required': ['restaurant', 'order_type', 'items'], 'properties': {'note': {'type': 'string', 'maxLength': 500, 'description': "Order-level note for the kitchen. Do not put the guest's name, phone or address here."}, 'items': {'type': 'array', 'items': {'type': 'object', 'required': ['product_id', 'quantity'], 'properties': {'note': {'type': 'string', 'maxLength': 200}, 'quantity': {'type': 'integer', 'maximum': 99, 'minimum': 1}, 'product_id': {'type': 'string'}}}, 'maxItems': 50, 'minItems': 1}, 'order_type': {'enum': ['takeaway', 'delivery'], 'type': 'string'}, 'restaurant': {'type': 'string', 'description': 'Restaurant slug (from search_restaurants / list_public_menus) or id.'}, 'scheduled_for': {'type': 'string', 'description': 'ISO date-time for a scheduled pickup/delivery (optional; the venue may refuse on the confirmation page).'}}}
Schéma d’entrée
{'type': 'object', 'required': ['product_id', 'description'], 'properties': {'product_id': {'type': 'string', 'description': 'Product id from menu_audit or get_restaurant_menu.'}, 'description': {'type': 'string', 'maxLength': 2000, 'description': 'Proposed description in the menu language. Plain text, no links, no claims you cannot verify.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'required': ['tagline', 'about', 'seo_title', 'seo_description'], 'properties': {'about': {'type': 'string', 'maxLength': 700}, 'tagline': {'type': 'string', 'maxLength': 80}, 'seo_title': {'type': 'string', 'maxLength': 60}, 'seo_description': {'type': 'string', 'maxLength': 160}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'required': ['entity', 'entity_id', 'locale'], 'properties': {'name': {'type': 'string', 'maxLength': 2000, 'description': 'Translated name (optional). Keep brand names as they are.'}, 'entity': {'enum': ['product', 'category'], 'type': 'string'}, 'locale': {'enum': ['tr', 'en', 'de', 'fr', 'es', 'it', 'nl', 'pt', 'ru', 'ar', 'zh', 'ja', 'ko', 'pl', 'sv', 'da', 'fi', 'no', 'cs', 'hu', 'ro', 'bg', 'el', 'hr', 'sk', 'sl', 'lt', 'lv', 'he', 'fa', 'sw'], 'type': 'string', 'description': 'Target menu language (two letters), different from the menu source language.'}, 'entity_id': {'type': 'string', 'description': 'Product or category id from get_restaurant_menu / menu_audit.'}, 'description': {'type': 'string', 'maxLength': 2000, 'description': 'Translated description (optional). Plain text, no links, same meaning as the source — never add ingredients or claims.'}}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'required': ['cart_id'], 'properties': {'cart_id': {'type': 'string', 'pattern': '^[a-f0-9]{32}$'}}}
Schéma d’entrée
{'type': 'object', 'properties': {'locale': {'type': 'string', 'default': 'en'}}}
Schéma d’entrée
{'type': 'object', 'required': ['agent_session_id', 'order_id'], 'properties': {'order_id': {'type': 'string'}, 'agent_session_id': {'type': 'string'}}}
Schéma d’entrée
{'type': 'object', 'properties': {}}
Schéma d’entrée
{'type': 'object', 'required': ['restaurant'], 'properties': {'days': {'type': 'integer', 'default': 2, 'maximum': 7, 'minimum': 1}, 'restaurant': {'type': 'string'}}}
Schéma d’entrée
{'type': 'object', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'description': 'Restaurant slug, e.g. lily-rose-bistro'}}}
Schéma d’entrée
{'type': 'object', 'required': ['restaurant_id'], 'properties': {'locale': {'type': 'string', 'default': 'en'}, 'restaurant_id': {'type': 'string'}}}
Schéma d’entrée
{'type': 'object', 'required': ['agent_session_id'], 'properties': {'email': {'type': 'string', 'description': 'Customer email (either email or phone required).'}, 'phone': {'type': 'string', 'description': 'Customer phone in E.164 format (either email or phone required).'}, 'display_name': {'type': 'string', 'description': 'Optional display name shown in the loyalty dashboard.'}, 'agent_session_id': {'type': 'string', 'description': 'Active session id from start_order_session.'}}}
Schéma d’entrée
{'type': 'object', 'properties': {'page': {'type': 'integer', 'default': 1, 'minimum': 1}, 'limit': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1}}}
Schéma d’entrée
{'type': 'object', 'properties': {}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'required': ['agent_session_id', 'items'], 'properties': {'note': {'type': 'string', 'description': 'Optional order-level note (max 500 chars).'}, 'items': {'type': 'array', 'items': {'type': 'object', 'required': ['product_id', 'quantity'], 'properties': {'quantity': {'type': 'integer', 'maximum': 999, 'minimum': 1}, 'product_id': {'type': 'string'}}}, 'maxItems': 100, 'minItems': 1}, 'room_id': {'type': 'string', 'description': 'Diamond tier only — hotel room id.'}, 'table_id': {'type': 'string', 'description': 'Optional table id when ordering at a table.'}, 'guest_name': {'type': 'string', 'description': 'Required when room_id is set.'}, 'order_type': {'enum': ['dine_in', 'takeaway'], 'type': 'string', 'description': "Channel: 'dine_in' (default — table or room) or 'takeaway' (pickup; requires customer_name + customer_phone, ignores table_id/room_id, only when the restaurant has takeaway enabled — else channel_not_available). Delivery is not offered to agents."}, 'promo_code': {'type': 'string', 'maxLength': 64, 'description': 'Optional promo code to redeem at order time (validate first with apply_promo). The redemption slot is consumed only when this order lands.'}, 'customer_name': {'type': 'string', 'maxLength': 80, 'description': 'Required for takeaway — who picks the order up.'}, 'customer_phone': {'type': 'string', 'maxLength': 24, 'description': 'Required for takeaway — reachable phone (digits, +, spaces/dashes tolerated).'}, 'agent_session_id': {'type': 'string'}}}
Schéma d’entrée
{'type': 'object', 'required': ['agent_session_id', 'table_id'], 'properties': {'note': {'type': 'string', 'maxLength': 500}, 'table_id': {'type': 'string'}, 'split_type': {'enum': ['full', 'personal'], 'type': 'string', 'default': 'full'}, 'agent_session_id': {'type': 'string'}}}
Schéma d’entrée
{'type': 'object', 'required': ['restaurant', 'reserved_at', 'party_size'], 'properties': {'note': {'type': 'string', 'maxLength': 300, 'description': "Occasion, seating preference, accessibility needs. Do not put the guest's name, phone or email here."}, 'party_size': {'type': 'integer', 'maximum': 50, 'minimum': 1}, 'restaurant': {'type': 'string'}, 'reserved_at': {'type': 'string', 'description': 'ISO date-time; at least 30 minutes ahead, at most 90 days.'}}}
Schéma d’entrée
{'type': 'object', 'properties': {}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'properties': {}, 'additionalProperties': False}
Schéma d’entrée
{'type': 'object', 'required': ['slug', 'query'], 'properties': {'slug': {'type': 'string', 'description': 'Restaurant slug.'}, 'limit': {'type': 'integer', 'default': 10, 'maximum': 20, 'minimum': 1}, 'query': {'type': 'string', 'description': 'Free-text search across name + description.'}, 'locale': {'type': 'string', 'default': 'en'}}}
Schéma d’entrée
{'type': 'object', 'properties': {'q': {'type': 'string', 'description': 'Free text over name and description (min 2 chars).'}, 'city': {'type': 'string'}, 'near': {'type': 'object', 'required': ['lat', 'lng'], 'properties': {'lat': {'type': 'number'}, 'lng': {'type': 'number'}}, 'description': 'Search centre. Venues without coordinates are excluded when set.'}, 'page': {'type': 'integer', 'default': 1, 'minimum': 1}, 'limit': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1}, 'channel': {'enum': ['order', 'reservation', 'pickup', 'delivery'], 'type': 'string', 'description': "order = digital ordering at the table; reservation; pickup = takeaway; delivery = venue's own delivery."}, 'country': {'type': 'string', 'description': 'ISO 3166-1 alpha-2'}, 'cuisine': {'type': 'array', 'items': {'enum': ['turkish', 'kebab', 'ottoman', 'anatolian', 'aegean', 'black_sea', 'mediterranean', 'middle_eastern', 'lebanese', 'persian', 'georgian', 'greek', 'balkan', 'romanian', 'polish', 'eastern_european', 'russian', 'italian', 'pizza', 'pasta', 'french', 'spanish', 'tapas', 'portuguese', 'german', 'austrian', 'british', 'irish', 'scandinavian', 'dutch', 'american', 'burger', 'steakhouse', 'bbq', 'tex_mex', 'mexican', 'latin_american', 'brazilian', 'peruvian', 'caribbean', 'japanese', 'sushi', 'ramen', 'chinese', 'korean', 'thai', 'vietnamese', 'indian', 'pakistani', 'indonesian', 'malaysian', 'filipino', 'african', 'ethiopian', 'moroccan', 'seafood', 'grill', 'vegetarian', 'vegan', 'healthy', 'cafe', 'coffee', 'tea_house', 'bakery', 'patisserie', 'dessert', 'ice_cream', 'breakfast_brunch', 'fast_food', 'street_food', 'fusion', 'international', 'fine_dining', 'bistro', 'pub', 'bar', 'wine_bar', 'cocktail_bar', 'juice_bar', 'hotel_restaurant', 'food_court'], 'type': 'string'}, 'description': 'All listed cuisines must be declared by the venue.'}, 'dietary': {'type': 'array', 'items': {'enum': ['vegetarian_options', 'vegan_options', 'gluten_free_options', 'lactose_free_options', 'halal', 'kosher'], 'type': 'string'}, 'description': 'Owner declaration, not a certification.'}, 'open_now': {'type': 'boolean', 'default': False, 'description': 'Only venues open right now in their own timezone; venues with unknown hours are excluded when true.'}, 'radius_km': {'type': 'number', 'default': 10, 'maximum': 100, 'minimum': 0.5}, 'attributes': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Any declared attribute token (meals, family, outdoor, accessibility, cuisine, dietary).'}}}
Schéma d’entrée
{'type': 'object', 'required': ['restaurant_id'], 'properties': {'restaurant_id': {'type': 'string', 'description': 'Canonical restaurant id from get_restaurant or search_products.'}}}
Schéma d’entrée
{'type': 'object', 'required': ['agent_session_id', 'table_id'], 'properties': {'message': {'type': 'string', 'maxLength': 500}, 'table_id': {'type': 'string'}, 'agent_session_id': {'type': 'string'}}}
Modifications récentes des outils
Serveurs MCP similaires
AgentLot Marketplace
Enables agents and users to discover, bid on, purchase, deliver, and settle paid digital services and compute work.
Gover MCP
Searches and manages corporate travel requests, flights, hotels, rental vehicles, passengers, carts, approvals, reservations, and…
Obriym CRM
Manages CRM records, sales pipelines, activities, orders, products, inventory, and marketplace catalog operations.
zobrx
Provides read-only ecommerce operations and analytics for orders, inventory, marketplace performance, advertising, settlements, t…
SupplySlate
Supports component sourcing, fabrication requests, supplier RFQs, catalog imports, quotes, purchase planning, checkout handoffs, …
velora
Provides Argentine commerce operations including catalog and inventory, customer and supplier management, cash register tracking,…
Shopify
Provides read access to Shopify Admin data for store operations through the Shopify REST API.
Woocommerce
Provides access to WooCommerce store data through the WooCommerce REST API.