Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Mobile.ir Phones

PYPI · MOBILE-IR-MCP

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

Available components

66 Trust /100

Last scanned (44 minutes ago)

Scores higher than 62% of PyPI servers

Category E-commerce

Trust breakdown (7 categories)

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. How we score → Why this is hard to score →

Supply Chain Security50
  • Malware scan not yet available for this package.Unverified
  • No known CVEs affecting this package version or its production dependencies.Pass
  • Runs hatchling.build at install time, a recognised build step with no custom scripting around it. View diagnostics → Pass
  • 1 of 37 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency97
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to sepehr071/mobile-ir-mcp). View diagnostics → Pass
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 3 days ago).Pass
  • Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability63
  • AI-judged instruction clarity (excellent).Pass
  • 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. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management13
  • Stability observed for 4 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 99% of tool parameters carry a description.Partial
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 17 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 18 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 5 Nov 26 +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.

  • 3 Nov 26 +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.

  • 2 Nov 26 −15
    • Malware scan: pass → unverified ▼ security
    • Stability: unverified → 0.03 ▲ functional
    • Package version: 0.1.0 → 0.1.1 functional
  • 1 Nov 26 79

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Analysed pypi/mobile-ir-mcp@0.1.1

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem pypi
Reason Verified
Discovered via Registry attestation endpoint
Source repo sepehr071/mobile-ir-mcp
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/sepehr071/mobile-ir-mcp/.github/workflows/publish.yml@refs/tags/v0.1.1
Rekor log index 3637825253
Predicate type PyPI publish attestation https://docs.pypi.org/attestations/publish/v1
Subject digest sha256:af6b2c01d49ea0e5c02681846d5b794df6eb37f2f15315cb4b3e4301f4ea379a

Background: How many MCP packages publish verified provenance →

Install scripts 1 script
Hook Tier Command
build_backend allowlisted hatchling.build

Background: Why install scripts are a supply-chain risk →

Dependencies 37 packages
Packages resolved 37
No linked repository 1
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 17 exposed · ~3,154 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
mi_article ~186

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.

NameTypeReqDescription
idintegeryesArticle id (news id, review id, or product id for 'intro').
max_charsinteger–Characters to return.
offsetinteger–Start at this character, to read a long review in parts.
phone_id––Product id the review belongs to (required for 'review').
sourcestringyesFrom mi_articles: 'news', 'review' or 'intro' (for 'intro' the id is the product id).

No output schema declared.

No examples provided.

mi_articles ~205

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.

NameTypeReqDescription
brand––Brand name or id for reviews (see mi_options('brands')).
kindstring–Product class for reviews.
pageinteger–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. 'سامسونگ'.
sourcestring–'news' = news and features; 'reviews' = expert phone reviews.

No output schema declared.

No examples provided.

mi_brand_models ~171

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.

NameTypeReqDescription
brandstringyesBrand name (Samsung, اپل) or id; see mi_options('brands').
descendingboolean–Highest / newest first (default).
kindstring–Product class.
only_pricedboolean–Only models with a current shop price.
pageinteger–Page number, from 1 (40 models per page).
sortstring–Order of the list.

No output schema declared.

No examples provided.

mi_comments ~132

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.

NameTypeReqDescription
idintegeryesProduct id from mi_search, mi_find or mi_market_prices, e.g. 41113.
limitinteger–Comments to return.
sortstring–'helpful' puts the most liked comments first.

No output schema declared.

No examples provided.

mi_compare ~153

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.

NameTypeReqDescription
idsarrayyes2 to 4 product ids from mi_search or mi_find.
only_differencesboolean–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.

No output schema declared.

No examples provided.

mi_find ~346

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.

NameTypeReqDescription
brand––Brand name (Samsung, Xiaomi, اپل) or id; see mi_options('brands').
descendingboolean–Highest first (default).
kindstring–Product class.
limitinteger–Rows to return (the site shows at most 100).
marketstring–'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.
sortstring–Order of the list.

No output schema declared.

No examples provided.

mi_market_prices ~268

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.

NameTypeReqDescription
brand––Brand name or id; see mi_options('brands').
daysinteger–Only prices updated within this many days (-1 = all).
descendingboolean–Descending order (newest or most expensive first).
kindstring–Product class.
max_price––Toman, highest price.
min_price––Toman, lowest price.
name_contains––Part of the model name.
pageinteger–Page number, from 1.
page_sizeinteger–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')).
sortstring–Order of the rows.

No output schema declared.

No examples provided.

mi_options ~75

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.

NameTypeReqDescription
whatstringyes–

No output schema declared.

No examples provided.

mi_phone ~124

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.

NameTypeReqDescription
idintegeryesProduct 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.

No output schema declared.

No examples provided.

mi_price_history ~127

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.

NameTypeReqDescription
idintegeryesProduct id from mi_search, mi_find or mi_market_prices, e.g. 41113.
periodstring–How far back.
shop_id––Only this shop (shop_id from mi_shop_prices); default all shops.

No output schema declared.

No examples provided.

mi_search ~109

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.

NameTypeReqDescription
querystringyesPart of a model name in English or Persian, e.g. 'galaxy s26', 'iphone 17', 'redmi note'.

No output schema declared.

No examples provided.

mi_shop ~144

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.

NameTypeReqDescription
brand––Only this brand (name or id).
name_contains––Part of the model name.
pageinteger–Page number, from 1 (20 phones per page).
shop_idintegeryesShop id from mi_options('shops') or mi_shop_prices.

No output schema declared.

No examples provided.

mi_shop_prices ~121

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.

NameTypeReqDescription
idintegeryesProduct id from mi_search, mi_find or mi_market_prices, e.g. 41113.
include_oldboolean–Also list older, expired shop prices.

No output schema declared.

No examples provided.

mi_sim_search ~421

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.

NameTypeReqDescription
conditionstring–New (صفر) or used (کارکرده) line.
daysinteger–Ads updated within this many days (-1 = all).
descendingboolean–Newest / most expensive / highest number first.
matchstring–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).
pageinteger–Page number, from 1 (20 ads per page).
planstring–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_onlyboolean–Only 'round' (رند) numbers.
sortstring–Order of the ads. Unpriced ads sort as the cheapest: set min_price with sort=price to skip them.

No output schema declared.

No examples provided.

mi_sim_summary ~172

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.

NameTypeReqDescription
conditionstring–New (صفر) or used line.
daysinteger–Ads updated within this many days (-1 = all).
min_priceinteger–Toman; ignores placeholder prices such as 1 or 5 that old ads carry.
planstring–Permanent or credit lines.
round_onlyboolean–Only 'round' (رند) numbers.

No output schema declared.

No examples provided.

mi_used_ad ~100

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.

NameTypeReqDescription
ad_idintegeryesAd id (ad_id) from mi_used_search.

No output schema declared.

No examples provided.

mi_used_search ~300

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.

NameTypeReqDescription
brand––Brand name or id; see mi_options('brands').
conditionstring–Sealed new or used.
daysinteger–Ads updated within this many days (-1 = all).
descendingboolean–Newest or most expensive first.
kindstring–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'.
pageinteger–Page number, from 1 (40 ads per page).
province––Province id from mi_options('provinces') (1 = Tehran, 5 = Isfahan, 14 = Khorasan Razavi).
sortstring–Order of the ads. Unpriced ads sort as the cheapest: set min_price with sort=price to skip them.
with_photosboolean–Only ads with photos.

No output schema declared.

No examples provided.

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.

pypi · mobile-ir-mcp

# add to Claude Code
claude mcp add sepehr071-mobile-ir-mcp -- uvx mobile-ir-mcp
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.