Dishes, prices, diets, allergens and this week's lunch menus of places to eat in Austria.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
A place by its slug: address, phone, website, opening hours and its whole menu - food, drinks and this week's lunch - with every price.
The place's `slug`, from a search's or a list's answer.
The language of dish names, descriptions and section titles: de, the menus' own, or en, as bissl translated them.
A place by its slug: address, phone, website, opening hours and its whole menu - food, drinks and this week's lunch - with every price.
| Argument | Type | Description |
|---|---|---|
| lang | any | The language of dish names, descriptions and section titles: de, the menus' own, or en, as bissl translated them. |
| slug* | string | The place's `slug`, from a search's or a list's answer. |
{
"type": "object",
"$defs": {
"ApiLang": {
"enum": [
"de",
"en"
],
"type": "string",
"description": "The language dish names, descriptions and section titles come in: the menus' own\nGerman, or English as bissl translated them."
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"slug"
],
"properties": {
"lang": {
"anyOf": [
{
"$ref": "#/$defs/ApiLang"
},
{
"type": "null"
}
],
"description": "The language of dish names, descriptions and section titles: de, the menus' own, or\nen, as bissl translated them."
},
"slug": {
"type": "string",
"description": "The place's `slug`, from a search's or a list's answer."
}
},
"additionalProperties": false
}Find a dish or drink on the menus of places in Austria: which places serve it, at what price, with diet and allergens. Give the dish in plain words ("schnitzel", "vegan curry", "glutenfreie pizza"), and where: a point (lat, lon) to search near, a map area (bbox), or neither for everywhere.
| Argument | Type | Description |
|---|---|---|
| q | string | null | 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. |
| lat | number | null | The latitude of a point - the user's, or one they name - to measure distances from and sort nearest first; with `lon`. |
| lon | number | null | The longitude of that point; with `lat`. |
| bbox | string | null | 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 | any | Only dishes of this diet: vegan, or vegetarian (vegan dishes included). |
| lang | any | The language of dish names, descriptions and section titles: de, the menus' own, or en, as bissl translated them. |
| sort | any |
The 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").
| Argument | Type | Description |
|---|---|---|
| q | string | null | 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 | string | null | "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 | number | null | The latitude of a point - the user's, or one they name - to measure distances from and sort nearest first; with `lon`. |
| lon | number | null | The longitude of that point; with `lat`. |
| bbox | string | null | 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 | any | Only dishes of this diet: vegan, or vegetarian (vegan dishes included). |
| lang | any | The language of dish names, descriptions and section titles: de, the menus' own, or en, as bissl translated them. |
Places to eat and drink: by name, kind, cuisine, map area or nearness, open now, with a menu, serving lunch today.
| Argument | Type | Description |
|---|---|---|
| q | string | null | Words to search for among the places: part of a name - "figlm" finds Figlmüller. |
| lat | number | null | The latitude of a point - the user's, or one they name - to measure distances from and sort nearest first; with `lon`. |
| lon | number | null | The longitude of that point; with `lat`. |
| bbox | string | null | Keep to a map area: "west,south,east,north" in degrees - a town, a district, the streets around a place. Everywhere when left out. |
| kind | string | null | Its kind as OpenStreetMap tags it: restaurant, fast_food, cafe, bar, pub, biergarten, ice_cream, food_court, bakery or pastry. |
| lang | any | The language of dish names, descriptions and section titles: de, the menus' own, or en, as bissl translated them. |
| sort | any | The order of the places. |
| limit | integer | null | Places to answer with: 1 to 30, 10 when left out. |
| The order of the places. |
| limit | integer | null | Places to answer with: 1 to 30, 10 when left out. |
| offset | integer | null | Places to skip, for the next ones: 0 when left out. |
| cuisine | string | null | Only at places of this cuisine, as OpenStreetMap names it: "italian", "vietnamese". |
| free_of | string | null | Only dishes whose menu lists their allergens and none of these letters: "A" gluten, "G" milk, "AG" both. |
| open_now | boolean | null | Only places open right now. |
| dish_kind | any | Food or drinks only. |
| max_price | integer | null | Only dishes costing at most this much, in whole euros. |
| min_price | integer | null | Only dishes costing at least this much, in whole euros. |
{
"type": "object",
"$defs": {
"ApiDiet": {
"oneOf": [
{
"enum": [
"vegan"
],
"type": "string"
},
{
"type": "string",
"const": "vegetarian",
"description": "Vegetarian, vegan dishes included."
}
],
"description": "A diet as a menu marks a dish, or the dish's name says it."
},
"ApiLang": {
"enum": [
"de",
"en"
],
"type": "string",
"description": "The language dish names, descriptions and section titles come in: the menus' own\nGerman, or English as bissl translated them."
},
"DishKind": {
"enum": [
"food",
"drinks"
],
"type": "string"
},
"DishSort": {
"oneOf": [
{
"type": "string",
"const": "recommended",
"description": "The best matches at the most useful places: with prices, open now, near the middle."
},
{
"type": "string",
"const": "match",
"description": "Best match first, then cheapest."
},
{
"type": "string",
"const": "price",
"description": "Cheapest first."
},
{
"type": "string",
"const": "distance",
"description": "Best match first, then nearest to `lat`, `lon` - the order whenever they are given,\nunless `price`."
}
]
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"q": {
"type": [
"string",
"null"
],
"description": "Words a dish must match, as people say them, German or English: \"schnitzel\", \"vegan\ncurry\", \"glutenfreie pizza\". A diet, allergens or a cuisine among them are taken as\nfilters; misspelt German words are put right when that finds something."
},
"lat": {
"type": [
"number",
"null"
],
"format": "double",
"description": "The latitude of a point - the user's, or one they name - to measure distances from\nand sort nearest first; with `lon`."
},
"lon": {
"type": [
"number",
"null"
],
"format": "double",
"description": "The longitude of that point; with `lat`."
},
"bbox": {
"type": [
"string",
"null"
],
"description": "Keep to a map area: \"west,south,east,north\" in degrees - a town, a district, the\nstreets around a place. Everywhere when left out."
},
"diet": {
"anyOf": [
{
"$ref": "#/$defs/ApiDiet"
},
{
"type": "null"
}
],
"description": "Only dishes of this diet: vegan, or vegetarian (vegan dishes included)."
},
"lang": {
"anyOf": [
{
"$ref": "#/$defs/ApiLang"
},
{
"type": "null"
}
],
"description": "The language of dish names, descriptions and section titles: de, the menus' own, or\nen, as bissl translated them."
},
"sort": {
"anyOf": [
{
"$ref": "#/$defs/DishSort"
},
{
"type": "null"
}
],
"description": "The order of the places."
},
"limit": {
"type": [
"integer",
"null"
],
"format": "int64",
"description": "Places to answer with: 1 to 30, 10 when left out."
},
"offset": {
"type": [
"integer",
"null"
],
"format": "int64",
"description": "Places to skip, for the next ones: 0 when left out."
},
"cuisine": {
"type": [
"string",
"null"
],
"description": "Only at places of this cuisine, as OpenStreetMap names it: \"italian\", \"vietnamese\"."
},
"free_of": {
"type": [
"string",
"null"
],
"description": "Only dishes whose menu lists their allergens and none of these letters: \"A\" gluten,\n\"G\" milk, \"AG\" both."
},
"open_now": {
"type": [
"boolean",
"null"
],
"description": "Only places open right now."
},
"dish_kind": {
"anyOf": [
{
"$ref": "#/$defs/DishKind"
},
{
"type": "null"
}
],
"description": "Food or drinks only."
},
"max_price": {
"type": [
"integer",
"null"
],
"format": "int64",
"description": "Only dishes costing at most this much, in whole euros."
},
"min_price": {
"type": [
"integer",
"null"
],
"format": "int64",
"description": "Only dishes costing at least this much, in whole euros."
}
},
"additionalProperties": false
}| sort | any | The order of the places. |
| limit | integer | null | Places to answer with: 1 to 30, 10 when left out. |
| offset | integer | null | Places to skip, for the next ones: 0 when left out. |
| cuisine | string | null | Only at places of this cuisine, as OpenStreetMap names it: "italian", "vietnamese". |
| free_of | string | null | Only dishes whose menu lists their allergens and none of these letters: "A" gluten, "G" milk, "AG" both. |
| open_now | boolean | null | Only places open right now. |
| max_price | integer | null | Only dishes costing at most this much, in whole euros. |
| min_price | integer | null | Only dishes costing at least this much, in whole euros. |
{
"type": "object",
"$defs": {
"ApiDiet": {
"oneOf": [
{
"enum": [
"vegan"
],
"type": "string"
},
{
"type": "string",
"const": "vegetarian",
"description": "Vegetarian, vegan dishes included."
}
],
"description": "A diet as a menu marks a dish, or the dish's name says it."
},
"ApiLang": {
"enum": [
"de",
"en"
],
"type": "string",
"description": "The language dish names, descriptions and section titles come in: the menus' own\nGerman, or English as bissl translated them."
},
"LunchSort": {
"oneOf": [
{
"enum": [
"name"
],
"type": "string"
},
{
"type": "string",
"const": "recommended",
"description": "The most useful lunches first: with prices, at places open for lunch."
},
{
"type": "string",
"const": "distance",
"description": "Nearest to `lat`, `lon` first - the order whenever they are given, unless another."
},
{
"type": "string",
"const": "price",
"description": "The cheapest dish first."
}
]
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"q": {
"type": [
"string",
"null"
],
"description": "Words a dish must match, as people say them, German or English: \"schnitzel\", \"vegan\ncurry\", \"glutenfreie pizza\". A diet, allergens or a cuisine among them are taken as\nfilters; misspelt German words are put right when that finds something."
},
"day": {
"type": [
"string",
"null"
],
"format": "date",
"description": "\"2026-10-20\": another day of this lunch week, Monday to Sunday (at the weekend, the\ncoming week's too). Today when left out; open_now only counts today."
},
"lat": {
"type": [
"number",
"null"
],
"format": "double",
"description": "The latitude of a point - the user's, or one they name - to measure distances from\nand sort nearest first; with `lon`."
},
"lon": {
"type": [
"number",
"null"
],
"format": "double",
"description": "The longitude of that point; with `lat`."
},
"bbox": {
"type": [
"string",
"null"
],
"description": "Keep to a map area: \"west,south,east,north\" in degrees - a town, a district, the\nstreets around a place. Everywhere when left out."
},
"diet": {
"anyOf": [
{
"$ref": "#/$defs/ApiDiet"
},
{
"type": "null"
}
],
"description": "Only dishes of this diet: vegan, or vegetarian (vegan dishes included)."
},
"lang": {
"anyOf": [
{
"$ref": "#/$defs/ApiLang"
},
{
"type": "null"
}
],
"description": "The language of dish names, descriptions and section titles: de, the menus' own, or\nen, as bissl translated them."
},
"sort": {
"anyOf": [
{
"$ref": "#/$defs/LunchSort"
},
{
"type": "null"
}
],
"description": "The order of the places."
},
"limit": {
"type": [
"integer",
"null"
],
"format": "int64",
"description": "Places to answer with: 1 to 30, 10 when left out."
},
"offset": {
"type": [
"integer",
"null"
],
"format": "int64",
"description": "Places to skip, for the next ones: 0 when left out."
},
"cuisine": {
"type": [
"string",
"null"
],
"description": "Only at places of this cuisine, as OpenStreetMap names it: \"italian\", \"vietnamese\"."
},
"free_of": {
"type": [
"string",
"null"
],
"description": "Only dishes whose menu lists their allergens and none of these letters: \"A\" gluten,\n\"G\" milk, \"AG\" both."
},
"open_now": {
"type": [
"boolean",
"null"
],
"description": "Only places open right now."
},
"max_price": {
"type": [
"integer",
"null"
],
"format": "int64",
"description": "Only dishes costing at most this much, in whole euros."
},
"min_price": {
"type": [
"integer",
"null"
],
"format": "int64",
"description": "Only dishes costing at least this much, in whole euros."
}
},
"additionalProperties": false
}| offset | integer | null | Places to skip, for the next ones: 0 when left out. |
| cuisine | string | null | Only at places of this cuisine, as OpenStreetMap names it: "italian", "vietnamese". |
| has_menu | boolean | null | Only places whose menu with prices bissl read. |
| open_now | boolean | null | Only places open right now. |
| lunch_today | boolean | null | Only places serving a lunch menu today. |
{
"type": "object",
"$defs": {
"ApiLang": {
"enum": [
"de",
"en"
],
"type": "string",
"description": "The language dish names, descriptions and section titles come in: the menus' own\nGerman, or English as bissl translated them."
},
"VenueSort": {
"oneOf": [
{
"enum": [
"name"
],
"type": "string"
},
{
"type": "string",
"const": "recommended",
"description": "The most useful places first: with a menu, prices, photos, open now."
},
{
"type": "string",
"const": "price",
"description": "The cheapest price level first."
},
{
"type": "string",
"const": "distance",
"description": "Nearest to `lat`, `lon` first - the order whenever they are given, unless another."
}
]
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"q": {
"type": [
"string",
"null"
],
"description": "Words to search for among the places: part of a name - \"figlm\" finds Figlmüller."
},
"lat": {
"type": [
"number",
"null"
],
"format": "double",
"description": "The latitude of a point - the user's, or one they name - to measure distances from\nand sort nearest first; with `lon`."
},
"lon": {
"type": [
"number",
"null"
],
"format": "double",
"description": "The longitude of that point; with `lat`."
},
"bbox": {
"type": [
"string",
"null"
],
"description": "Keep to a map area: \"west,south,east,north\" in degrees - a town, a district, the\nstreets around a place. Everywhere when left out."
},
"kind": {
"type": [
"string",
"null"
],
"description": "Its kind as OpenStreetMap tags it: restaurant, fast_food, cafe, bar, pub,\nbiergarten, ice_cream, food_court, bakery or pastry."
},
"lang": {
"anyOf": [
{
"$ref": "#/$defs/ApiLang"
},
{
"type": "null"
}
],
"description": "The language of dish names, descriptions and section titles: de, the menus' own, or\nen, as bissl translated them."
},
"sort": {
"anyOf": [
{
"$ref": "#/$defs/VenueSort"
},
{
"type": "null"
}
],
"description": "The order of the places."
},
"limit": {
"type": [
"integer",
"null"
],
"format": "int64",
"description": "Places to answer with: 1 to 30, 10 when left out."
},
"offset": {
"type": [
"integer",
"null"
],
"format": "int64",
"description": "Places to skip, for the next ones: 0 when left out."
},
"cuisine": {
"type": [
"string",
"null"
],
"description": "Only at places of this cuisine, as OpenStreetMap names it: \"italian\", \"vietnamese\"."
},
"has_menu": {
"type": [
"boolean",
"null"
],
"description": "Only places whose menu with prices bissl read."
},
"open_now": {
"type": [
"boolean",
"null"
],
"description": "Only places open right now."
},
"lunch_today": {
"type": [
"boolean",
"null"
],
"description": "Only places serving a lunch menu today."
}
},
"additionalProperties": false
}