Iran Apps

io.github.sepehr071Published by GitHub account sepehr071v0.2.0Updated Nov 7, 2026

Unofficial read-only Cafe Bazaar and Myket: search apps, compare versions and ratings, top lists.

Overview

AI-generated overview

Unofficial read-only MCP server that lets an assistant search, inspect and compare Android apps on the Iranian stores Cafe Bazaar and Myket.

What you can do
  • Search apps and games by Persian or English name across Cafe Bazaar, Myket or both, returning package names, ratings and store URLs.
  • Read one app's metadata from a store: version, rating and rating count, installs, size, update date, developer, price and description.
  • Compare the same package across both stores, including which store is newer and the rating difference.
  • List top or newest apps and games per category or store-wide, and list each store's category slugs.
  • Find apps the store itself shows as related, including also-installed and similar groups.
When to use it
Useful when someone asks about an Android app's version, rating, installs, size, price or update date on the Iranian stores, whether Myket lags Bazaar, top or new apps in a category, or alternatives to an app. Not for downloading APKs or for Google Play data.
Requirements
Runs locally over stdio via uvx (or pip), needing uv and Python 3.10 or newer. No account or API key. Outbound HTTPS access to cafebazaar.ir and myket.ir; if the network blocks them, set the optional IRAN_APPS_MCP_PROXY environment variable to an HTTP proxy URL or comma-separated list, since system proxy settings are ignored.
Before you install
Read-only and metadata only: no login, reviews, purchases or download/APK links, so no confirmation is needed before calls. Requests go directly from your machine to the two stores, which see your IP unless a proxy is configured. Data comes from undocumented endpoints and parsed page HTML, so results can break or be stale, and developer descriptions and taglines are untrusted text. Unofficial and not affiliated with either store.

Installation

In SourceWeft

  1. Open Iran Apps in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

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] [mcpfarsi]

[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
bash
claude mcp add iran-apps -- uvx iran-apps-mcp
Claude Desktop

Settings → Developer → Edit Config, then add:

json
{  "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:

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

Or in ~/.codex/config.toml:

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

Add to ~/.gemini/settings.json:

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

text
  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?
bash
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:

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

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

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

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

Development

bash
git clone https://github.com/sepehr071/iran-apps-mcp && cd iran-apps-mcpuv syncuv run ruff check . && uv run ruff format --check .uv run python -m pytest -q          # offline unit tests on recorded fixturesuv run python -m pytest -m live -q  # calls the real storesuv 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.

Related servers

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

Source: README.md at commit 9f00b55

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

5
  1. v0.2.0LatestNov 7, 2026
  2. v0.1.3Nov 3, 2026
  3. v0.1.2Oct 23, 2026
  4. v0.1.1Oct 22, 2026
  5. v0.1.0Oct 20, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts