Skip to main content
Glama

vokse

Product spend summary

summarize_receipt_items
Read-only

Per-product summary across all receipt photos: how many times it was bought, total spent, and the unit price (quantity-weighted average, min, max, latest) per base unit (kg, l, unit), plus where it was bought. Answers "how much am I paying per kilo of apples", "what is the most expensive thing I buy at the supermarket" (sort=unitPrice, merchant=...), "what do I buy most often" (sort=frequency). Always say the unit when you quote a price.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
qNoProduct words; every word must match.
sortNospend (default), unitPrice or frequency, highest first; name, A to Z.
limitNoHow many products. Defaults to 20.
dateToNoPurchases on or before this day, YYYY-MM-DD.
dateFromNoPurchases on or after this day, YYYY-MM-DD.
merchantNoOnly shops whose name contains this text.
householdIdNoHousehold ULID to act on. Call list_households for the covered households; may be omitted only when the connection covers exactly one.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changed
    • addedInput schema / properties / dateFrom / description
      Added value: +"Purchases on or after this day, YYYY-MM-DD."
    • addedInput schema / properties / dateTo / description
      Added value: +"Purchases on or before this day, YYYY-MM-DD."
    • addedInput schema / properties / limit / description
      Added value: +"How many products. Defaults to 20."
    • addedInput schema / properties / merchant / description
      Added value: +"Only shops whose name contains this text."
    • addedInput schema / properties / q / description
      Added value: +"Product words; every word must match."
    • addedInput schema / properties / sort / description
      Added value: +"spend (default), unitPrice or frequency, highest first; name, A to Z."
  2. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Beyond the readOnlyHint/destructiveHint annotations, the description explains the aggregation semantics in detail: quantity-weighted average, min, max, latest price per base unit, normalization to kg/l/unit, and inclusion of purchase locations. It also adds the critical output instruction to always state the unit when quoting a price. No behavioral surprises are hidden.

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

Conciseness5/5

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

The description is front-loaded with the core summary behavior, then efficiently demonstrates use cases with concrete query phrases. It includes no filler, and every sentence contributes either scope, calculation detail, or an invocation example.

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

Completeness4/5

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

For a tool with no output schema, the description compensates well by explaining what the response contains and even how to quote prices. It is largely complete given the rich parameter schema and annotations; the only minor gap is the lack of explicit differentiation from closely related sibling tools.

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

Parameters3/5

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

The input schema already documents all 7 parameters at 100% coverage, so the schema carries the main weight. The description adds useful context—such as combining merchant with sort=unitPrice for a 'most expensive at this shop' query—but it does not materially expand parameter-level semantics beyond what the schema already provides.

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?

The description starts with a specific verb and resource: 'Per-product summary across all receipt photos', then enumerates the exact metrics computed (frequency, total spent, quantity-weighted average/min/max/latest unit price, purchase locations). This clearly distinguishes it from listing or raw search tools.

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

Usage Guidelines4/5

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

It gives concrete example questions and maps them to sort and merchant values ('sort=unitPrice, merchant=...', 'sort=frequency'), which tells an agent how to invoke the tool for common intents. It does not, however, explicitly state when to avoid this tool in favor of siblings like search_receipt_items or receipt_item_price_history.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources