Skip to main content
Glama
sheypoor-mcp

sheypoor-mcp

by sepehr071

Search ads

sp_search
Read-onlyIdempotent

Search Sheypoor classified ads by keyword, city, category, price, and attributes to find cars, real estate, goods, jobs, or services; retrieve ad counts and sort results for market research.

Instructions

Search Sheypoor classified ads (cars, real estate, goods, jobs, services) by words, city, category and price.

Call sp_ad with an ad id for details; sp_filters first for attribute filters. price is Toman (null = negotiable, see price_text); 1,000 is a placeholder, so set min_price when sorting by price. Rentals carry prices ({رهن deposit, اجاره rent}). nearby and promoted ads may not match your filters. matching is the real match count; total includes padding. For a median use sp_price_summary.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "sp_search"
  }
}

Input Schema

NameRequiredDescriptionDefault
cityNoCity or province slug from sp_cities, e.g. tehran. 'iran' = all Iran.iran
pageNo24 ads per page.
sortNoCars also: km and year orders.newest
limitNoMax ads.
queryNoPersian words, e.g. پراید.
filtersNoFilters from sp_filters as {name: value}: a<id> option id, mn<id>/mx<id> range ends (mn68101: '1400' = year from).
categoryNoSlug from sp_categories (car, mobile-phone) or sp_filters path (car/peugeot/206). Omit for all.
max_priceNoHighest price, Toman.
min_priceNoLowest price, Toman.
neighbourhoodsNoNeighbourhood ids from sp_filters(area=...), e.g. ['888']. City-level only.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.0

TDQS

A4/5.0
Behavior3/5

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

The description adds substantial context beyond the readOnly/idempotent/openWorld annotations: price is Toman with null meaning negotiable and 1,000 as a placeholder, rentals return a `prices` object with deposit/rent, and `nearby`/`promoted` ads may not match the filters. It also warns that `matching` is the true count while `total` includes padding. However, it does not describe result shape or pagination behavior beyond what the page parameter implies.

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?

Purpose is front-loaded in the first sentence, followed by a tight block of caveats; nearly every clause carries informational weight. The caveat block is telegraphic and dense, which slightly hurts readability but wastes little space.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a ten-parameter search tool with no output schema, the description covers the critical gotchas (price units, placeholder values, rental pricing, unmatched nearby/promoted ads, matching vs total). It stops short of describing the ad record fields an agent would receive, which is a meaningful gap when no output schema exists.

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 all ten parameters are already documented in the schema; the baseline is 3. The description does add meaning the schema lacks — the Toman unit, the null/negotiable and 1,000-placeholder conventions, and the advice to set min_price when sorting by price — which is genuinely useful but not applied to most parameters.

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 verb+resource ("Search Sheypoor classified ads") and enumerates the searchable dimensions (words, city, category, price). It also names the sibling tools it is not (sp_ad for details, sp_filters for attribute filtering, sp_price_summary for medians), so an agent can route correctly 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 Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states the workflow: call sp_ad with an id for details, call sp_filters first for attribute filters, and use sp_price_summary for a median. Each alternative is paired with the condition that selects it, leaving no inference required.

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