Skip to main content
Glama
hamrah-mechanic-mcp

hamrah-mechanic-mcp

by sepehr071

Price history of one trim

hm_price_history
Read-onlyIdempotent

Retrieve six months of market price history for a specific car trim and year, plus today's price range and prices for other years of the same trim.

Instructions

Get the monthly market-price history of one trim and year, with today's price range and the same trim's other years.

Take brand (price_brand), model, year and type_id from hm_prices rows. History is about six monthly points. For a quick range use hm_price_estimate.

Input Schema

NameRequiredDescriptionDefault
adsNoHow many cars of this trim for sale to include.
yearYesSolar Hijri (1397) for Iranian cars, Gregorian (2017) for imports.
brandYesBrand slug from hm_brands, e.g. kia, saipa.
modelYesModel slug from hm_models, e.g. kiacerato.
type_idYesTrim id from hm_prices rows.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changedv0.2.0
    • changedInput schema / properties / brand / description
      Previous value: -"Brand slug from hm_brands, e.g. kia, saipa, irankhodro."New value: +"Brand slug from hm_brands, e.g. kia, saipa."
    • changedInput schema / properties / model / description
      Previous value: -"Model slug from hm_models, e.g. optima, kiacerato, peugeot207."New value: +"Model slug from hm_models, e.g. kiacerato."
    • changedInput schema / properties / type_id / description
      Previous value: -"Trim id (carTypeId) from hm_prices rows or hm_models."New value: +"Trim id from hm_prices rows."
    • changedInput schema / properties / year / description
      Previous value: -"Model year as the site shows it: Solar Hijri (1397) for Iranian cars, Gregorian (2017) for imports."New value: +"Solar Hijri (1397) for Iranian cars, Gregorian (2017) for imports."
  2. First observedv0.1.1

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so safety is covered. The description adds real behavioral context beyond them: the result covers 'about six monthly points', includes today's range, and appends the same trim's other years — effectively disclosing the return shape in the absence of an output schema. It stops short of noting rate limits, whether history is sparse for new trims, or how the 'ads' sample affects results.

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?

Two tight sentences with the capability front-loaded and the alternative placed last. The parenthetical '(`price_brand`)' interrupts the parameter list and could read as a mismatched field name, costing a point on clarity.

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?

With five parameters, no output schema, and no nested objects, the description does the work of conveying the return payload (six monthly points, today's range, other years) and the lookup prerequisite. It is adequate to call the tool correctly, though a hint about the shape of the 'other years' section or sparse-history behavior would fully close the gap.

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; the description earns above that by mapping the required inputs back to their source ('from hm_prices rows') and flagging the brand argument as the 'price_brand' column, which is useful chaining information not present in the schema. The parenthetical alias is slightly ambiguous against the schema's plain 'brand' property, which keeps it from a 5.

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 first sentence names a specific verb and resource ('Get the monthly market-price history of one trim and year') plus the payload ('today's price range and the same trim's other years'), which is more than a restatement of the name. It also names the sibling it is not ('For a quick range use hm_price_estimate'), so an agent can route correctly without opening either 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?

The description supplies a concrete prerequisite ('Take brand, model, year and type_id from hm_prices rows'), telling the agent it must look up hm_prices first to obtain type_id. It also names the alternative tool and the condition that selects it ('For a quick range'), which is exactly the when-to-use-vs-alternative guidance this dimension rewards.

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