Skip to main content
Glama

divux

Shopper: compare prices

compare_prices
Read-only

Compare current offers for one chosen product across US stores, ranked by price (item plus shipping where the store lists it, tax excluded). Use this at the buy step: the user asks where to buy it, what it costs at different stores, whether a price or sale is a good deal, if it's cheaper somewhere else, or for the link; pass a product_id from search_products. Returns the top 3 offers by default (detail=true for up to 8) and a status that says plainly when no offers exist, so never guess a price. Each offer links to its divux page, where the user picks a store. Do not use to buy or check out.

Input Schema

NameRequiredDescriptionDefault
detailNofalse: top 3 offers (default, best for chat and voice). true: up to 8.
conditionNonew (default) unless the user asks for used, open-box or refurbished; 'used' covers all of those; 'any' shows everything.new
product_idYesProduct id from search_products
include_out_of_stockNo

Output Schema

NameRequiredDescriptionDefault
specsYesKey features and attributes from the product data, for comparing products; divux doesn't judge them
offersYes
spokenYesOne sentence to say aloud on voice devices; details stay on the link
statusYes
omittedYes
productYes
rankingYes
coverageYes
disclosureYes
more_offersYes
price_scopeYesWhat the prices are: each store's online price for delivery in the US, not local in-store prices
sample_dataYes
generated_atYes
other_conditionsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedOutput schema / properties / price_scope
      Added value: +{
      +  "description": "What the prices are: each store's online price for delivery in the US, not local in-store prices",
      +  "type": "string"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "sample_data",
      -  "generated_at",
      -  "product",
      -  "specs",
      -  "spoken",
      -  "ranking",
      -  "status",
      -  "other_conditions",
      -  "more_offers",
      -  "offers",
      -  "coverage",
      -  "omitted",
      -  "disclosure"
      -]New value: +[
      +  "sample_data",
      +  "generated_at",
      +  "product",
      +  "specs",
      +  "spoken",
      +  "price_scope",
      +  "ranking",
      +  "status",
      +  "other_conditions",
      +  "more_offers",
      +  "offers",
      +  "coverage",
      +  "omitted",
      +  "disclosure"
      +]
  2. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already declare readOnly/openWorld/non-destructive, and the description still adds real context: price ranking includes item plus shipping where listed and excludes tax, default return of top 3 versus up to 8 with detail=true, and an explicit status signaling when no offers exist so the agent never fabricates a price. It also discloses the downstream flow (offer links to a divux page where the user picks a store).

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 purpose and ranking semantics, then usage triggers, then return behavior and exclusions — a good information order. Minor redundancy in restating the top-3/up-to-8 default already covered by the schema keeps it off a 5.

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?

An output schema exists, so the description needn't detail return values, yet it usefully explains the offer shape and the no-offers status. The one gap is the unmentioned condition/include_out_of_stock parameters, which could matter when the user asks about used or refurbished listings.

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?

Schema coverage is 75% and the schema already documents detail, condition, and product_id, so the baseline is 3. The description restates detail and product_id but never mentions 'condition' or 'include_out_of_stock' (the latter has no schema description at all), so it adds no meaning beyond structured fields.

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 and resource ('Compare current offers for one chosen product across US stores, ranked by price') with the ranking basis spelled out. It also implicitly separates itself from search_products, which supplies the product_id, so an agent knows this is the post-search, buy-step tool.

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 an explicit trigger ('Use this at the buy step'), enumerates the user phrasings that select it (where to buy, cost at different stores, good deal, cheaper elsewhere, the link), states the prerequisite (a product_id from search_products), and names the exclusion ('Do not use to buy or check out').

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