# Mobile.ir Phones (pypi · mobile-ir-mcp)

Read-only Mobile.ir: phone specs, shop prices and history, used phones, numbered SIM cards.

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

## Components

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

## Channel facts

- Registry: `pypi`
- Package: `mobile-ir-mcp`
- Version: `0.1.1`
- 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**: 50/100
  - Malware scan not yet available for this package.
  - 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 37 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/mobile-ir-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**: 63/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 3685 tokens (~216/item across 17 items; 17 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 13/100
  - Stability observed for 4 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 99% 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 17 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 18 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).

## Install

### How do I install the Mobile.ir Phones MCP server?

Mobile.ir Phones runs locally as a PyPI package, launched with uvx mobile-ir-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-mobile-ir-mcp -- uvx mobile-ir-mcp
```

### Cursor

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

### VS Code

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

### Codex

```bash
codex mcp add sepehr071-mobile-ir-mcp -- uvx mobile-ir-mcp
```

### opencode

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

### OpenClaw

```bash
openclaw mcp add sepehr071-mobile-ir-mcp --command uvx --arg mobile-ir-mcp
```

### Hermes

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

### Netclaw

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

### Vellum

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

### Other

```json
{
  "mcpServers": {
    "sepehr071-mobile-ir-mcp": {
      "command": "uvx",
      "args": [
        "mobile-ir-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-05 (score 66, +1)

No change was recorded against any check on this day. Stability & Change Management went from 10 to 13. That category is still filling its 30-day observation window: 3 days of observed history at the previous scan, 4 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-03 (score 65, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

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

- [security regression] Malware scan: pass → unverified
- [functional improvement] Stability: unverified → 0.03
- [functional] Package version: 0.1.0 → 0.1.1

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

First indexed and scored.

## MCP tools (17)

### `mi_search` (~109 tokens)

Search phones by name

Find phones, tablets and smartwatches on Mobile.ir by name and get their ids (autocomplete, up to about 20).

Use this first when the user names a model, then call mi_phone for specs or mi_shop_prices for shop prices. For
filters (price range, brand, camera) use mi_find instead.

Input parameters:

- `query` (string, required): Part of a model name in English or Persian, e.g. 'galaxy s26', 'iphone 17', 'redmi note'.

### `mi_find` (~346 tokens)

Find phones with filters

Filter Mobile.ir's phone database like its 'mobile finder': brand, shop price range, OS, camera, weight, name.

Returns up to `limit` cards with id, rating (0-10), release year, screen, camera and the lowest current shop
price in Toman. Use mi_phone for the full spec of one result and mi_shop_prices to see who sells it. With a price
filter only priced phones appear. If `found` exceeds `limit`, tighten the filters; the site never shows more
than 100.

Input parameters:

- `brand`: Brand name (Samsung, Xiaomi, اپل) or id; see mi_options('brands').
- `descending` (boolean): Highest first (default).
- `kind` (string): Product class.
- `limit` (integer): Rows to return (the site shows at most 100).
- `market` (string): 'available' = on sale or announced (default); 'any' adds discontinued and cancelled.
- `max_price`: Highest shop price in Toman.
- `max_weight_g`: Weight at most this many grams.
- `min_camera_mp`: Main camera at least this many megapixels.
- `min_price`: Lowest shop price in Toman (e.g. 20000000). Phones without a shop price are dropped.
- `min_rating`: User rating at least this (0-10).
- `min_year`: Released in this year or later, e.g. 2024.
- `name_contains`: Part of the model name, e.g. 'ultra'.
- `os`: Operating systems; default both.
- `sort` (string): Order of the list.

### `mi_phone` (~124 tokens)

Phone specifications

Get the full specification sheet of one phone, tablet or smartwatch from Mobile.ir, with rating and price range.

Values are Persian/English as the site has them (display, chipset, RAM/storage, cameras, battery, launch date,
SIM, network bands). Call mi_shop_prices next for who sells it and mi_price_history for the trend.

Input parameters:

- `id` (integer, required): Product id from mi_search, mi_find or mi_market_prices, e.g. 41113.
- `sections`: Spec sections to return; default all. Use a few to keep the answer short.

### `mi_shop_prices` (~121 tokens)

Shop prices of a phone

List what each shop currently charges for a phone on Mobile.ir (price in Toman, shop, city, note, warranty).

Shops write their own notes (memory/RAM variant, colour, warranty), so prices of the same model differ; read the
note. Cheapest first. Shops are advertisers: the site does not vouch for them.

Input parameters:

- `id` (integer, required): Product id from mi_search, mi_find or mi_market_prices, e.g. 41113.
- `include_old` (boolean): Also list older, expired shop prices.

### `mi_price_history` (~127 tokens)

Price history of a phone

Get a phone's shop-price history from Mobile.ir: per-shop first/last/min/max and the daily lowest price in Toman.

Use it to answer whether a price is rising, falling or fair. Shops quote different variants, so use the daily
lowest as the market trend rather than a single shop.

Input parameters:

- `id` (integer, required): Product id from mi_search, mi_find or mi_market_prices, e.g. 41113.
- `period` (string): How far back.
- `shop_id`: Only this shop (shop_id from mi_shop_prices); default all shops.

### `mi_market_prices` (~268 tokens)

Latest shop prices market-wide

List the newest price rows that shops posted on Mobile.ir (one row per shop and model), with filters.

Use it for 'cheapest/newest Xiaomi prices in Isfahan' type questions. For one model's full offer list use
mi_shop_prices. Prices are Toman, as posted by the shop; variants (memory/RAM) are in `note` on the model page.

Input parameters:

- `brand`: Brand name or id; see mi_options('brands').
- `days` (integer): Only prices updated within this many days (-1 = all).
- `descending` (boolean): Descending order (newest or most expensive first).
- `kind` (string): Product class.
- `max_price`: Toman, highest price.
- `min_price`: Toman, lowest price.
- `name_contains`: Part of the model name.
- `page` (integer): Page number, from 1.
- `page_size` (integer): Rows per page.
- `province`: Province id from mi_options('provinces') (1 = Tehran, 5 = Isfahan, 14 = Khorasan Razavi).
- `shop_id`: Only this shop (id from mi_options('shops')).
- `sort` (string): Order of the rows.

### `mi_used_search` (~300 tokens)

Search used-phone ads

Search the used and new phone ads that users post on Mobile.ir (price, condition, city, description).

Seller names and phone numbers are left out. `price_note` holds non-numeric prices such as 'توافقی' (negotiable)
or 'بالاترین پيشنهاد' (highest offer). Open one ad with mi_used_ad. Ads are unverified user content.

Input parameters:

- `brand`: Brand name or id; see mi_options('brands').
- `condition` (string): Sealed new or used.
- `days` (integer): Ads updated within this many days (-1 = all).
- `descending` (boolean): Newest or most expensive first.
- `kind` (string): Product class.
- `max_price`: Toman, highest price (ads without a price are dropped).
- `min_price`: Toman, lowest price.
- `name_contains`: Part of the model name, e.g. 'iphone 15'.
- `page` (integer): Page number, from 1 (40 ads per page).
- `province`: Province id from mi_options('provinces') (1 = Tehran, 5 = Isfahan, 14 = Khorasan Razavi).
- `sort` (string): Order of the ads. Unpriced ads sort as the cheapest: set min_price with sort=price to skip them.
- `with_photos` (boolean): Only ads with photos.

### `mi_used_ad` (~100 tokens)

One used-phone ad

Read one used/new phone ad on Mobile.ir: price, market price, condition, box, city, description, photos, shops.

Seller name and phone are not returned (personal data); the `url` opens the ad where the site shows them to
signed-in visitors. `market_price_toman` is the site's own estimate of the shop price today.

Input parameters:

- `ad_id` (integer, required): Ad id (ad_id) from mi_used_search.

### `mi_sim_search` (~421 tokens)

Search SIM card numbers

Search the SIM card numbers users sell on Mobile.ir (Iran's numbered-SIM market): operator, number, price.

Filter by operator or prefix, digits in the number (e.g. endswith 1111), new/used, prepaid/postpaid, round
numbers, province and price. Seller names and phones are not returned; open `url` on the site to contact.
\`number` is the full 11-digit number as sold.

Input parameters:

- `condition` (string): New (صفر) or used (کارکرده) line.
- `days` (integer): Ads updated within this many days (-1 = all).
- `descending` (boolean): Newest / most expensive / highest number first.
- `match` (string): How `number` must match.
- `max_price`: Toman, highest price (unpriced ads dropped).
- `min_price`: Toman, lowest price.
- `number`: Digits of the 7-digit subscriber part to match (after the 09xx prefix), e.g. '1111' or '5555'.
- `operator`: mci = Hamrah-e Aval (0910-0919, 0990-0996), irancell (090x, 093x), rightel (092x), taliya (0932), shatel (0998).
- `page` (integer): Page number, from 1 (20 ads per page).
- `plan` (string): postpaid = permanent (دائمی), prepaid = credit (اعتباری).
- `prefix`: One exact prefix such as 0912 (overrides operator).
- `province`: Province id from mi_options('provinces') (1 = Tehran, 5 = Isfahan, 14 = Khorasan Razavi).
- `round_only` (boolean): Only 'round' (رند) numbers.
- `sort` (string): Order of the ads. Unpriced ads sort as the cheapest: set min_price with sort=price to skip them.

### `mi_options` (~75 tokens)

Brands, provinces, shops, operators

List the ids the other Mobile.ir tools take: brands, provinces, price-listing shops, SIM operator prefixes.

Call it when a tool needs a brand, province or shop id you do not have. Brand names (English or Persian) are
also accepted directly by the `brand` arguments.

Input parameters:

- `what` (string, required)

### `mi_compare` (~153 tokens)

Compare phones side by side

Compare 2 to 4 phones, tablets or watches on Mobile.ir: price range, rating and each spec row side by side.

Use it after mi_search or mi_find when the user is choosing between models. Values are listed in the same order as
\`phones`. By default only rows that differ are returned, so the answer stays short; ask for `sections` to focus.

Input parameters:

- `ids` (array, required): 2 to 4 product ids from mi_search or mi_find.
- `only_differences` (boolean): Keep only the spec rows where the products differ (default); false returns every row.
- `sections`: Limit to these spec sections, e.g. ['display','battery']; default all.

### `mi_comments` (~132 tokens)

User comments on a phone

Read what Mobile.ir users wrote about a phone, tablet or watch: comment text, date (Persian calendar), likes.

Use it for real-world opinions (battery, camera, durability) next to mi_phone's rating. Comments are unverified
user content; author names are not returned. `reply_to` is the comment id a comment answers.

Input parameters:

- `id` (integer, required): Product id from mi_search, mi_find or mi_market_prices, e.g. 41113.
- `limit` (integer): Comments to return.
- `sort` (string): 'helpful' puts the most liked comments first.

### `mi_articles` (~205 tokens)

Mobile.ir news and expert reviews

List the news and the expert reviews on Mobile.ir, newest first, optionally for one phone or brand.

Use it for 'is there a review of X', 'latest news about Samsung' or 'what is new'. Read one result with
mi_article, passing back its `source`, `id` and (for reviews) `phone_id`. News search returns at most 100 hits.

Input parameters:

- `brand`: Brand name or id for reviews (see mi_options('brands')).
- `kind` (string): Product class for reviews.
- `page` (integer): Page number, from 1 (20 news or 40 reviews per page).
- `phone_id`: Only articles about this product id: related news and intro (news) or its reviews.
- `query`: Words to search in the news (news only), e.g. 'سامسونگ'.
- `source` (string): 'news' = news and features; 'reviews' = expert phone reviews.

### `mi_article` (~186 tokens)

Read a news article or review

Read the text of one Mobile.ir news item, expert review or product introduction (Persian, images dropped).

Get `source`, `id` and `phone_id` from mi_articles. Long reviews run to tens of thousands of characters: the answer
says `total_chars`, so call again with `offset` to continue. Press-release style text: verify claims before quoting.

Input parameters:

- `id` (integer, required): Article id (news id, review id, or product id for 'intro').
- `max_chars` (integer): Characters to return.
- `offset` (integer): Start at this character, to read a long review in parts.
- `phone_id`: Product id the review belongs to (required for 'review').
- `source` (string, required): From mi_articles: 'news', 'review' or 'intro' (for 'intro' the id is the product id).

### `mi_shop` (~144 tokens)

A shop's phone price list

Show one Mobile.ir shop's profile and the phones it lists with their current prices in Toman.

Use it for 'what does shop X sell' or to compare a shop's prices for a brand. For one model across all shops use
mi_shop_prices. Phone numbers and e-mail of the shop are not returned; `shop_url` shows them on the site.

Input parameters:

- `brand`: Only this brand (name or id).
- `name_contains`: Part of the model name.
- `page` (integer): Page number, from 1 (20 phones per page).
- `shop_id` (integer, required): Shop id from mi_options('shops') or mi_shop_prices.

### `mi_brand_models` (~171 tokens)

All models of a brand

Page through every model Mobile.ir lists for one brand (id, rating, year, screen, camera, lowest shop price).

Use it when mi_find's 100-row cap is too small or you want a brand's full line-up. Narrow by price or camera with
mi_find instead. Read one model with mi_phone; compare several with mi_compare.

Input parameters:

- `brand` (string, required): Brand name (Samsung, اپل) or id; see mi_options('brands').
- `descending` (boolean): Highest / newest first (default).
- `kind` (string): Product class.
- `only_priced` (boolean): Only models with a current shop price.
- `page` (integer): Page number, from 1 (40 models per page).
- `sort` (string): Order of the list.

### `mi_sim_summary` (~172 tokens)

SIM number market summary

Summarise the numbered-SIM market on Mobile.ir per operator: ad counts and the three cheapest priced numbers.

Use it for 'how many Irancell numbers are for sale' or 'cheapest Rightel number'. Drill into one operator with
mi_sim_search. Prices are Toman; many ads have no price (negotiable) and are counted in `ads` only.

Input parameters:

- `condition` (string): New (صفر) or used line.
- `days` (integer): Ads updated within this many days (-1 = all).
- `min_price` (integer): Toman; ignores placeholder prices such as 1 or 5 that old ads carry.
- `plan` (string): Permanent or credit lines.
- `round_only` (boolean): Only 'round' (رند) numbers.

## Diagnostics

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

## Score history

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

## Common questions

### What is the Mobile.ir Phones MCP server?

Mobile.ir Phones is an MCP server listed in the public MCP registry as io.github.sepehr071/mobile-ir-mcp. Read-only Mobile.ir: phone specs, shop prices and history, used phones, numbered SIM cards. This page covers its PyPI package (mobile-ir-mcp).

### Is the Mobile.ir Phones MCP server safe to use?

Mobile.ir Phones scores 66 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 Mobile.ir Phones MCP server expose?

Mobile.ir Phones exposes 17 tools: mi_search, mi_find, mi_phone, mi_shop_prices, mi_price_history, and 12 more. Their descriptions and schemas cost roughly 3,154 tokens of context every time the server is loaded.

### Is the Mobile.ir Phones MCP server still maintained?

Mobile.ir Phones 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 Mobile.ir Phones MCP server under?

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

## Links

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