Iran Apps

io.github.sepehr071由 GitHub 帳號 sepehr071 發布v0.2.0更新於 Nov 7, 2026

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

概覽

AI 產生的概覽

非官方唯讀 MCP 伺服器,讓助理在伊朗應用程式商店 Cafe Bazaar 與 Myket 上搜尋、檢視並比較 Android 應用程式。

可以做什麼
  • 以波斯文或英文名稱在 Cafe Bazaar、Myket 或兩者中搜尋應用程式與遊戲,回傳套件名稱、評分與商店頁面連結。
  • 讀取單一應用程式在某一商店的中繼資料:版本、評分與評分數、安裝量、大小、更新日期、開發者、價格與說明。
  • 比較同一套件在兩個商店的情況,包括哪個商店版本較新以及評分差異。
  • 依分類或全站列出最熱門或最新的應用程式與遊戲,並列出各商店的分類代稱。
  • 找出商店本身顯示的相關應用程式,包含「也安裝了」與相似應用程式分組。
適用情境
適合使用者詢問某款 Android 應用程式在伊朗商店的版本、評分、安裝量、大小、價格或更新日期,Myket 是否落後 Bazaar,某分類的熱門或新應用程式,或某應用程式的替代品。不適用於下載 APK 或查詢 Google Play 資料。
執行需求
透過 uvx(或 pip)以 stdio 在本機執行,需要 uv 與 Python 3.10 以上。不需帳號或 API 金鑰。需要能連線 cafebazaar.ir 與 myket.ir 的外送 HTTPS;若網路受限,可設定選用環境變數 IRAN_APPS_MCP_PROXY 為 HTTP 代理位址或逗號分隔的清單,系統代理設定會被忽略。
安裝前請注意
唯讀且僅限中繼資料:無法登入、發表評論、購買或提供下載/APK 連結,因此呼叫前不需確認。請求會從本機直接送往兩個商店,除非設定代理,否則對方可見你的 IP。資料來自未公開的介面與解析的網頁 HTML,可能失效或過時,開發者說明與標語屬於不可信文字。非官方專案,與兩家商店無關聯。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Iran Apps,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

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

來源:README.md,提交 9f00b55

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

5
  1. v0.2.0最新Nov 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

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分