Skip to main content
Glama

Voxcars (Portugal)

get_price_stats

Read-onlyIdempotent

Get price statistics for a slice of the Portugal used-car market: how many listings match, the median price, the p25–p75 range, the median price per kilometre and a breakdown by body type. Use this when the user asks what something costs, whether an asking price is fair, or how two makes compare — instead of listing individual cars. Takes the same filters as search_cars and describes exactly the set that tool would return, so the two never disagree. Reports medians and quartiles rather than averages, because car prices have a long right tail and a single luxury listing moves an average.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
fuelNoFuel type. GASOLINE = gasolina, ELECTRIC = eléctrico, HYBRID = full hybrid, PLUG_IN_HYBRID = PHEV.
makeNoMake slug (e.g. toyota, bmw, volkswagen). Not free text — the slug is the same in every market.
kmMaxNoMaximum kilometres on the odometer.
modelNoModel slug (e.g. corolla, serie-3, golf). Requires `make` to disambiguate.
yearMaxNoMaximum registration year.
yearMinNoMinimum registration year.
bodyTypeNoBody style. SEDAN = berlina, HATCHBACK = citadino, COMBI = carrinha, CABRIO = descapotável, MINIVAN = monovolume.
districtNoDistrict or region inside the market (e.g. Lisboa, Porto, Berlin, Madrid). Matched exactly.
priceMaxNoMaximum price in the market currency. Listings with no published price are excluded by either bound.
priceMinNoMinimum price in the market currency.
conditionNoVehicle condition. new = 0 km / registered this year; semi_new = <2 years and <20 000 km; used = everything else.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
countYesListings matching the filters, with or without a published price.
priceNoPrice distribution, in percentiles. null when no matching listing publishes a price. There is deliberately no min or max: listings come from third-party sources and the extremes are set by data errors, not by the market.
marketYes
pricedYesSubset with a published price — the base of every figure below. A large gap to `count` means many listings in this slice are 'price on request'.
currencyYes
byBodyTypeYesUp to 6 most represented body types, each with its own median.
pricePerKmMedianNoMedian price per kilometre on the odometer, in the listing currency (order of magnitude 0.05–3). Small = the car has done a lot for its price.

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, and destructiveHint, so the description does not need to repeat basic safety. It adds meaningful behavioral context beyond the schema: it reports medians and quartiles rather than averages and explains why, and it guarantees consistency with search_cars by describing exactly the same listing set.

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 four purposeful sentences: what it returns, when to use it, how its filter semantics relate to search_cars, and why it uses medians. Every sentence adds information and there is no filler.

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?

Given the output schema exists and the annotations cover safety traits, the description provides everything an agent needs: purpose, output metrics, usage conditions, filter relationship to a sibling, and statistical rationale. No material information 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 description coverage is 100%, so the schema already documents all 11 parameters thoroughly. The description adds the useful context that the filters are identical to search_cars, but it does not need to compensate for gaps, so the baseline 3 is appropriate.

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 opens with a specific verb and resource: 'Get price statistics for a slice of the Portugal used-car market' and enumerates the exact statistics returned. It clearly distinguishes itself from search_cars by stating it aggregates rather than lists individual cars.

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?

It explicitly says when to use the tool: when the user asks what something costs, whether a price is fair, or how two makes compare, 'instead of listing individual cars.' It also names the sibling search_cars and clarifies that both tools share filters, giving the agent a clear routing rule.

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.

TDQS

A4.1/5.0
Disambiguation4/5

Most tools have clear boundaries: search_cars handles structural queries, search_cars_by_description handles descriptive queries, and find_similar_cars finds alternatives to a reference listing. There is some overlap between search_cars and find_similar_cars when finding comparable cars, but the descriptions clarify which to use for each intent.

Naming Consistency4/5

Names broadly follow a verb_noun pattern: search_cars, get_car_detail, get_price_stats, search_articles. The main inconsistency is mixing 'search' and 'find' verbs, and search_cars_by_description is longer and less symmetric than the others, but the pattern remains readable and predictable.

Tool Count5/5

Six tools is well-scoped for a car search and market-analysis server. Each tool serves a distinct user need from listing search to price statistics to editorial content, with no redundancy or bloat.

Completeness5/5

The tool surface covers the complete read-only lifecycle of a car-search domain: structural search, descriptive search, similar-car discovery, detail retrieval, market-level price stats, and supporting editorial articles. No obvious dead ends or missing operations within the stated purpose.

Resources