Skip to content

MCP Server ​

CellarBoss can optionally expose your cellar data to AI assistants over the Model Context Protocol (MCP), so you can ask an assistant questions about your cellar in natural language — for example "what reds do I have that are ready to drink?" or "what's the average score I've given wines from Barossa Valley?".

Trusted networks only

The MCP server has no authentication and is read-only. It's intended for trusted, internal-network use — for example a self-hosted AI assistant running alongside CellarBoss. Do not expose it over the public internet.

Enabling the MCP Server ​

Set the MCP_ENABLED environment variable to true on the backend container:

yaml
services:
  backend:
    image: ghcr.io/cellarboss/cellarboss-backend:latest
    environment:
      - MCP_ENABLED=true
      # ... other env vars, see Installation

Once enabled, the server is available at /mcp on your backend (e.g. http://backend:5000/mcp).

Connecting a Client ​

Any MCP client that supports the Streamable HTTP transport can connect directly to the /mcp endpoint. Consult your client's documentation for the exact configuration syntax — most accept a server URL along the lines of:

json
{
  "mcpServers": {
    "cellarboss": {
      "url": "http://localhost:5000/mcp"
    }
  }
}

Available Tools ​

All tools are read-only and return JSON.

Wines ​

ToolDescription
list_winesLists every wine, one row per vintage, with winemaker, region/country, grape varieties, drinking window, bottle counts by status, and a tasting note average score/count
get_wineGets a single wine at a specific vintage, with the same details as list_wines

Bottles ​

ToolDescription
list_bottlesLists every bottle in the cellar, with the wine/vintage it holds and its resolved storage location embedded
get_bottleGets a single bottle by id, with the same details as list_bottles

Storages and Locations ​

ToolDescription
list_storagesLists every storage unit
get_storageGets a single storage unit by id
list_locationsLists every location
get_locationGets a single location by id

Tasting Notes ​

ToolDescription
list_tasting_notesLists every tasting note across the whole cellar
get_tasting_noteGets a single tasting note by id
get_tasting_notes_for_vintageLists tasting notes for a specific vintage (by vintage id, as returned by list_wines)
get_tasting_notes_for_wineLists tasting notes across every vintage of a wine (by wine id)

INFO

Tasting note text is deliberately left out of list_wines/get_wine — only the average score and note count are included there. An assistant needs to call one of the tasting note tools to read the actual note content.