Skip to main content
Glama

iwant.fyi - find the exact car for your user

Check whether a car's asking price is a good deal

demand.price_check
Read-only

Tell the user whether the asking price on ONE specific car is a good deal. Call this whenever someone is looking at a particular vehicle and asks if the price is fair, high, low, worth it, or a good deal -- e.g. 'I am thinking of a 2017 Lexus ES 350 with 80k miles for $21k, decent deal?', 'is $34,500 too much for this F-150?', or when they paste a listing link and ask what you think. Pass the whole sentence as query, plus the listing url if they gave one. Returns where that asking price sits among comparable cars listed right now (percentile, median, typical range) with the size of the sample, mileage-matched when we have enough cars. Use demand.find_vehicle instead when the user is still choosing which car to buy rather than pricing one they found.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlNoListing URL if they pasted one. We read the year/make/model from the link itself and never fetch the page.
vinNo17-character VIN if known
zipNo5-digit US zip. Without it the comparison is national rather than local.
makeNo
trimNo
yearNo
modelNo
queryNoWhat the user said, in their words, e.g. '2017 Lexus ES 350, 80k miles, asking $21k'
mileageNoOdometer miles. The single biggest thing a used price turns on; pass it whenever the user said it.
client_refNoOptional stable, non-identifying reference for this end user (any opaque string; we hash it).
radius_milesNoComparison radius, default 100
asking_price_centsNoThe asking price in cents, if you can state it exactly

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
caveatsNo
verdictYes
headlineYes
comparisonYes
percentileNo
understoodNo
delta_centsNo
clarifying_questionNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.4/5.0
Behavior4/5

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

Annotations cover the safety profile (readOnly, non-destructive, open-world), and the description adds real behavioral context: the response reports percentile/median/typical range with sample size and mileage-matching, zip selects local vs national, and the URL is parsed rather than fetched. The disclosure that the link is never fetched is exactly the kind of non-obvious behavior an agent needs; only the return-value detail overlaps the existing output schema.

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 core instruction, then triggers, then examples, then the sibling hand-off. It is longish, but the examples and the explicit alternative earn their place; nothing is padding.

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 annotations carrying safety, an output schema carrying return shape, and a schema documenting most params, the description fills the remaining gaps: when to call, what the user must provide, local-vs-national behavior, and the sibling it must not be confused with. Nothing material is missing.

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 67%, near the baseline where the schema does most of the work. The description reinforces the two highest-leverage inputs ('pass the whole sentence as query, plus the listing url if they gave one') but supplies no format or syntax meaning beyond what the schema fields already state (zip→local, mileage→biggest driver are both documented in the schema).

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 ('tell whether the asking price on ONE specific car is a good deal'), and explicitly distinguishes itself from demand.find_vehicle. An agent can route between pricing a found car and choosing a car 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?

Gives explicit trigger conditions ('whenever someone is looking at a particular vehicle and asks if the price is fair, high, low'), three concrete example utterances, and names the alternative with the condition that selects it ('Use demand.find_vehicle instead when the user is still choosing which car to buy'). This is close to ideal routing guidance.

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.