Search lunch menus
search_lunch_menusThe lunch menus (Mittagsmenüs) served today - or another day of this week - with
every dish and its price, near a point or in a map area; with q, only the lunch dishes
matching it ("schnitzel", "suppe"). A word for a kind of dish ("pizza", "schnitzel")
finds the dishes of that kind whatever they are called, and each dish carries its
categories.
Tool call template
This tool declares no required parameters. Add optional parameters from the input schema as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {},
"name": "search_lunch_menus"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Words a dish must match, as people say them, German or English: "schnitzel", "vegan curry", "glutenfreie pizza". A diet, allergens or a cuisine among them are taken as filters; misspelt German words are put right when that finds something. | |
| day | No | "2026-10-20": another day of this lunch week, Monday to Sunday (at the weekend, the coming week's too). Today when left out; open_now only counts today. | |
| lat | No | The latitude of a point - the user's, or one they name - to measure distances from and sort nearest first; with `lon`. | |
| lon | No | The longitude of that point; with `lat`. | |
| bbox | No | Keep to a map area: "west,south,east,north" in degrees - a town, a district, the streets around a place. Everywhere when left out. | |
| diet | No | Only dishes of this diet: vegan, or vegetarian (vegan dishes included). | |
| lang | No | The language of dish names, descriptions and section titles: de, the menus' own, or en, as bissl translated them. | |
| sort | No | The order of the places. | |
| limit | No | Places to answer with: 1 to 30, 10 when left out. | |
| offset | No | Places to skip, for the next ones: 0 when left out. | |
| cuisine | No | Only at places of this cuisine, as OpenStreetMap names it: "italian", "vietnamese". | |
| free_of | No | Only dishes whose menu lists their allergens and none of these letters: "A" gluten, "G" milk, "AG" both. | |
| open_now | No | Only places open right now. | |
| max_price | No | Only dishes costing at most this much, in whole euros. | |
| min_price | No | Only dishes costing at least this much, in whole euros. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| day | Yes | The day the lunch menus are for. | |
| diet | No | The filters in effect, asked for or taken from the words. | |
| note | No | Why there is nothing, when there is a reason to say. | |
| places | Yes | Each with its whole lunch that day - the dishes matching `q`, when it was given. | |
| cuisine | No | ||
| free_of | No | ||
| category | No | The dish categories read from the words, as slugs listed in `/v1/openapi.json`: "pizza" is `[{"category": "pizza", "dish": null}]`. They are alternatives - a dish of any of them is found - and a word naming a dish ("margherita") names its category with that dish. Null when the words named none. | |
| searched | No | The words the dishes match, once a diet, allergens or a cuisine among them were taken as filters; null for none. | |
| corrected | No | The words put right when they found nothing as typed: "schnitzel" for "schnitzl". | |
| attribution | Yes | ||
| total_dishes | Yes | ||
| total_places | Yes | Places serving lunch and their dishes, of which `places` holds `limit` from `offset` on. |