Skip to main content
Glama

Market price statistics

dv_market
Read-onlyIdempotent

Gauge Divar market asking prices by computing min, median, percentiles, and mean, plus district and daily trends. Narrow filters help avoid misleading medians.

Instructions

Asking-price statistics of a search: min, p10, p25, median, p75, p90, max, mean; split by district and by day.

Scans the newest pages pages (about 25 ads each) and drops negotiable and suspect prices (excluded) and, from the statistics, prices under a tenth of the median. Sale searches give price; rentals give rent and deposit (Toman). by_district lists the busiest neighbourhoods with ad count and median; per_day shows how many ads were posted per UTC date and their median, a rough trend. These are what sellers ask, not what deals close at, and a sample of the newest ads, not the whole market: use a narrow query or filters (one model, one area) for a meaningful median. Next: dv_cheapest, dv_best_for_budget, dv_appraise.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
cityNoCity name or id; several comma-separated, e.g. 'تهران', 'mashhad', 'تهران,کرج'.تهران
pagesNoResult pages to merge, about 25 ads each.
queryNoFree text in title or description, e.g. 'پراید 111'.
recentNoPublished within '3h', '12h', '1d', '3d' or '7d'.
excludeNoDrop ads whose title has any of these words.
filtersNoOther category filters (keys from dv_filters): {'size': {'min': 80, 'max': 120}, 'rooms': ['دو'], 'parking': true}. Unknown keys are returned in `ignored`.
categoryNoCategory slug or Persian name, e.g. 'light' (cars), 'apartment-sell', 'apartment-rent', 'mobile-phones'.
keywordsNoWords that must all be in the title.
districtsNoNeighbourhood names or ids in the one city, e.g. ['ونک'].
has_photoNoOnly ads with photos.
max_priceNoToman; monthly rent in rent categories.
min_priceNoToman; monthly rent in rent categories.
brand_modelNoVehicles, phones: brand/model, e.g. ['پژو 206'].
max_depositNoRent categories: deposit (ودیعه) in Toman.
min_depositNoRent categories: deposit (ودیعه) in Toman.
max_age_hoursNoOnly ads bumped within this many hours.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.4/5.0
Behavior5/5

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

Annotations declare only the safety profile (readOnly, openWorld, idempotent, non-destructive); the description adds substantial behavioral detail beyond that: it scans only the newest `pages` pages, drops negotiable/suspect prices into `excluded`, trims prices below a tenth of the median, returns `price` for sales vs `rent`/`deposit` for rentals, and explicitly warns these are asking prices from a newest-ads sample, not closed deals.

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 return statistics and the key sampling caveat, then details `by_district`/`per_day` and next steps. Slightly repetitive (the district/day split is announced up front and re-explained later), but every sentence carries information for a 16-parameter tool with no output schema.

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 no output schema, the description fully covers the return surface (min/percentiles/median/mean, `by_district` with ad count and median, `per_day` counts and medians, `excluded`) plus the sample-vs-market caveat, which is exactly what an agent needs to interpret the numbers.

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 100%, so the schema already documents all 16 parameters, including the '~25 ads per page' meaning of `pages`. The description reinforces the sale-vs-rental price interpretation (relevant to min_price/max_price) but adds little syntax or format detail beyond the schema, 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+resource: computing asking-price statistics (min, p10–p90, median, mean) for a search, split by district and by day. An agent can tell this apart from dv_count (a count), dv_price_trend (a trend over time) and dv_cheapest (a listing) without opening any 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 concrete context for meaningful use ('use a narrow query or filters (one model, one area) for a meaningful median') and routes the agent onward with 'Next: dv_cheapest, dv_best_for_budget, dv_appraise.' It lacks an explicit when-not-to-use statement, but the sampling caveat effectively delimits when this tool is appropriate.

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