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 上搜索、查看并对比安卓应用。

可以做什么
  • 按波斯语或英语名称在 Cafe Bazaar、Myket 或两者中搜索应用和游戏,返回包名、评分和商店页面链接。
  • 读取单个应用在某个商店的元数据:版本、评分与评分人数、安装量、体积、更新日期、开发者、价格和描述。
  • 对比同一包名在两个商店的情况,包括哪个商店版本更新以及评分差异。
  • 按分类或全站列出最热门或最新的应用和游戏,并列出各商店的分类标识。
  • 查找商店自身展示的相关应用,包括“也安装了”和相似应用分组。
适用场景
适合用户询问某款安卓应用在伊朗商店的版本、评分、安装量、体积、价格或更新日期,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 分