Émile
MCP server for the Émile wine cellar — list, add, recommend, scan and search 100k+ wines.
Open source Open in the app JSON README (API)
About
MCP server for the Émile wine cellar — list, add, recommend, scan and search 100k+ wines.
Details
- Kind
- MCP servers
- Topic
- No topic detected
- Publisher
- sebastiengal
- Origin
- official
- Category
- ferramentas
- Transport
- http
- Version
- 0.2.5
- Added
- 2026-08-29 03:02:14
- Updated
- 2026-08-29 03:02:14
- Origin id
io.github.SebastienGal/emile-wine
README
# @emile-wine/mcp-server
> Émile is your French wine cellar app. This MCP server lets you query and manage your cellar from Claude Desktop, Cursor, or any [Model Context Protocol](https://modelcontextprotocol.io) client.
[](https://www.npmjs.com/package/@emile-wine/mcp-server)
## What it does
10 tools to talk to your Émile cellar:
| Tool | Description |
|---|---|
| `search_wines` | Search the catalog by name/producer/appellation |
| `list_cellars` | List your cellars |
| `list_bottles` | List bottles in a cellar |
| `add_bottle` | Add 1 bottle |
| `add_bottles_batch` | Add up to 100 bottles in one call |
| `update_bottle` | Change status, notes, location, price, vintage, quantity |
| `delete_bottle` | Remove a bottle (prefer `update_bottle status=drunk` for history) |
| `recommend_bottles` | Get bottle recommendations for a meal or maturity |
| `scan_label` | Identify a wine from a label photo (base64) |
| `scan_labels_batch` | Up to 10 label photos in one call |
## Quick start (Claude Desktop)
### 1. Get an API key
Open the Émile iOS app → **Profile → Settings → API Keys** → tap **+ Generate**. Copy the `emile_live_...` value (shown only once).
### 2. Edit your Claude Desktop config
`~/Library/Application Support/Claude/claude_desktop_config.json` (macOS):
```json
{
"mcpServers": {
"emile": {
"command": "npx",
"args": ["-y", "@emile-wine/mcp-server"],
"env": {
"EMILE_API_KEY": "emile_live_xxxxxxxxxxxxxxxx"
}
}
}
}
```
### 3. Restart Claude Desktop
You should see the 🔌 indicator in the bottom of the input box, with `emile` listed.
### 4. Try it
> "Show me my main cellar"
> "Recommend a bottle for tonight's pasta with mushrooms"
> "Add a 2018 Pomerol to Cave A"
## Configuration
| Env var | Required | Default | Description |
|---|---|---|---|
| `EMILE_API_KEY` | yes | — | API key from the iOS app |
| `EMILE_API_URL` | no | `https://api.emile.wine` | Override for local dev (`http://localhost:8000` allowed) |
| `EMILE_LOG_LEVEL` | no | `info` | One of `debug`, `info`, `warn`, `error` |
## Troubleshooting
**"Émile API key is invalid or revoked"** — Generate a new key in the iOS app. Old keys are revoked when you delete them or when global key rotation happens (rare).
**"Cannot reach Émile API"** — Check your internet connection. The default endpoint `https://api.emile.wine` should be reachable; you can verify with:
```bash
curl https://api.emile.wine/health
```
**"Rate limit exceeded"** — The MCP server inherits the API's rate limits (varies by endpoint, typically 10-60 req/min). Wait the suggested retry seconds.
**Need to debug a tool call** — set `EMILE_LOG_LEVEL=debug` in the config and check Claude Desktop's MCP logs at `~/Library/Logs/Claude/mcp*.log`.
## Privacy
This MCP server is **stateless and doesn't persist anything**. Your API key is read from env at startup. All requests go directly to `https://api.emile.wine` (or your override). Photo data sent to `scan_label` is processed transient by the backend (not stored). See https://api.emile.wine/privacy for the full policy.
## Other MCP clients
The same `npx -y @emile-wine/mcp-server` invocation works in any client supporting stdio MCP servers:
- **Cursor** — `~/.cursor/mcp.json`
- **Continue** — `~/.continue/config.json` `experimental.modelContextProtocolServer`
- Custom clients — connect to stdout/stdin, speak [MCP](https://modelcontextprotocol.io)
## License
MIT — see LICENSE.