Skip to main content
Glama

Price trend

dv_price_trend

Track daily median asking prices for a Divar search; each run stores today's median and returns a 90-day trend with percent change.

Instructions

The median asking price of a search over the days you have checked it: records one point per day in a local file.

Divar keeps no price history, so the trend starts with your first call and grows each day you call it again (a scheduler helps). Each call scans the newest pages pages, stores median / quartiles / count for today (a second call the same UTC day replaces it) and returns the last 90 points with change_pct since the previous day. Use a narrow query: a mixed category's median is noise. For a one-off distribution use dv_market.

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'.
recordNoStore today's median so later calls can show the trend.
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.5/5.0
Behavior4/5

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

Annotations only say readOnlyHint=false, idempotentHint=false, destructiveHint=false, openWorldHint=true. The description explains the write side effect that makes this non-readOnly (one point per day persisted to a local file), the replacement behavior on a second same-day call, and the fact that history only starts from the first call and can never be back-filled. That is meaningful context beyond the annotations, though it says nothing about failure modes or file location.

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 what the tool produces, then the mechanics, then the caveat and the alternative. Four dense sentences, each carrying information; slightly long but no filler and no repetition of the name.

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 8 optional params, nested filters and no output schema, the description compensates by describing the return shape (last 90 points plus change_pct) and the persistence model. It lacks detail on the `filters` object (delegated to dv_filters) and on what happens when zero results are recorded, leaving minor gaps.

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 description coverage is 100%, so baseline is 3, but the description ties parameters to behavior: `pages` defines the scan scope, `record` controls whether today's median is persisted, and `query`/category narrowness determines whether the median is meaningful. It stops short of documenting city/districts/brand_model beyond 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 precise verb+resource: it records the median asking price of a search, one point per day, in a local file, and returns a 90-point series with change_pct. It explicitly names the sibling it is not (dv_market for one-off distributions), so an agent can separate the two without opening a 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 concrete when-to-use guidance (call daily, a scheduler helps), an explicit exclusion/alternative ('For a one-off distribution use dv_market'), and a query-quality constraint ('Use a narrow query: a mixed category's median is noise'). It also states the repeat-call semantics (same UTC day replaces today's point).

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