elid-wine-mcp
This MCP server provides read-only access to ELID wine identities, vintage fact sheets, and observed Swiss shop prices.
Match free wine text (labels, wine-list lines) to ranked base-wine ELIDs with LWINs and scores.
Search the ELID catalog by name/ELID substring or exact 7-digit LWIN, with pagination.
Retrieve a wine’s identity and vintage-specific fact sheets (alcohol, sugar, acidity, blend, soil, winemaking, aging, dosage, drinking window, food pairing).
Search observed retailer prices from Swiss-market shops by text, ELID, vintage, shop, or CHF range, with sorting and pagination.
List covered shops with observation counts and date ranges.
Use results with citable wine URLs and work without an API key or account.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@elid-wine-mcp What's in Dom Perignon 2015 and how much does it cost in Swiss shops?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
elid-wine-mcp
An MCP server for ELID, which gives wines readable IDs. It lets Claude and other MCP clients:
turn wine text such as a label or a wine-list line into ranked ELIDs
look up wines by name, ELID prefix or LWIN
get vintage fact sheets: alcohol, sugar, acidity, blend, soil, winemaking, aging, dosage, drinking window and food pairing
search observed retailer prices from Swiss-market shops
An ELID is written {CC}-{RRR}-{PPPP}{NN}[-{VINTAGE}]. For example, FR-CMP-DOMP01-2015 is the 2015 Dom Pérignon. The format is defined in the ELID specification.
Tools
Tool | What it does |
| Matches free text to ranked base-wine ELIDs, with LWINs and scores |
| Searches the catalog by name/ELID substring ( |
| Returns a wine's identity and vintage fact sheets. A full ELID such as |
| Searches Swiss-market shop prices by text, ELID and vintage, shop, or CHF range, with sorting |
| Lists covered shops with observation counts and date ranges |
Every tool is read-only, and no API key or account is needed. Results include a wine_url (for example https://elid.wine/wine/FR-CMP-DOMP01#vintage-2015) that you can cite.
Related MCP server: vanoe-intelligence-mcp
Install
Node.js 20 or newer is required.
Claude Code
claude mcp add elid -- npx -y elid-wine-mcpClaude Desktop, Cursor, Windsurf and other clients
Add this to your MCP config file (for Claude Desktop, claude_desktop_config.json):
{
"mcpServers": {
"elid": {
"command": "npx",
"args": ["-y", "elid-wine-mcp"]
}
}
}Configuration
Variable | Default | Purpose |
|
| Alternative deployment, e.g. |
Example
You: I'm looking at "Dom Perignon 2015" on a wine list. What's in it, and what does it cost in Swiss shops?
Claude calls:
elid_match_wine({ "raw": "Dom Perignon 2015" }), which returnsFR-CMP-DOMP01(Dom Pérignon, Vintage, Champagne; LWIN 1082656).elid_get_wine({ "elid": "FR-CMP-DOMP01-2015" }), which returns the 2015 facts only: 12.5% ABV, 51% Pinot Noir / 49% Chardonnay, dosage 4.5 g/L, 100% malolactic, about 8 years on lees, disgorged 2023-01, drinking window 2023+.elid_search_shop_prices({ "elid": "FR-CMP-DOMP01-2015", "sort": "price" }), which returns observed shop listings with shop, bottle size, currency and observation date.
Then it answers with the ELID, cites https://elid.wine/wine/FR-CMP-DOMP01#vintage-2015, and labels each price as a dated observation, not a current offer.
Data notes
Don't mix vintages.
elid_get_winenever applies one vintage's facts to another. If a vintage has no fact sheet, the tool says so.Prices are observations. Shop rows keep the source currency, bottle size, case quantity and
scraped_atdate. Missing values arenull. Shipping and taxes are not included, and a listed price does not mean the wine is in stock now.Match scores rank candidates. They are not probabilities. An empty list means no accepted match.
The API does not include RRP, restaurant lists or critic reviews. For those, see the pages on elid.wine.
Development
npm install
npm run build
npm test # unit tests (mocked HTTP)
npm run test:live # live tests against elid.wine
npm run inspect # MCP Inspector UIPublishing
Update
versioninpackage.jsonand in both places inserver.json.Run
npm publish. TheprepublishOnlyscript builds and runs the tests first.Optionally, list the server in the MCP Registry:
mcp-publisher login github && mcp-publisher publish.
You can also publish a GitHub release. .github/workflows/publish.yml then publishes to npm (this needs an NPM_TOKEN secret) and to the MCP Registry.
License
MIT. Data © ELID. The catalog comes partly from LWIN (CC BY 4.0); see elid.wine for provenance.
Available Tools
5 toolselid_get_wineGet wine identity and vintage factsARead-only
Get one wine's catalog identity (producer, region, colour, type, classification, LWIN…) and its vintage fact sheets (alcohol, residual sugar, acidity, blend, soil, winemaking, aging, dosage, drinking window, food pairing…). Accepts a base ELID (FR-CMP-DOMP01) or a full ELID with vintage (FR-CMP-DOMP01-2015), which restricts facts to that vintage. Unknown fields are omitted. Does not include prices; use elid_search_shop_prices.
Inputs: elid (required), vintage.
elid_list_shopsList Swiss-market shopsARead-only
List the shops covered by elid_search_shop_prices, with observation counts and the oldest/newest observation dates.
Inputs: no named parameters.
elid_match_wineMatch wine text to ELIDsARead-only
Match free wine text (e.g. 'Kanonkop Paul Sauer 2021', a label or a wine-list line) to ranked ELID base-wine identities. Returns elid, lwin, display_name, producer_name, wine and scores (for ranking only, not probabilities). An empty list means no accepted match. Vintages in the text are not part of the result: pass the vintage to elid_get_wine.
Inputs: raw (required), top_n, producer_id, country_code.
elid_search_shop_pricesSearch Swiss-market shop pricesARead-only
Search observed retailer prices from ~26 Swiss-market shops (plus gute-weine.de). Filter by free text (q), exact base ELID (elid) and vintage, shop (site), and CHF price range. Rows keep the source currency, bottle size, case quantity and observation date (scraped_at); missing values are null. These are historical observations, not current offers; shipping and taxes are not included. Always report vintage, size, currency, shop and date.
Inputs: q, max, min, elid, +5 more.
elid_search_winesSearch the ELID catalogARead-only
List ELID wine identities, ordered by ELID. Use q for a case-insensitive substring match on the name or ELID (e.g. 'kanonkop' or 'FR-CMP-DOMP'), or lwin for an exact seven-digit LWIN lookup. For free text such as a full label, prefer elid_match_wine. Paginate by passing next_cursor as after.
Inputs: q, lwin, after, limit.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 5 tools
The tools are mostly distinct: match vs search vs get vs list shops vs search prices. One minor overlap: elid_match_wine and elid_search_wines both accept text, but descriptions clearly separate free-text matching from substring/ELID lookup.
All tools follow a consistent elid_<verb>_<noun> pattern (match_wine, search_wines, get_wine, list_shops, search_shop_prices). Minor inconsistency: 'search_wines' vs 'search_shop_prices' both use search, while 'list_shops' uses list, but the pattern is otherwise uniform.
Five tools is well-scoped for a wine identity and price lookup server. Each tool covers a distinct need: matching, searching, retrieving details, listing shops, and searching prices.
The surface covers the core workflow: match free text, get wine details, search prices, and list shops. Minor gaps: no tool for retrieving a specific shop's details or for filtering prices by multiple vintages at once, but agents can work around these.
Related MCP Connectors
Read-only search of 2,189 AI agent tools (MCP servers, x402 APIs) with daily automated trust scores.
Read-only MCP tools for AI agent discovery, structured resources, and NIULAI information.
100+ MCP tools for AI agents: content metadata, trade intelligence, business-expertise analysis.
Read-only Amazon profit, fee, ACoS, and geo-holdout MCP tools for Claude, ChatGPT, and agents.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to analyze BigQuery datasets through MCP, using tools to inspect datasets and execute read-only SQL queries.-
- AlicenseAqualityBmaintenanceEnables AI assistants to query the Vanoe Market Intelligence API directly for stock verdicts, trend-stage analysis, Point & Figure signals, sector breadth, macro regime, SEC filings, and macro calendar data via MCP tools.101MIT
- AlicenseAqualityCmaintenanceEnables AI agents to retrieve live GPU rental prices, compare models, and access market summaries and historical price data through four read-only MCP tools.4MIT
- AlicenseAqualityBmaintenanceEnables AI agents to securely access and reason over WooCommerce orders, products, and inventory through read-only MCP tools, with PII redaction, rate-limit handling, and bounded pagination.5MIT