Skip to main content
Glama

Is this price fair

dv_appraise
Read-onlyIdempotent

Compare an ad's price or a price you provide against similar Divar ads to see if it is high or low, with percentile, verdict, fair band and confidence.

Instructions

Is an ad's price (or a price you have in mind) high or low compared with similar ads? Percentile, verdict, confidence.

With a token: compares its price (or monthly rent) with similar ads found from its own breadcrumb (brand + district, widening step by step). Without: give price plus category/query/filters. Returns percentile (share of comparable ads that are cheaper), verdict ('insufficient comparables', with no lean either way, when confidence is low and the call would be "well below/above market"), vs_median_pct, the fair band p25-p75 and confidence (high: 40+ comparable ads at the first level, medium: 15+, else low). Comparisons ignore year, mileage, area and condition: refine with filters/query, or dv_compare against specific ads. Asking prices only.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
cityNoCity name or id; several comma-separated, e.g. 'تهران', 'mashhad', 'تهران,کرج'.تهران
pagesNoPages scanned per comparison level.
priceNoWithout a token: the price in Toman to check against the search below (monthly rent for rent categories).
queryNoFree text in title or description, e.g. 'پراید 111'.
tokenNoAn ad to appraise: its price is ranked against similar ads. Omit to appraise a price you give.
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'.
districtsNoNeighbourhood names or ids in the one city, e.g. ['ونک'].
brand_modelNoVehicles, phones: brand/model, e.g. ['پژو 206'].

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only cover safety (readOnly/idempotent/openWorld); the description adds the real behavioral substance: confidence thresholds (high 40+, medium 15+), the 'insufficient comparables' verdict when confidence is low, the widening breadcrumb strategy, and that comparisons ignore year/mileage/area/condition and reflect asking prices only.

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 question and the mode split, and nearly every clause earns its place. It is dense with nested parentheticals and confidence cutoffs, which slightly taxes readability but introduces 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?

With no output schema, the description carries return-value duty and does so fully (percentile, verdict, vs_median_pct, p25-p75 band, confidence) plus caveats. Both zero-required-parameter modes are explained, so an agent has everything needed to call it correctly.

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, but the description adds cross-parameter meaning the schema lacks: token vs price are alternate modes, price means monthly rent for rent categories, and breadcrumb widening derives from the ad. It stops short of documenting every parameter individually, which the schema already does.

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?

Opens with a specific, answerable question ('Is an ad's price ... high or low compared with similar ads?') and names the exact outputs (percentile, verdict, confidence). It distinguishes itself from sibling dv_compare by scoping to market-fairness appraisal rather than ad-to-ad comparison.

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?

Explicitly splits the two invocation modes: with `token` it appraises that ad via its own breadcrumb, without it you must supply `price` plus category/query/filters. It also routes the agent to `filters`/`query` for refinement and to dv_compare for specific-ad comparisons.

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