Restaurant menu
get_restaurant_menuFetch the full public menu for a restaurant — categories, products, prices, option groups, allergens, nutrition. Use this to build the cart you pass to place_order. PUBLIC tool, no auth required. Each product carries option_groups (id, name, required, min_select, max_select, options[{id, name, price_delta}]); pass the chosen option ids as items[].modifier_option_ids to place_order or to create_cart (the anonymous cart the guest confirms) — a required group must be filled or the order or cart is refused. allergen_codes are EU 1169/2011 Annex II keys (gluten, crustaceans, eggs, fish, peanuts, soy, milk, nuts, celery, mustard, sesame, sulphites, lupin, molluscs) given ONLY when the venue's allergen name matches the regulation list exactly; a venue-specific allergen appears in allergens without a code. Allergen lists come from the venue (or were AI-suggested and then saved by the venue where allergen_disclosure.source says so). allergen_disclosure.as_of is when the venue last edited the item record, not a verification date. Follow the top-level disclosure.agent_instructions; show disclosure.text to the guest in their language whenever an allergen or dietary question comes up; dietary_flags only ever warn (true) — null is unknown, never "free of".
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"restaurant_id": "<restaurant_id>"
},
"name": "get_restaurant_menu"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| locale | No | en | |
| restaurant_id | Yes |