Skip to main content
Glama

Price history of a product

em_price_history
Read-onlyIdempotent

Track a product's average price over roughly three months in about 3-day intervals and compare the first and last values to determine if the price is rising or falling.

Instructions

Get the price history of one Emalls product: the average price over time in about 3-day steps (last ~3 months).

Use it for "is the price rising or falling". Dates are Jalali, oldest first, aligned with the price lists; null = no price that day. summary compares first and last average.

Input Schema

NameRequiredDescriptionDefault
shop_idNoAdd this shop's own series (id from em_offers).
product_idYesProduct id from em_search.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv0.2.0
    • changedInput schema / properties / product_id / description
      Previous value: -"Emalls product id from em_search, e.g. 26506037."New value: +"Product id from em_search."
    • changedInput schema / properties / shop_id / description
      Previous value: -"Also return this shop's own price series (shop id from em_offers)."New value: +"Add this shop's own series (id from em_offers)."
  2. First observedv0.1.1

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so safety is covered. The description goes further by disclosing data shape: ~3-day granularity, ~3-month window, Jalali dates oldest-first, null for missing days, and that `summary` compares first and last averages. Those are meaningful behavior details beyond the annotations.

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-loads the core purpose in the first sentence, then packs useful caveats about dates, nulls and summary into short follow-ups. 'Aligned with the price lists' is slightly jargon-dependent, but there is no filler and every sentence contributes.

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

Completeness3/5

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

There is no output schema, so the description must carry return-value detail. It explains the date semantics, null handling and the `summary` comparison, but it never describes the actual response structure (e.g., series field names) or how the optional shop series is represented alongside the product series.

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 description coverage is 100%, and both parameters are already documented in the schema (product_id from em_search, shop_id from em_offers). The description adds no per-parameter meaning such as how shop_id affects alignment or what happens when it is null, so the baseline 3 applies.

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 ('Get the price history of one Emalls product') plus scope: average price in ~3-day steps over the last ~3 months. That is enough to distinguish it from siblings like em_offers (current offers) or em_compare without opening a schema.

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?

Gives a concrete triggering question ('is the price rising or falling'), which tells the agent when this tool is appropriate. It does not name alternatives or exclusions (e.g., that current prices belong in em_offers), so it falls short of a 5.

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