openwein.de — deutsche Weingüter und Weinfeste
de.openwein/mcpopenwein.destreamable-httpv1.0.0Scanned
German wineries, wine towns and wine festivals: 5.900 entries in 13 regions. Read-only, no key.
12 tools: 12 only read.
- Reads private data · 2
- Reads text others write · 2
- Can send data out · 2
- No findings
Tools listed without sign-in. Remote posture
Anlyon alternative
Run the operations that matter as governed actions.
Declare what an action changes, and Anlyon puts it under a shared limit, binds every approval to the exact request, and grades the outcome. It works on any HTTPS API you can describe as an action.
Anlyon does not run, proxy or govern this MCP server. A tool your own code calls directly is not routed through Anlyon and is not governed by it.
Import an OpenAPI spec →Tools
Grouped by what each tool does, most consequential first. Open one for its reasons and full description; descriptions are the publisher's own words.
12 tools
Only reads 12Show 12 read-only tools
get_glossaryGerman wine terms explained, with their regional variants.No findings
Why it is in this group
- The name "get_glossary" says "get": a word for reading.
Description, as the server wrote it 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.
get_lageOne Einzellage in full: Bereich, Großlage, planted area, the official vineyard number, the municipalities it spans, and the wineries of its town.Reads text others writeCan send data outNo findings
Why it is in this group
- The name "get_lage" says "get": a word for reading.
What it can reach
- untrusted-inputThe input takes a URL (input.url), and the tool reads it: it reads web pages, which anyone can write.
- outboundThe input takes a URL (input.url): a request to a URL can carry data to whoever runs it.
Claude Code: ask, because it is tagged outbound.
Description, as the server wrote it 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.
get_regionFull description of one wine region: its history, grape varieties and terroir, plus its wine towns and upcoming events.No findings
Why it is in this group
- The name "get_region" says "get": a word for reading.
Description, as the server wrote it Full description of one wine region: its history, grape varieties and terroir, plus its wine towns and upcoming events.
get_townOne wine town in full: its description and wine history, every winery listed there, its upcoming events and the neighbouring wine towns.No findings
Why it is in this group
- The name "get_town" says "get": a word for reading.
Description, as the server wrote it One wine town in full: its description and wine history, every winery listed there, its upcoming events and the neighbouring wine towns.
get_vintageWhat 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 harve…No findings
Why it is in this group
- The name "get_vintage" says "get": a word for reading.
Description, as the server wrote it 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.
get_wineryEverything 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 …Reads private dataReads text others writeCan send data outNo findings
Why it is in this group
- The name "get_winery" says "get": a word for reading.
What it can reach
- private-dataThe description's first sentence says "contact": it reads contacts.
- untrusted-inputThe description's first sentence says "comment": it reads comments, which other people can write.
- untrusted-inputThe input takes a URL (input.url), and the tool reads it: it reads web pages, which anyone can write.
- outboundThe input takes a URL (input.url): a request to a URL can carry data to whoever runs it.
Claude Code: ask, because it is tagged outbound.
Description, as the server wrote it 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.
list_eventsUpcoming German wine events — Weinfeste, Hoffeste, Weinproben, Weinwanderungen — across all regions, or filtered by region, town or a radius around a point.No findings
Why it is in this group
- The name "list_events" says "list": a word for reading.
Description, as the server wrote it 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.
list_regionsLists 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.No findings
Why it is in this group
- The name "list_regions" says "list": a word for reading.
Description, as the server wrote it 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.
searchFree-text search across the whole directory — winery names, owners, towns and description texts.Reads private dataNo findings
Why it is in this group
- The name "search" says "search": a word for reading.
What it can reach
- private-dataThe description's first sentence says "directory": it reads files.
Description, as the server wrote it 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.
search_lagenSearch the 1.646 registered German Einzellagen (single vineyard sites) by name, town or region.No findings
Why it is in this group
- The name "search_lagen" says "search": a word for reading.
Description, as the server wrote it 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.
search_townsFind German wine towns by name, region, postal code or around a point.No findings
Why it is in this group
- The name "search_towns" says "search": a word for reading.
Description, as the server wrote it 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.
search_wineriesSearch ~5.900 German wineries by name, town, postal code or region, or geographically around a point.No findings
Why it is in this group
- The name "search_wineries" says "search": a word for reading.
Description, as the server wrote it 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.
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Exfil surface
Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.
8 paths in this server alone from private data, through text someone else wrote, to a way out. Denying 2 outbound tools breaks every one.
- Reads private data2
- Reads files, mail, messages, databases, secrets, calendars or repositories.
- Reads text others write2
- Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
- Can send data out2
- Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.
{
"permissions": {
"deny": [
"mcp__openwein__get_lage",
"mcp__openwein__get_winery"
]
}
}Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.
Remote posture
What anyone on the internet sees at the remote endpoint: an anonymous initialize and tools/list, and the public OAuth metadata.
Looked at Oct 22, 2026, 14:45 UTC, unchanged since Oct 22, 2026. No credentials were sent and no tool was called. What is looked at.
- Reachable
- yes
- HTTP status of an anonymous initialize
- 200
- tools/list served without credentials
- yes
- Tools that change things, listed without credentials
- 0
- Protocol version
- 2025-06-18
- WWW-Authenticate on 401
- not observed
- resource_metadata in WWW-Authenticate
- not observed
- RFC 9728 protected resource metadata
- not observed
- Authorization servers
- not observed
- Legacy HTTP+SSE transport
- no
- Dynamic client registration
- not observed
- Client ID metadata documents
- not observed
Findings
Matches of fixed checks, with the text they matched.
No check matched anything in these tool definitions. That is not a safety guarantee.
History
Changes to its tool definitions and to its remote endpoint, newest first.
No change seen yet. Its tools are rescanned every day, and a remote endpoint is looked at once a week.
Install
Pinned to version 1.0.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http openwein https://www.openwein.de/mcpclaude mcp add --transport http openwein https://www.openwein.de/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__openwein__list_regions",
"mcp__openwein__get_region",
"mcp__openwein__search_wineries",
"mcp__openwein__list_events",
"mcp__openwein__search_towns",
"mcp__openwein__search",
"mcp__openwein__search_lagen",
"mcp__openwein__get_vintage",
"mcp__openwein__get_glossary",
"mcp__openwein__get_town"
],
"ask": [
"mcp__openwein__get_winery",
"mcp__openwein__get_lage"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as openwein. Review it before you use it.
Capability tags behind 3 rules
- mcp__openwein__get_winery private-data, untrusted-input, outbound
- mcp__openwein__search private-data
- mcp__openwein__get_lage untrusted-input, outbound
Pin
Keep the decision: fail CI when the tools change, follow every change, or show a badge.
Pin in CI
Fail a build when the tools you reviewed are not the tools the server serves today.
curl -s "https://anlyon.dev/api/v1/servers/de.openwein/mcp/verify?hash=dd6cb52dcac31484ae6bfbdebffafa3afc94a76f4b084baea40053b431d37c32" | jq -e '.changed == false'Pinned hash dd6cb52dcac3, from Oct 21, 2026, 18:58 UTC.
Watch
Get told when its tools change: a new tool, a new description, a new class.
https://anlyon.dev/servers/de.openwein/mcp/changes.xmlAn Atom feed. Works in any feed reader or Slack's RSS app.
Badge
[](https://anlyon.dev/servers/de.openwein/mcp)Source: MCP Registry. Synced Oct 21, 2026, 18:11 UTC.