Skip to main content
Glama
slavins-co

CellarTracker MCP

by slavins-co

bottle-details

Read-only

Look up individual wine bottles in a CellarTracker cellar by name, location, bin, size, barcode, or state to retrieve per-bottle details and consumption status.

Instructions

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 Schema

TableJSON Schema
NameRequiredDescriptionDefault
binNoSpecific bin/position (e.g. 'Drawer 2', '1-3')
sizeNoBottle format (e.g. '750ml', '1500ml')
queryNoWine name search term
stateNoWhich bottles: 'cellar', 'consumed', or 'all' (default)
offsetNoResult offset for pagination (default 0)
barcodeNoBottle barcode — e.g. read from a photo
locationNoStorage location (e.g. 'Wine Fridge')
max_resultsNoMaximum results (default 25)

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
countYes
totalYes
offsetYes
bottlesYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv0.5.1
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • changedOutput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
  2. First observedv0.5.0

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so safety is covered. The description adds real behavioral context beyond that: Location/Bin are account-specific labels rather than physical descriptions, the default state='all' silently includes consumed bottles, and results are paged. It does not cover error/auth behavior, but the added context is substantial.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the identity of the resource, then filters, then the photo workflow, then the fallback, then pagination — a logical order. It is dense and long, but nearly every clause carries non-obvious information; only the enumeration of filter fields overlaps the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description needn't describe return values, and it doesn't. For an 8-parameter read tool it covers defaults, pagination, the photo/barcode path, and the account-specific-label edge case, leaving nothing an agent needs to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds meaning the schema does not: state='all' is the default and includes consumed bottles, max_results defaults to 25 per page, offset pages through results, and barcode can be sourced from a photo. These are operational semantics, not restatements.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('look up') and resource ('individual bottles from the Bottles table') and explicitly scopes it as the per-bottle view, distinguishing it from the aggregate siblings search-cellar and cellar-stats. An agent can tell what it returns (barcode, location/bin, size) without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit when-to-use conditions (filter by name/location/bin/size/barcode; state='cellar' vs 'all'), a concrete workflow for photo attachments (read barcode digits from image), and a named fallback ('use cellar-stats with group_by=location or group_by=bin') when a label filter returns nothing. Alternatives and exclusions are both covered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.