Server definition
- Hash
- sha256:21ff17317611d0522708003b86ef4bb95392ef27ad3336a6ad8f6e7992cd865a
- What it is
- What a remote MCP server returned when asked what it offers: 12 tools
The blob, as servednamed by its sha256
{
"instructions": "openwein.de is an open directory of German winemakers, online since 1998: 13 wine regions, ~660 wine towns and ~5.900 wineries with addresses, opening hours and visitor comments, plus a calendar of wine festivals. Use list_regions to orient, search_wineries and search_towns to find places (by name, postal code or a radius around coordinates), and list_events for upcoming Weinfeste across all regions.",
"tools": [
{
"description": "German wine terms explained, with their regional variants. Useful because the same institution carries different names by region: the seasonal tavern a winery runs itself is a Straußwirtschaft on the Mosel and in the Palatinate, a Besenwirtschaft in Württemberg and a Hecken- or Häckerwirtschaft in Franconia — and none of them is the same as a Gutsausschank, which may open all year. Omit the term to list all entries.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"category": {
"description": "Restrict the listing to one category.",
"type": "string"
},
"term": {
"description": "Term, alias or a synonym, e.g. \"Besen\".",
"type": "string"
}
},
"type": "object"
},
"name": "get_glossary",
"outputSchema": null
},
{
"description": "One Einzellage in full: Bereich, Großlage, planted area, the official vineyard number, the municipalities it spans, and the wineries of its town. It is NOT known which wineries actually farm vines in a given Lage — no public register holds that — so the wineries listed are those located in the town, and the answer says so.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"lage": {
"description": "Lage alias from search_lagen.",
"type": "string"
},
"region": {
"description": "Region alias.",
"type": "string"
},
"url": {
"description": "Alternatively its openwein.de URL or path.",
"type": "string"
}
},
"type": "object"
},
"name": "get_lage",
"outputSchema": null
},
{
"description": "Full description of one wine region: its history, grape varieties and terroir, plus its wine towns and upcoming events.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"region": {
"description": "Region alias, e.g. \"rheinhessen\", \"mosel-saar-ruwer\", \"ahr\". Use list_regions to see all.",
"type": "string"
}
},
"required": [
"region"
],
"type": "object"
},
"name": "get_region",
"outputSchema": null
},
{
"description": "One wine town in full: its description and wine history, every winery listed there, its upcoming events and the neighbouring wine towns.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"id": {
"description": "Alternatively the town id.",
"type": "integer"
},
"region": {
"description": "Region alias.",
"type": "string"
},
"town": {
"description": "Town alias, e.g. \"mainz-ebersheim\".",
"type": "string"
}
},
"type": "object"
},
"name": "get_town",
"outputSchema": null
},
{
"description": "What the weather did in one growing season, per wine region: mean temperature, sunshine hours and rainfall from April to October, compared with the 1991-2020 normal, plus the harvest volume where published. Measured data of the German Weather Service, for some regions back to 1881. IMPORTANT: these are measurements, not a verdict. A warm year is not a good year — what ends up in the glass depends on site, grape and winemaker. Do not present the numbers as a quality rating. Omit the year to get the whole series for a region.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"from": {
"description": "Earliest year when returning a series.",
"type": "integer"
},
"region": {
"description": "Region alias.",
"type": "string"
},
"year": {
"description": "Vintage year. Omitted: the whole series.",
"type": "integer"
}
},
"type": "object"
},
"name": "get_vintage",
"outputSchema": null
},
{
"description": "Everything held about one winery: address, contact, opening hours, average rating, recent visitor comments, its upcoming events, the Einzellagen it names on its own website (which is not the same as the Lagen it farms — that is not publicly recorded), and a portrait assembled from its own website (hectares, grape varieties, organic farming, founding year) where that page could be read.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"id": {
"description": "Winery id from search_wineries.",
"type": "integer"
},
"url": {
"description": "Alternatively its openwein.de URL or path, e.g. \"/rheinhessen/mainz-ebersheim/weingut-eva-vollmer\".",
"type": "string"
}
},
"type": "object"
},
"name": "get_winery",
"outputSchema": null
},
{
"description": "Upcoming German wine events — Weinfeste, Hoffeste, Weinproben, Weinwanderungen — across all regions, or filtered by region, town or a radius around a point. Every event carries the source it was verified against and a link to its own page; the result also names the human-readable calendar page for the same selection, which is the thing to hand a person rather than retelling a list that changes daily.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"from": {
"description": "Earliest date, YYYY-MM-DD. Defaults to today.",
"type": "string"
},
"lat": {
"description": "Latitude for a radius search.",
"type": "number"
},
"limit": {
"description": "Max results, 1-100. Default 40.",
"type": "integer"
},
"lng": {
"description": "Longitude for a radius search.",
"type": "number"
},
"radius_km": {
"description": "Radius in km around lat/lng. Default 25.",
"type": "number"
},
"region": {
"description": "Region alias to restrict to.",
"type": "string"
},
"to": {
"description": "Latest date, YYYY-MM-DD. Defaults to one year out.",
"type": "string"
},
"town": {
"description": "Town name or alias to restrict to.",
"type": "string"
}
},
"type": "object"
},
"name": "list_events",
"outputSchema": null
},
{
"description": "Lists all 13 German wine regions (Anbaugebiete) with their character, the number of wine towns and wineries in each, and how many events are coming up. Start here when the question is about German wine regions in general.",
"inputSchema": {
"additionalProperties": false,
"type": "object"
},
"name": "list_regions",
"outputSchema": null
},
{
"description": "Free-text search across the whole directory — winery names, owners, towns and description texts. Use this for open questions where the exact name is unknown (\"a winery near the Mosel with rooms\", \"Riesling from steep slopes\"). For a known town or a radius around coordinates, search_wineries is more precise.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"has_caravan": {
"description": "Only wineries with a camper van pitch.",
"type": "boolean"
},
"has_lodging": {
"description": "Only wineries offering accommodation.",
"type": "boolean"
},
"limit": {
"description": "Max results, 1-50. Default 20.",
"type": "integer"
},
"query": {
"description": "What to look for, in German or English.",
"type": "string"
},
"region": {
"description": "Region alias to restrict to.",
"type": "string"
},
"serves_food": {
"description": "Only wineries that serve food.",
"type": "boolean"
}
},
"required": [
"query"
],
"type": "object"
},
"name": "search",
"outputSchema": null
},
{
"description": "Search the 1.646 registered German Einzellagen (single vineyard sites) by name, town or region. The Einzellage is the smallest origin unit in German wine law and the name that appears on the label after the town (\"Forster Ungeheuer\", \"Wehlener Sonnenuhr\"). For the six regions of Rhineland-Palatinate the data is the official register of the Chamber of Agriculture and carries the vineyard number, Bereich, Großlage, planted area and the legal boundary; the Rheingau is currently sourced from Wikipedia and has no boundary. Note that a Lage name says where a wine grew, not how good it is. Where a winery names a Lage on its own website, get_lage returns that winery with the sentence it appeared in.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"grosslage": {
"description": "Restrict to one Großlage.",
"type": "string"
},
"limit": {
"description": "Max results, 1-100. Default 25.",
"type": "integer"
},
"query": {
"description": "Free text matched against the Lage name.",
"type": "string"
},
"region": {
"description": "Region alias to restrict to.",
"type": "string"
},
"town": {
"description": "Town name or alias, e.g. \"Kallstadt\".",
"type": "string"
}
},
"type": "object"
},
"name": "search_lagen",
"outputSchema": null
},
{
"description": "Find German wine towns by name, region, postal code or around a point. Each town carries a description of its wine history and character, and the number of wineries listed there.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"lat": {
"type": "number"
},
"limit": {
"description": "Max results, 1-50. Default 20.",
"type": "integer"
},
"lng": {
"type": "number"
},
"plz": {
"description": "German postal code.",
"type": "string"
},
"query": {
"description": "Town name, full or partial.",
"type": "string"
},
"radius_km": {
"description": "Radius in km around lat/lng. Default 20.",
"type": "number"
},
"region": {
"description": "Region alias to restrict to.",
"type": "string"
}
},
"type": "object"
},
"name": "search_towns",
"outputSchema": null
},
{
"description": "Search ~5.900 German wineries by name, town, postal code or region, or geographically around a point. Filters for wineries that serve food (Straußwirtschaft, Gutsausschank), offer accommodation, or have a place for a camper van. Two further filters come from what a winery writes on its own website — grape variety and organic farming — and those two are deliberately incomplete: only about half of all wineries have a website that says so. Absence there is not evidence of absence. Returns contact details, address and coordinates.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"grape_variety": {
"description": "Only wineries that NAME this grape variety on their own website, e.g. \"Riesling\". This is not a complete list of who grows it: a winery without a website, or one that does not list its varieties, is missing here.",
"type": "string"
},
"has_caravan": {
"description": "Only wineries with a camper van pitch.",
"type": "boolean"
},
"has_lodging": {
"description": "Only wineries offering accommodation.",
"type": "boolean"
},
"lat": {
"description": "Latitude for a radius search.",
"type": "number"
},
"limit": {
"description": "Max results, 1-50. Default 20.",
"type": "integer"
},
"lng": {
"description": "Longitude for a radius search.",
"type": "number"
},
"organic": {
"description": "Only wineries that STATE organic farming on their own website. Not a certification check — same caveat as grape_variety.",
"type": "boolean"
},
"plz": {
"description": "German postal code.",
"type": "string"
},
"query": {
"description": "Free text matched against winery name, owner and second name.",
"type": "string"
},
"radius_km": {
"description": "Radius in km around lat/lng. Default 10.",
"type": "number"
},
"region": {
"description": "Region alias to restrict to.",
"type": "string"
},
"serves_food": {
"description": "Only wineries with a Straußwirtschaft, Gutsausschank or restaurant.",
"type": "boolean"
},
"town": {
"description": "Town name or alias, e.g. \"Nierstein\".",
"type": "string"
}
},
"type": "object"
},
"name": "search_wineries",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:21ff17317611d0522708003b86ef4bb95392ef27ad3336a6ad8f6e7992cd865a | sha256sum