New:Introducing Socket Scanning for VS Code Marketplace Extensions.Learn more →
Get Started

iran-apps-mcp

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

iran-apps-mcp

Unofficial read-only MCP server for Iranian Android app stores Cafe Bazaar and Myket: search apps and games, compare versions and ratings across stores, top and new lists.

pipPyPI
Version
0.1.2
Weekly downloads
183
Maintainers
1
Created

iran-apps-mcp: Cafe Bazaar and Myket MCP server for AI agents

Let your AI agent look up apps on the Iranian Android stores.
An unofficial, read-only MCP server for Cafe Bazaar (کافه‌بازار) and Myket (مایکت):
search apps and games, compare one package across both stores, and list top or new apps, from Claude, Cursor or Copilot.

PyPI Python CI MCP Registry License: MIT

Install in VS Code

For AI agents · Quick start · What it can do · Tools · FAQ · فارسی

For AI agents

  • What: unofficial MCP server (model context protocol) for the two big Iranian Android app stores, Cafe Bazaar (cafebazaar.ir) and Myket (myket.ir). Queries work in Persian and English.
  • Install: uvx iran-apps-mcp or claude mcp add iran-apps -- uvx iran-apps-mcp. Transport: stdio. Needs uv (Python 3.10+).
  • Auth: none, no API key or account. Optional IRAN_APPS_MCP_PROXY (HTTP proxy URL, or a comma-separated list); system proxy settings are ignored.
  • Access: read-only, metadata only. It cannot log in, post reviews or download anything, so no confirmation is needed before calling any tool. Every result carries the store page URL.
  • Tools: 6, all prefixed ap_. Typical sequence: ap_search (get the package name) -> ap_compare or ap_app -> ap_similar. For lists, call ap_categories first and pass a slug to ap_top.
  • Use when: the user asks about an Android app's version, rating, installs, size or update date on the Iranian stores; whether Myket lags Bazaar; top or new apps in a category; alternatives to an app.
  • Do not use when: the user wants to install or download an app (no download or APK links), or needs Google Play data.
  • Output: compact JSON. An app is identified by its Android package name (same in both stores). Ratings are 1-5 per store, installs is an approximate count, dates are YYYY-MM-DD (Gregorian), prices in Toman (0 = free).
  • Machine-readable: server.json and the iran-mcp catalog.

Why

Cafe Bazaar and Myket are where most Iranian Android users get their apps, and neither offers a public API. Checking "is the Myket version of this app behind Bazaar, and how do users rate it in each store?" means opening both sites and reading two different pages. With iran-apps-mcp an agent answers it in one call and returns a short summary.

You: Is Telegram up to date on Myket compared with Cafe Bazaar?

Agent: calls ap_search(query="telegram") -> ap_compare(package="org.telegram.messenger")

It reads both versions, says which store has the newer one, and shows the rating difference.

What it can do

  • Search apps and games in Cafe Bazaar, Myket or both, by Persian or English name
  • Read one app: version, rating and rating count, installs, size, update date, developer, price and description
  • Compare the same package in both stores side by side, with which store is newer and the rating difference
  • List top or new apps per category (apps and games), or the store-wide trending or editorial list
  • List categories of each store (slugs differ between the stores)
  • Find similar apps the store itself shows as related
  • Read-only by design: no login, no reviews, no downloads

Example prompts:

  • "Search Cafe Bazaar and Myket for Snapp and show the ratings."
  • "Compare the Digikala app on both stores: version, rating, installs."
  • "What are the best new games on Myket this week?"
  • "Top apps in the finance category on Cafe Bazaar."
  • "Which apps do users also install along with Divar?"
  • اپلیکیشن بله را در کافه‌بازار و مایکت جستجو کن و نسخه و امتیازش را مقایسه کن.
  • بهترین بازی‌های جدید مایکت کدام‌اند؟
  • برنامه‌های مشابه اسنپ در کافه‌بازار را نشان بده.

Quick start

You need uv. No API key or account.

Claude Code
claude mcp add iran-apps -- uvx iran-apps-mcp
Claude Desktop

Settings → Developer → Edit Config, then add:

{
  "mcpServers": {
    "iran-apps": { "command": "uvx", "args": ["iran-apps-mcp"] }
  }
}
Cursor

Add the Claude Desktop block above to ~/.cursor/mcp.json (or .cursor/mcp.json in a project).

VS Code (Copilot agent mode)

Click Install in VS Code above, or add to .vscode/mcp.json:

{
  "servers": {
    "iran-apps": { "type": "stdio", "command": "uvx", "args": ["iran-apps-mcp"] }
  }
}
Codex CLI
codex mcp add iran-apps -- uvx iran-apps-mcp

Or in ~/.codex/config.toml:

[mcp_servers.iran-apps]
command = "uvx"
args = ["iran-apps-mcp"]
Gemini CLI

Add to ~/.gemini/settings.json:

{
  "mcpServers": {
    "iran-apps": { "command": "uvx", "args": ["iran-apps-mcp"] }
  }
}
Windsurf

Add the Claude Desktop block to ~/.codeium/windsurf/mcp_config.json.

Anything else

It is a standard stdio MCP server: run uvx iran-apps-mcp, or pip install iran-apps-mcp and run iran-apps-mcp.

Tools

An app is identified by its Android package name (for example com.whatsapp). Get it from ap_search.

ToolWhat it does
ap_searchSearch Cafe Bazaar and/or Myket for apps and games by name; returns package names, ratings and store URLs
ap_appGet one app's metadata from one store: version, rating and rating count, installs, size, update date, developer, price, description
ap_compareCompare one package across Cafe Bazaar and Myket: version, rating, rating count, installs, size, update date, price
ap_topList the top ('best') or newest ('new') apps or games of a store, per category or store-wide
ap_categoriesList the category slugs of a store for apps and games, to pass as ap_top category
ap_similarList apps the store shows as related to one app: Bazaar gives three groups (related, others also installed, similar), Myket one

All 6 tools are annotated readOnlyHint: true.

How it works

  AI agent  (Claude, Cursor, Copilot, ...)
      │
      │  MCP over stdio
      ▼
  iran-apps-mcp  (runs on your machine)
      │
      │  HTTPS
      ├──────▶  api.cafebazaar.ir   JSON API of the Bazaar web app
      └──────▶  myket.ir            page HTML (schema.org JSON-LD, facts table)

iran-apps-mcp runs locally and has no hosted server in between and no API key. Cafe Bazaar is read through the JSON requests its own web app uses; Myket has no JSON API, so its data is parsed from page HTML. Requests go out through a Chrome-impersonating client, at most 4 at a time with a little jitter, and a failed request is retried up to twice. It only reads.

Good to know

  • Prices are in Toman, 0 means free. Both stores quote Rial internally; the server divides by 10.
  • installs is approximate. Bazaar returns a range, Myket a text such as "32 million", so compare magnitudes, not exact numbers.
  • Ratings are per store (1-5) and collected separately by each. A rating is omitted when the store has none.
  • Paging: Bazaar returns 24 apps per page, Myket 20. Myket lists stop after about 4 pages.
  • Categories differ between the stores; use ap_categories to get valid slugs for ap_top. Bazaar's game category list was found by probing and may be incomplete.
  • Names: Bazaar names are often English, Myket's Persian. An app can be missing from one store (ap_compare gives null there); Google Play-only apps are in neither.
  • Myket depends on page HTML, so a site redesign can break it. Bazaar uses its web app's JSON API, which is undocumented and can change.
  • Network: both stores answered directly from Iran and through a foreign proxy exit when tested. If your network needs a proxy, set IRAN_APPS_MCP_PROXY.
  • What it does not do: no download or APK links, no login, no reviews or comments, no purchases, no Google Play data. Developer descriptions and taglines are untrusted text.

FAQ

Is there a Cafe Bazaar or Myket API MCP server?

Neither store documents a public API. iran-apps-mcp is an unofficial MCP server with 6 read-only tools that reads Cafe Bazaar through its web app's API and Myket from its pages, and returns compact JSON for AI agents.

How do I use it with Claude, Cursor or Copilot?

Add the server with claude mcp add iran-apps -- uvx iran-apps-mcp, or use the matching config in Quick start, then ask in plain language, in Persian or English.

Can it download an APK or give me a download link?

No. It returns metadata and the store page URL only.

How do I compare an app's version between Bazaar and Myket?

Find the package name with ap_search, then call ap_compare. It shows both versions, which store is newer and the rating difference.

Are prices in Rial or Toman?

Toman. Both stores quote Rial internally and the server converts. 0 means free.

Why is `installs` not an exact number?

The stores do not publish exact counts: Bazaar returns a range and Myket a rounded text. The server gives an approximate integer.

Does it work for apps that are only on Google Play?

No. It only sees what is listed on Cafe Bazaar and Myket.

Do I need a proxy?

Usually not. Both stores answered directly and through a foreign exit when tested. If your network blocks them, set IRAN_APPS_MCP_PROXY to an HTTP proxy. System proxy variables are ignored on purpose.

How do I debug what the agent sees?
npx @modelcontextprotocol/inspector uvx iran-apps-mcp

Configuration

VariableDefaultMeaning
IRAN_APPS_MCP_PROXYunsetOptional HTTP proxy URL for cafebazaar.ir and myket.ir; system proxy settings are ignored. A comma-separated list is tried in turn

فارسی: سرور MCP کافه‌بازار و مایکت

iran-apps-mcp یک سرور MCP غیررسمی و فقط‌خواندنی برای دو فروشگاه برنامهٔ اندروید ایران، کافه‌بازار و مایکت، است. این سرور به دستیار هوش مصنوعی شما (Claude، Cursor، Copilot و ...) اجازه می‌دهد برنامه و بازی را در هر دو فروشگاه جستجو کند.

چه کارهایی می‌کند

  • جستجوی برنامه و بازی در کافه‌بازار، مایکت یا هر دو، با نام فارسی یا انگلیسی.
  • اطلاعات یک برنامه: نسخه، امتیاز و تعداد امتیاز، تعداد نصب، حجم، تاریخ به‌روزرسانی، توسعه‌دهنده، قیمت و توضیحات.
  • مقایسهٔ یک بسته در دو فروشگاه، مثلاً اینکه نسخهٔ مایکت عقب است یا نه.
  • برترین و جدیدترین برنامه‌ها و بازی‌ها به تفکیک دسته.
  • برنامه‌های مشابه که خود فروشگاه نشان می‌دهد.

نکته‌ها

  • فقط خواندنی است: وارد حساب نمی‌شود، نظر ثبت نمی‌کند و لینک دانلود یا APK نمی‌دهد.
  • قیمت‌ها به تومان، امتیازها از ۱ تا ۵ برای هر فروشگاه جدا، و تعداد نصب تقریبی است. تاریخ‌ها میلادی هستند.
  • کلید API لازم نیست و روی سیستم خود شما اجرا می‌شود. برای پراکسی از متغیر IRAN_APPS_MCP_PROXY استفاده کنید.

نصب (اول uv را نصب کنید). در Claude Code:

claude mcp add iran-apps -- uvx iran-apps-mcp

در Claude Desktop، Cursor و بقیه برنامه‌ها همان تنظیم بخش Quick start را بگذارید.

نمونه پرسش‌ها

  • «اپلیکیشن بله را در کافه‌بازار و مایکت مقایسه کن.»
  • «بهترین بازی‌های جدید مایکت کدام‌اند؟»
  • «برنامه‌های مشابه اسنپ را نشان بده.»

Development

git clone https://github.com/sepehr071/iran-apps-mcp && cd iran-apps-mcp
uv sync
uv run ruff check . && uv run ruff format --check .
uv run python -m pytest -q          # offline unit tests on recorded fixtures
uv run python -m pytest -m live -q  # calls the real stores
uv build

Each tool is a typed async function in src/iran_apps_mcp/tools.py with a docstring that tells the agent when to use it. Issues and PRs are welcome.

Releases: bump the version in pyproject.toml and server.json, then push a v* tag. GitHub Actions publishes to PyPI.

Disclaimer

Unofficial and not affiliated with or endorsed by Cafe Bazaar or Myket. It is read-only and uses the web endpoints and pages of the two stores, which can change without notice. App data is informational.

Author

Sepehr Radmard: open-source MCP servers for the Iranian web. LinkedIn: linkedin.com/in/sepehr-radmard

Built and maintained by Sepehr Radmard (سپهر رادمرد). Connect on LinkedIn or follow @sepehr071 on GitHub for more MCP servers for Iranian websites, all listed in iran-mcp. If this saves you time, a star on the repo helps other people find it.

License

MIT

Keywords

ai-agents

FAQs

Related posts