# Sheypoor Classifieds (pypi · sheypoor-mcp)

Read-only Sheypoor (sheypoor.com) classifieds: search ads, ad details, price summaries.

- Trust score: 79/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- pypi · `sheypoor-mcp`: 79/100 (this document), [markdown](https://verifymcp.io/servers/sepehr071-sheypoor-mcp/sheypoor-mcp.md), [page](https://verifymcp.io/servers/sepehr071-sheypoor-mcp/sheypoor-mcp)

## Channel facts

- Registry: `pypi`
- Package: `sheypoor-mcp`
- Version: `0.1.0`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Supply Chain Security**: 100/100
  - No malware found by supply-chain analysis.
  - No known CVEs affecting this package version or its production dependencies.
  - Runs hatchling.build at install time, a recognised build step with no custom scripting around it.
  - 1 of 35 dependencies flagged as unhealthy.
- **Provenance & Transparency**: 97/100
  - Source repository is publicly reachable at the declared URL.
  - Cryptographically verified build provenance (signed, bound to sepehr071/sheypoor-mcp).
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 3 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 62/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 3197 tokens (~290/item across 11 items; 11 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 11 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 12 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).

**Unverified: 1 category.** A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

## Install

### How do I install the Sheypoor Classifieds MCP server?

Sheypoor Classifieds runs locally as a PyPI package, launched with uvx sheypoor-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add sepehr071-sheypoor-mcp -- uvx sheypoor-mcp
```

### Cursor

```json
{
  "mcpServers": {
    "sepehr071-sheypoor-mcp": {
      "command": "uvx",
      "args": [
        "sheypoor-mcp"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "sepehr071-sheypoor-mcp": {
      "command": "uvx",
      "args": [
        "sheypoor-mcp"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add sepehr071-sheypoor-mcp -- uvx sheypoor-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "sepehr071-sheypoor-mcp": {
      "type": "local",
      "command": [
        "uvx",
        "sheypoor-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add sepehr071-sheypoor-mcp --command uvx --arg sheypoor-mcp
```

### Hermes

```yaml
mcp_servers:
  sepehr071-sheypoor-mcp:
    command: "uvx"
    args: ["sheypoor-mcp"]
```

### Netclaw

```json
{
  "McpServers": {
    "sepehr071-sheypoor-mcp": {
      "Transport": "stdio",
      "Command": "uvx",
      "Arguments": [
        "sheypoor-mcp"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add sepehr071-sheypoor-mcp -t stdio -c uvx -a sheypoor-mcp
```

### Other

```json
{
  "mcpServers": {
    "sepehr071-sheypoor-mcp": {
      "command": "uvx",
      "args": [
        "sheypoor-mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-04 (score 79, +15)

- [security improvement] Malware scan: unverified → pass

### 2026-11-03 (score 64, −15)

- [security regression] Malware scan: pass → unverified

### 2026-11-02 (score 79, +15)

- [security improvement] Malware scan: unverified → pass

### 2026-11-01 (score 64)

First indexed and scored.

## MCP tools (11)

### `sp_search` (~557 tokens)

Search ads

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

Use it to find ads or see what is on sale; call sp_ad with an ad `id` for the full text, seller and all
attributes. Slugs come from sp_cities and sp_categories; for attribute filters (year, brand, colour, gearbox,
area...) call sp_filters first. `price` is in Toman (null when the seller wrote negotiable: see `price_text`);
prices of 1,000 Toman are placeholders. Rentals carry `prices` ({رهن deposit, اجاره rent}; `price` is the first
of them). Use `neighbourhoods` (ids from sp_filters area=...) for areas inside a city. `nearby` ads are from around the city: the site adds them when few
ads match inside it. `promoted` ads are paid showcase slots and may not match your filters exactly. `matching` is the count of real matches; `total` also counts nearby/padding ads. Sorting by price puts placeholder prices first:
set min_price to skip them. For a median or range of prices use sp_price_summary instead.

Input parameters:

- `category`: Category slug from sp_categories (e.g. car, apartment-sell, mobile-phone) or a brand/model path from sp_filters (car/peugeot, car/peugeot/206). Omit to search every category.
- `city` (string): City or province slug from sp_cities, e.g. tehran, mashhad, tehran-province. 'iran' = all Iran.
- `filters`: Extra filters from sp_filters as {name: value}: a<id> takes an option id (a69150: '445100'), mn<id>/mx<id> are range ends (mn68101: '1400' = year from).
- `limit` (integer): Max ads to return (1-40).
- `max_price`: Highest price in Toman.
- `min_price`: Lowest price in Toman, e.g. 100000000.
- `neighbourhoods`: Neighbourhood ids from sp_filters(area=...) to search inside (up to 10), e.g. ['888', '974']. City-level only.
- `page` (integer): Page number, 24 ads each.
- `query`: Words to search in ads, Persian, e.g. پراید or آیفون 13.
- `sort` (string): Order: newest (default), cheapest, priciest; cars also lowest_km, highest_km, oldest_year, newest_year.

### `sp_ad` (~170 tokens)

Ad details

Get one Sheypoor ad in full: description, price, location, seller, every attribute and photo links.

\`id` comes from sp_search. `city_slug` and `category_slug` plug straight into sp_search; sp_similar finds
comparable ads. Rentals have `prices` (رهن deposit, اجاره rent) instead of one price. The seller's phone number needs a Sheypoor login and is not available here (the
site shows it masked); open `url` in a browser to contact the seller. For a list of similar ads call
sp_search with the same category.

Input parameters:

- `id` (string, required): Ad id from sp_search, e.g. 468673507.
- `photos` (integer): How many photo URLs to include (0-10).

### `sp_price_summary` (~381 tokens)

Price summary for a search

Summarise asking prices of the newest ads for a search: count, min, median, quartiles, max, plus cheapest and priciest ads.

Use it to answer "what does X cost on Sheypoor". It samples the newest ads (up to 5 pages), so it shows
current asking prices, not sold prices. Ads without a numeric price and placeholder prices under 10,000
Toman are left out. Narrow the query (year, brand, city via sp_filters/sp_cities) for a useful median.
Values are in Toman.

Input parameters:

- `category`: Category slug from sp_categories (e.g. car, apartment-sell, mobile-phone) or a brand/model path from sp_filters (car/peugeot, car/peugeot/206). Omit to search every category.
- `city` (string): City or province slug from sp_cities, e.g. tehran, mashhad, tehran-province. 'iran' = all Iran.
- `filters`: Extra filters from sp_filters as {name: value}: a<id> takes an option id (a69150: '445100'), mn<id>/mx<id> are range ends (mn68101: '1400' = year from).
- `max_price`: Highest price in Toman.
- `min_price`: Lowest price in Toman, e.g. 100000000.
- `neighbourhoods`: Neighbourhood ids from sp_filters(area=...) to search inside (up to 10), e.g. ['888', '974']. City-level only.
- `pages` (integer): How many result pages (24 ads each) to sample, 1-5.
- `query`: Words to search in ads, Persian, e.g. پراید or آیفون 13.

### `sp_categories` (~110 tokens)

Categories

List Sheypoor's categories with the slug sp_search and sp_filters take, grouped under 11 top-level groups.

Pass `query` to keep only matching groups or categories. Brands and models of cars live one level deeper:
sp_filters(category="car") lists their slugs (e.g. car/peugeot). Use the slug of a sub-category alone
(car, not vehicles/car).

Input parameters:

- `query`: Part of a category name or slug to filter by, e.g. خودرو or apartment.

### `sp_cities` (~119 tokens)

Cities and provinces

Find the city or province slug that sp_search, sp_price_summary and sp_filters take.

With `query`, returns matching cities (slug, province); a province slug also works as `city` and covers
every city in it. Without `query`, lists the 31 provinces with their slugs and number of cities.

Input parameters:

- `limit` (integer): Max cities to return (1-50).
- `query`: Part of a city or province name or slug, e.g. مشهد or isfahan. Omit to list provinces.

### `sp_filters` (~386 tokens)

Filters of a category

List the filters, sort orders, sub-categories (car brands, models) and neighbourhoods Sheypoor offers in one category.

Call this before using `filters` in sp_search or sp_price_summary; every category has its own (cars: year, km,
gearbox; sale: meterage mn68085/mx68085, rooms; rent: deposit mn68090 and rent mn68092; jobs: salary, contract).
Each filter has a `name` (a<id>, mn<id>, mx<id>) and, for choices, `options` as {id, label}: pass {name: id}.
Range filters list min/max names (pass a plain number, e.g. mn68101='1400'). Yes/no filters have
\`value` '1' (pass {name: '1'}); number filters take a plain number. `subcategories` slugs (car/peugeot,
then car/peugeot/206) go in `category`. `neighbourhoods` (id, name, ads) go in sp_search `neighbourhoods`; pass
\`area` to search the full list by name. The nearest-first sort needs the visitor's GPS and is not offered.
Prices use min_price/max_price instead.

Input parameters:

- `area`: Part of a neighbourhood name to look up its id, e.g. پونک. Needs a city (not 'iran').
- `category` (string, required): Category slug from sp_categories, e.g. car, houses-apartments-for-sale, house-apartment-for-rent, jobs sub-categories like driver. A brand path (car/peugeot) lists its models.
- `city` (string): City or province slug from sp_cities, e.g. tehran, mashhad, tehran-province. 'iran' = all Iran.

### `sp_similar` (~195 tokens)

Similar ads

Find ads comparable to one ad: same city and deepest category (car model...), price within a percent band.

Use it to judge whether an ad is cheap or dear, or to find alternatives; the `id` comes from sp_search. If fewer
than 3 ads match, it widens to the parent category (car/hyundai/creta -> car/hyundai) and says so in
\`category`. Rentals and ads without a numeric price are matched by category only. Newest first; the ad itself
and paid showcase ads are left out. For the price distribution of the category use sp_price_summary.

Input parameters:

- `id` (string, required): Ad id from sp_search, e.g. 468673507.
- `limit` (integer): Max ads to return (1-24).
- `price_range_pct` (integer): Keep ads priced within this percent of the ad's price (5-100).

### `sp_shops` (~203 tokens)

Internet shops

List Sheypoor's internet shops and agencies (real-estate offices, car dealers...) in a city and group.

Use it to find businesses rather than single ads; call sp_shop with a shop `slug` for its details and ads.
\`category` is a top-level group (real-estate, vehicles...), not a sub-category such as car. Shops with no
ads are left out (the site lists them but their page is gone), so a page may hold fewer than `limit` shops.

Input parameters:

- `category`: Top-level group slug from sp_categories, e.g. real-estate, vehicles, jobs, home, electronics. Omit for all.
- `city` (string): City or province slug from sp_cities, e.g. tehran, mashhad, tehran-province. 'iran' = all Iran.
- `limit` (integer): Shops per page (1-24).
- `page` (integer): Page number.

### `sp_shop` (~111 tokens)

Shop details

Get one internet shop or agency: name, hours, group, its agents and its current ads.

\`slug` comes from sp_shops (or `seller.shop` ads from sp_ad). Phone numbers are masked on the site and left out.
Each ad has an `id` for sp_ad.

Input parameters:

- `limit` (integer): Max of the shop's ads to return (0-24).
- `slug` (string, required): Shop slug from sp_shops, e.g. amlakalijenabtehran.

### `sp_car_prices` (~232 tokens)

Daily car prices

Get Sheypoor's daily car price list (قیمت روز خودرو): market price and factory price per model and year, with the day's change.

Use it for "what is a 1404 Tiba worth today" or to check an ad's price against the market average; it is
Sheypoor's average of market quotes, not ads. `market` is the open-market price, `factory` the maker's list
price (null = none). Values are in Toman; `change_pct` is today's move of the market price. For real ad
prices use sp_price_summary instead.

Input parameters:

- `group`: Maker group: saipa-group, iran-khodro-group, domestic-group, foreign-group, modiran-group, kerman-group. Omit for all.
- `limit` (integer): Max models to return (1-60).
- `query`: Brand or model words, Persian or English, e.g. پراید, 206, Tiba, هایما.
- `year`: Model year as listed, e.g. 1404 or 2023.

### `sp_area_prices` (~244 tokens)

Prices per neighbourhood

Compare asking prices between neighbourhoods of a city: median price, price per square metre, rent and deposit.

Use it for "where is renting cheapest in Tehran" or "price per metre in Pounak vs Saadat Abad". It samples each
area's newest 24 ads (one request per area), so medians are rough. Sale ads give `median_price` and, with
meterage, `median_per_m2`; rentals give `median_deposit` and `median_rent`. Values in Toman. Pick ids with
sp_filters(category, city, area=...); see sp_search with `neighbourhoods` for the ads themselves.

Input parameters:

- `category` (string, required): Category slug, e.g. houses-apartments-for-sale, house-apartment-for-rent, car, land.
- `city` (string, required): City slug from sp_cities, e.g. tehran (not 'iran').
- `neighbourhoods`: Neighbourhood ids from sp_filters(area=...). Omit to take the busiest ones.
- `top` (integer): How many of the busiest neighbourhoods when none are given (1-8).

## Diagnostics

Captured diagnostic sections: Provenance, Install scripts, Dependencies. The full working is on the page: https://verifymcp.io/servers/sepehr071-sheypoor-mcp/sheypoor-mcp#diagnostics

## Score history

- 2026-11-05: 79
- 2026-11-04: 79
- 2026-11-03: 64
- 2026-11-02: 79
- 2026-11-01: 64

## Common questions

### What is the Sheypoor Classifieds MCP server?

Sheypoor Classifieds is an MCP server listed in the public MCP registry as io.github.sepehr071/sheypoor-mcp. Read-only Sheypoor (sheypoor.com) classifieds: search ads, ad details, price summaries. This page covers its PyPI package (sheypoor-mcp).

### Is the Sheypoor Classifieds MCP server safe to use?

Sheypoor Classifieds scores 79 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Sheypoor Classifieds MCP server expose?

Sheypoor Classifieds exposes 11 tools: sp_search, sp_ad, sp_price_summary, sp_categories, sp_cities, and 6 more. Their descriptions and schemas cost roughly 2,708 tokens of context every time the server is loaded.

### Is the Sheypoor Classifieds MCP server still maintained?

Sheypoor Classifieds is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What licence is the Sheypoor Classifieds MCP server under?

Sheypoor Classifieds declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

### What did VerifyMCP test on the Sheypoor Classifieds MCP server?

VerifyMCP ran 15 checks on Sheypoor Classifieds, covering Malware scan, Known CVEs, Install scripts, Dependency health and 11 more. One item could not be completed, a gap on our side rather than a finding about Sheypoor Classifieds: Stability. One category scores 0 for that reason, because we only credit what we can confirm. Endpoint Security and Transport & Reachability do not apply to a PyPI package, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.

## Links

- PyPI project: https://pypi.org/project/sheypoor-mcp/
- Socket report: https://socket.dev/pypi/package/sheypoor-mcp
- Repository: https://github.com/sepehr071/sheypoor-mcp
- Changelog RSS feed: https://verifymcp.io/servers/sepehr071-sheypoor-mcp/sheypoor-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/sepehr071-sheypoor-mcp/sheypoor-mcp/changelog.json
- Trust report (JSON): https://verifymcp.io/servers/sepehr071-sheypoor-mcp/sheypoor-mcp.json
- HTML version of this page: https://verifymcp.io/servers/sepehr071-sheypoor-mcp/sheypoor-mcp
