# CellarTracker (npm · cellartracker-mcp)

Read-only access to your CellarTracker wine cellar: inventory, drinking windows, purchases, notes.

- Trust score: 81/100 (high trust)
- Change this week: +28
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- npm · `cellartracker-mcp`: 81/100 (this document), [markdown](https://verifymcp.io/servers/slavins-co-cellartracker-mcp/cellartracker-mcp.md), [page](https://verifymcp.io/servers/slavins-co-cellartracker-mcp/cellartracker-mcp)

## Channel facts

- Registry: `npm`
- Package: `cellartracker-mcp`
- Version: `0.5.0`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Supply Chain Security**: 87/100
  - No malware found by supply-chain analysis.
  - Only part of the dependency tree could be resolved (95 of 99), so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (95 of 99), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 97/100
  - Source repository is publicly reachable at the declared URL.
  - Cryptographically verified build provenance (signed, bound to slavins-co/cellartracker-mcp).
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 20 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 85/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (excellent).
  - Tool/resource definitions use about 1564 tokens (~71/item across 22 items; 13 tools + 9 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 23/100
  - Stability observed for 7 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add slavins-co-cellartracker-mcp -- npx -y cellartracker-mcp
```

### Codex

```bash
codex mcp add slavins-co-cellartracker-mcp -- npx -y cellartracker-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "slavins-co-cellartracker-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "cellartracker-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add slavins-co-cellartracker-mcp --command npx --arg -y --arg cellartracker-mcp
```

### Hermes

```yaml
mcp_servers:
  slavins-co-cellartracker-mcp:
    command: "npx"
    args: ["-y", "cellartracker-mcp"]
```

### Other

```json
{
  "mcpServers": {
    "slavins-co-cellartracker-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "cellartracker-mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 81, +61)

- [security improvement] Install scripts: unverified → pass
- [security improvement] Provenance: unverified → pass
- [security improvement] Known CVEs: unverified → partial
- [security] The attested source repository moved: slavins-co/cellartracker-mcp
- [functional improvement] Schema quality: unverified → excellent
- [functional improvement] Tool coverage: unverified → 100
- [functional improvement] License: unverified → pass
- [functional improvement] Schema quality: unverified → 100
- [functional improvement] Dependency health: unverified → partial
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Stability: unverified → 0.23
- [functional] Licence: MIT

### 2026-08-02 (score 20, −6)

- [security improvement] Malware scan: unverified → pass
- [functional regression] Schema quality: 100 → unverified
- [functional regression] Tool coverage: 100 → unverified

### 2026-08-01 (score 26, +19)

- [functional regression] Dependency health: partial → unverified
- [functional improvement] Tool coverage: unverified → 100
- [functional improvement] Schema quality: unverified → 100

### 2026-07-31 (score 7, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 6, −47)

- [security regression] Malware scan: pass → unverified
- [functional regression] Tool coverage: 100 → unverified
- [functional regression] Schema quality: 100 → unverified

### 2026-07-27 (score 53)

First indexed and scored.

## MCP tools (13)

### `search-cellar` (~168 tokens)

Search your wine cellar by name, color, region, varietal, location, or vintage range. The region parameter searches across Country, Region, SubRegion, Appellation, and Locale fields. Returns matching wines with details, up to 25 per page — pass offset to page through more.

Input parameters:

- `color` (string): Filter by color (Red, White, Rosé)
- `location` (string): Storage location
- `offset` (number): Result offset for pagination (default 0)
- `query` (string): Wine name search term
- `region` (string): Region, country, or appellation
- `varietal` (string): Grape varietal
- `vintage_max` (number): Maximum vintage year
- `vintage_min` (number): Minimum vintage year

Output parameters:

- `count` (number)
- `offset` (number)
- `total` (number)
- `wines` (array)

### `drinking-recommendations` (~80 tokens)

Get wine drinking recommendations sorted by urgency. Prioritizes wines that are past peak, then those with closing windows, then wines currently in their drinking window. Optionally filter by color.

Input parameters:

- `color` (string): Filter by color
- `max_results` (number): Maximum results (default 10)
- `occasion` (string): Occasion description

Output parameters:

- `recommendations` (array)

### `cellar-stats` (~56 tokens)

Get cellar statistics: total bottles, value, unique wines, and optional breakdowns. Valid group_by options: color, country, region, varietal, location, bin, category.

Input parameters:

- `group_by` (string): Breakdown dimension

Output parameters:

- `avgPerWine` (number)
- `breakdown` (object)
- `totalBottles` (number)
- `totalValue` (number)
- `uniqueWines` (number)

### `purchase-history` (~94 tokens)

Search purchase history with spending summary. Filter by wine name, store, or date range (YYYY-MM-DD format). Shows total spent, average price, per-store breakdown, and recent purchases.

Input parameters:

- `date_from` (string): Start date (YYYY-MM-DD)
- `date_to` (string): End date (YYYY-MM-DD)
- `query` (string): Wine name search
- `store` (string): Store name filter

Output parameters:

- `avgPrice` (number)
- `bottleCount` (number)
- `byStore` (array)
- `recent` (array)
- `totalSpent` (number)

### `recent-deliveries` (~103 tokens)

List wines actually delivered (received) in a date range, keyed on DeliveryDate. Defaults to the last 30 days. Use this for 'what just landed', unlike purchase-history which keys on order date.

Input parameters:

- `date_from` (string): Start delivery date (YYYY-MM-DD). Defaults to 30 days ago.
- `date_to` (string): End delivery date (YYYY-MM-DD). Defaults to today.
- `store` (string): Store name filter

Output parameters:

- `mostRecentDelivery` (string)
- `rows` (array)
- `total` (number)

### `incoming-orders` (~58 tokens)

List wines ordered but not yet received, from the Pending table. Sorted oldest order first. Use this for 'what's on the way', unlike recent-deliveries which shows what has already arrived.

Input parameters:

- `store` (string): Store name filter

Output parameters:

- `rows` (array)
- `total` (number)

### `bottle-details` (~304 tokens)

Look up individual bottles from the Bottles table — the per-bottle view spanning both in-cellar and consumed bottles, with barcode, exact location/bin, and size. Filter by wine name, location, bin, size, or barcode; set state to 'cellar' (default 'all' includes consumed). If the user attaches a photo of a bottle or its barcode, read the barcode digits from the image and pass them as the barcode filter. Location and Bin are account-specific labels, not physical descriptions — if a location/bin filter finds nothing, use cellar-stats with group_by=location or group_by=bin to see the actual values in use. Returns up to max_results per page (default 25) — pass offset to page through more.

Input parameters:

- `barcode` (string): Bottle barcode — e.g. read from a photo
- `bin` (string): Specific bin/position (e.g. 'Drawer 2', '1-3')
- `location` (string): Storage location (e.g. 'Wine Fridge')
- `max_results` (number): Maximum results (default 25)
- `offset` (number): Result offset for pagination (default 0)
- `query` (string): Wine name search term
- `size` (string): Bottle format (e.g. '750ml', '1500ml')
- `state` (string): Which bottles: 'cellar', 'consumed', or 'all' (default)

Output parameters:

- `bottles` (array)
- `count` (number)
- `offset` (number)
- `total` (number)

### `get-wishlist` (~39 tokens)

View your CellarTracker wishlist wines. Optionally search by wine name, region, or varietal.

Input parameters:

- `query` (string): Search term

Output parameters:

- `count` (number)
- `wines` (array)

### `consumption-history` (~144 tokens)

Search your consumption history — wines you've opened and drunk. Filter by wine name, color, or date range. Returns most recent consumptions first with tasting context, up to max_results per page (default 25) — pass offset to page through more.

Input parameters:

- `color` (string): Filter by color (Red, White, Rosé)
- `date_from` (string): Start date (YYYY-MM-DD)
- `date_to` (string): End date (YYYY-MM-DD)
- `max_results` (number): Maximum results (default 25)
- `offset` (number): Result offset for pagination (default 0)
- `query` (string): Wine name search term

Output parameters:

- `count` (number)
- `offset` (number)
- `rows` (array)
- `total` (number)

### `tasting-notes` (~125 tokens)

Search your tasting notes and reviews. Filter by wine name, color, or minimum rating. Returns notes with ratings, scores, and tasting details, up to max_results per page (default 25) — pass offset to page through more.

Input parameters:

- `color` (string): Filter by color (Red, White, Rosé)
- `max_results` (number): Maximum results (default 25)
- `min_rating` (number): Minimum rating filter
- `offset` (number): Result offset for pagination (default 0)
- `query` (string): Wine name search term

Output parameters:

- `count` (number)
- `offset` (number)
- `rows` (array)
- `total` (number)

### `refresh-data` (~33 tokens)

Force refresh all CellarTracker data from the server. Downloads fresh CSV exports for all 8 tables regardless of cache age.

Output parameters:

- `refreshedAt` (string)
- `serverVersion` (string)
- `tables` (array)

### `setup-credentials` (~69 tokens)

Set up or update your CellarTracker login credentials. Validates credentials against CellarTracker before saving. Use this if you just installed the plugin or need to change your login.

Input parameters:

- `password` (string, required): Your CellarTracker password
- `username` (string, required): Your CellarTracker username

Output parameters:

- `envOverrideActive` (boolean)
- `status` (string)

### `clear-user-data` (~65 tokens)

Remove stored CellarTracker credentials and cached wine data from this machine. Use this to fully disconnect your account or free up disk space.

Input parameters:

- `clear_cache` (boolean): Delete cached CSV exports (default true)
- `clear_credentials` (boolean): Delete saved credentials (default true)

Output parameters:

- `cacheFilesRemoved` (number)
- `credentials` (string)

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/slavins-co-cellartracker-mcp/cellartracker-mcp#diagnostics

## Score history

- 2026-08-03: 81
- 2026-08-02: 20
- 2026-08-01: 26
- 2026-07-31: 7
- 2026-07-30: 6
- 2026-07-28: 53
- 2026-07-27: 53

## Links

- npm package: https://www.npmjs.com/package/cellartracker-mcp
- Socket report: https://socket.dev/npm/package/cellartracker-mcp
- Repository: https://github.com/slavins-co/cellartracker-mcp
- Changelog RSS feed: https://verifymcp.io/servers/slavins-co-cellartracker-mcp/cellartracker-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/slavins-co-cellartracker-mcp/cellartracker-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/slavins-co-cellartracker-mcp/cellartracker-mcp
