mcpField
A
App Store & Google Play Review Intelligence

App Store & Google Play Review Intelligence

远程服务
apify.com数据与分析11 天前更新

关于 App Store & Google Play Review Intelligence

App Store & Google Play Review Intelligence 是用于分析 Apple App Store 和 Google Play 应用评论的 MCP 服务。产品团队和研究人员可查看用户抱怨、版本变化及跨商店对比,分析过程确定且不使用 LLM。

主要功能

  1. 01搜索两个商店中的应用
  2. 02分析抱怨短语并提供引述
  3. 03比较不同版本的评分变化
  4. 04对比 2 至 10 款应用
  5. 05获取原始评论和开发者回复

适用场景

  1. 01检查新版是否导致反馈变差
  2. 02比较 iOS 与 Android 用户反馈
  3. 03规划产品前评估竞品抱怨
  4. 04按名称或类别查找应用

MCP 相关

以 MCP 工具形式提供应用搜索、评论读取、评论分析和应用对比。可通过托管的 Streamable HTTP 端点使用,也可在本地通过 stdio 运行。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://parallelstudio--app-store-review-intelligence-mcp.apify.actor/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

全部服务地址
Streamable HTTPhttps://parallelstudio--app-store-review-intelligence-mcp.apify.actor/mcp需要授权

工具

详细介绍

App Store 和 Google Play 评论情报 MCP 服务

询问你的 AI Agent,了解用户讨厌任何 iOS 或 Android 应用的哪些方面,以及上次更新出了什么问题。 这个 MCP 服务会搜索 Apple App Store 和 Google Play,获取任意应用(你自己的或竞争对手的)近期评论,并返回 Agent 可直接使用的分析结果:主要投诉及引用、各版本评分、最新版本中变糟的地方,以及并排呈现的竞品基准对比。无需 API 密钥,也无需访问 App Store Connect 或 Play Console。

托管服务(无需设置): apify.com/parallelstudio/app-store-review-intelligence-mcp。使用你的 Apify 令牌,将任意 MCP 客户端连接到 https://parallelstudio--app-store-review-intelligence-mcp.apify.actor/mcp,按调用付费。你也可以通过标准输入输出在本地运行这份开源代码:npm install && npm run build && npx app-review-intel-mcp。

现已支持 Google Play: 每个工具都可用于 Apple App Store 和 Google Play,包括 iOS 与 Android 的比较。

兼容 Claude Desktop、Claude Code、Cursor、VS Code、Windsurf,以及任何支持通过 Streamable HTTP 使用 MCP 的客户端。

你可以询问什么

  • “Instagram 上次更新出了什么问题?” review_insights 会比较最新版本与前一版本:评分变化、负面评论占比变化,以及增长最多的投诉,并附上引用。
  • “Duolingo 在 Android 和 iOS 上的十大投诉。” 同一个工具,两个商店均可使用。系统会根据应用 ID 推断商店。
  • “比较 Notion、Obsidian 和 Evernote。哪款应用的用户最不满意?原因是什么?” compare_apps 会生成一张表,列出各项指标的领先者。你可以混用 Apple 和 Google Play ID。
  • “查找 Google Play 上排名靠前的冥想应用。” search_apps 会返回 ID、评分、安装量和价格。
  • “显示最新的、提到崩溃的评论。” get_app_reviews 会返回原始评论文本,供你自行分析。

工具

工具适用场景返回内容计费方式
search_apps你知道应用名称或类别,需要查找其 IDID(Apple 数字 ID 或 Play 包名)、名称、开发者、评分、评分数、价格、类别、版本、URL;Google Play 还会返回安装量按调用计费
review_insights对于任何“用户为什么不满意/发生了什么变化/总结反馈”问题,从这里开始评分分布、各版本评分、主要投诉短语(1–2★ 评论占比及引用)、versionDeltas(最新版本与前一版本的对比:评分变化、附带引用的增长投诉)、评论摘录每次调用固定收费
get_app_reviews你需要查看实际评论文本评论的评分、标题(Apple)、正文、版本、日期、有用票数;Google Play 上还会返回开发者回复按返回的评论数计费
compare_apps对 2–10 款应用进行竞品基准对比(可混用 Apple 和 Google Play)商店评分及评分数、安装量、价格、版本、近期平均评分、负面/正面评论占比、最新版本平均评分、前 5 大投诉、各项领先者每次调用固定收费

参数。 app_id 接受 Apple ID(284882215、id284882215 或 apps.apple.com URL)或 Google Play 包名(com.instagram.android 或 play.google.com URL)。store(apple | google)为可选参数,系统会根据 ID 推断。对于 search_apps,默认值为 apple。country 是 2 个字母的商店地区代码(us、gb、de……)。pages 范围为 1–10,每页约 50 条评论。lang(仅适用于 Google Play,默认值为 en)用于选择评论语言。review_insights 还接受 countries(最多汇集 10 个商店地区)、since_version(选择用于比较的起始版本)、keyword_limit 和 quotes。

所有工具均为只读。错误会以 MCP 工具错误的形式返回(isError: true),并以 invalid_input、upstream_error 或 internal_error 为前缀。

示例输出

review_insights { "app_id": "389801252", "countries": ["us", "gb"] }(Instagram for iOS,真实调用,2026 年 10 月,已精简):

{
  "sample": { "reviews": 300, "negativeReviews": 188, "byCountry": { "us": 150, "gb": 150 } },
  "ratingDistribution": { "average": 2.42, "total": 300 },
  "storeRating": { "averageRating": 4.69, "ratingCount": 29583259 },
  "versionDeltas": {
    "basis": "version",
    "latest":   { "label": "450.1.0", "reviews": 210, "averageRating": 2.17, "negativeShare": 0.695 },
    "previous": { "label": "previous versions 448.0.0–450.0.0", "reviews": 90, "averageRating": 3.0, "negativeShare": 0.467 },
    "change": { "averageRating": -0.83, "negativeShare": 0.228 },
    "whatGotWorse": [
      { "phrase": "ipad", "status": "new", "latestShare": 0.24, "previousShare": 0, "change": 0.24,
        "examples": [{ "rating": 1, "text": "iPad Update Ruined Reels. Tiny, unchangeable aspect ratio that hovers over the search page?…" }] },
      { "phrase": "reels", "status": "increased", "latestShare": 0.281, "previousShare": 0.095, "change": 0.186 },
      { "phrase": "full screen", "status": "new", "latestShare": 0.11, "previousShare": 0, "change": 0.11,
        "examples": [{ "rating": 1, "text": "Broken UI in latest update. Can no longer see full screen reels in iPad. They now crop reels to square format…" }] }
    ],
    "confidence": "high",
    "summary": "Version 450.1.0 (210 reviews) average 2.17★ vs 3.00★ for previous versions 448.0.0–450.0.0 (90 reviews), −0.83; negative share 69.5% vs 46.7% (+22.8 pp). Rising complaints: \"ipad\" (new, 24% of negative reviews), …"
  },
  "complaintKeywords": [
    { "phrase": "reels", "reviews": 45, "share": 0.239, "example": "…" },
    { "phrase": "ipad", "reviews": 35, "share": 0.186, "example": "…" },
    { "phrase": "account", "reviews": 34, "share": 0.181, "example": "…" },
    { "phrase": "full screen", "reviews": 16, "share": 0.085, "example": "…" }
  ]
}

search_apps { "term": "meditation", "store": "google", "limit": 3 }:

id名称开发者评分安装量
com.spotlightsix.zentimerlite2Insight Timer - Meditation AppInsight Network Inc4.7010,000,000+
meditofoundation.meditoMedito: Meditation & SleepMedito for Mindfulness, Meditation and Sleep4.791,000,000+
com.getsomeheadspace.androidHeadspace: Sleep & MeditationHeadspace for Meditation, Mindfulness and Sleep4.2610,000,000+

compare_apps { "app_ids": ["324684580", "com.spotify.music"], "pages": 1 } 对比 Spotify 的 iOS 和 Android 版本。结果显示,商店评分分别为 4.77 和 4.35,近期平均评分分别为 4.18 和 3.90,负面评论占比分别为 16% 和 28%。Android 用户最常抱怨的问题:premium、song、ads。

查看 demo/transcript.md,了解每个工具的完整、未经精简的响应。

分步操作指南(版本发布检查、竞品分析、iOS 与 Android 对比、在 Claude Code 中每周监测),包含真实结果和各工作流的费用:docs/workflows.md。

定价

按事件付费:只有调用成功时才会收取工具事件费用。验证失败或无法访问商店的调用不会收取工具事件费用。Apify 还会在每次启动服务实例时收取标准的 Actor 启动事件费用(每 GB 内存 $0.00005,至少计为一个事件)。默认待机内存为 512 MB,因此每次启动费用为 $0.00005;一个运行中的实例在闲置退出前可以处理多次调用。此 Actor 的 Pricing 选项卡列出了当前价格,以此为准。

事件价格收费对象
search-apps$0.002每次 App Store search_apps 调用
review$0.001get_app_reviews 返回的每条 App Store 评论(50 条评论 = 50 个事件;0 条评论 = 不收取 review 事件费用)
review-insights$0.03每次 App Store review_insights 调用,按次固定收费。内部分析的评论不会按 review 事件收费
compare-apps$0.05每次仅包含 App Store 应用的 compare_apps 调用,无论应用或评论数量多少,均按次固定收费

Google Play 调用按相同价格作为单独事件计费:每次搜索 play-search $0.002,每条评论 play-review $0.001,每次调用 play-review-insights $0.03,每次包含任意 Google Play 应用的对比 play-compare-apps $0.05。

**提示:**无论分析多少条评论,review_insights 和 compare_apps 的费用都相同。对于汇总分析,它们比提取数百条原始评论便宜得多。

连接 MCP 客户端

端点(Streamable HTTP):

https://parallelstudio--app-store-review-intelligence-mcp.apify.actor/mcp

通过发送 Authorization: Bearer <APIFY_TOKEN>,使用你的 Apify API 令牌进行身份验证。

Cursor(~/.cursor/mcp.json 或 .cursor/mcp.json)
{
  "mcpServers": {
    "app-store-reviews": {
      "url": "https://parallelstudio--app-store-review-intelligence-mcp.apify.actor/mcp",
      "headers": {
        "Authorization": "Bearer <APIFY_TOKEN>"
      }
    }
  }
}
Windsurf(~/.codeium/windsurf/mcp_config.json)
{
  "mcpServers": {
    "app-store-reviews": {
      "serverUrl": "https://parallelstudio--app-store-review-intelligence-mcp.apify.actor/mcp",
      "headers": {
        "Authorization": "Bearer <APIFY_TOKEN>"
      }
    }
  }
}
Claude Desktop(claude_desktop_config.json)

Claude Desktop 的配置文件只能启动本地(stdio)服务,因此请使用 mcp-remote(需要 Node.js)桥接到托管端点。相同的配置块也适用于任何仅支持 stdio 的其他客户端:

{
  "mcpServers": {
    "app-store-reviews": {
      "command": "npx",
      "args": [
        "-y", "mcp-remote",
        "https://parallelstudio--app-store-review-intelligence-mcp.apify.actor/mcp",
        "--header", "Authorization: Bearer ${APIFY_TOKEN}"
      ],
      "env": { "APIFY_TOKEN": "<APIFY_TOKEN>" }
    }
  }
}
无法发送标头的客户端

Apify 也接受将令牌作为 token 查询参数,因此仅支持 URL 的客户端可以使用:

https://parallelstudio--app-store-review-intelligence-mcp.apify.actor/mcp?token=<APIFY_TOKEN>

如果客户端支持,请优先使用 Authorization 标头:令牌放在 URL 中可能会被记录到日志。范围受限的 Apify 令牌可以在令牌泄露时降低风险。

Claude Code
claude mcp add --transport http app-store-reviews \
  https://parallelstudio--app-store-review-intelligence-mcp.apify.actor/mcp \
  --header "Authorization: Bearer $APIFY_TOKEN"
VS Code(.vscode/mcp.json)
{
  "servers": {
    "app-store-reviews": {
      "type": "http",
      "url": "https://parallelstudio--app-store-review-intelligence-mcp.apify.actor/mcp",
      "headers": { "Authorization": "Bearer ${input:apifyToken}" }
    }
  },
  "inputs": [{ "id": "apifyToken", "type": "promptString", "description": "Apify API token", "password": true }]
}
示例提示词

docs/workflows.md 中提供了 4 个现成的工作流,包含提示词、工具调用和真实结果:

工作流工具托管服务上的工具事件费用(另加上文所述的 Actor 启动费用)
版本发布检查:我们上次更新是否让情况变糟了?review_insights$0.03
竞品拆解:在制定路线图或定价决策前search_apps、compare_apps$0.052
iOS 与 Android 对比:哪个平台的用户更不满意?compare_apps$0.05
每周评价监测:在 Claude Code 中运行(cron + claude -p)review_insights每周 $0.06
  • “查找 Duolingo 应用的 ID,并总结用户在最近 300 条美国评价中抱怨了什么。”
  • “Instagram 最新的 iOS 版本是否让情况变糟了?使用 us、gb 和 ca。”
  • “比较 Spotify 在 iOS 和 Android 上的表现:哪个平台的用户更不满意,主要不满什么?”
  • “比较 Spotify、Apple Music 和 YouTube Music 的近期评价,并告诉我每款应用最主要的抱怨是什么。”

投诉关键词和“情况变糟了”的计算方式

此方法透明且确定性强。不使用 LLM 或黑箱模型:

  1. 对每条 1–2 星评价进行分词。弯引号和直引号视为相同。
  2. 构建仅由内容词组成的 1、2 和 3 词短语。排除停用词、填充词(“never”“just”“still”“really”“keep”……)、评价套话(“app”“update”“star”……)、数字,以及应用本身的名称和开发者名称。合并复数和所有格形式(account/accounts)。
  3. 根据提及该短语的评价数量对短语排序,避免一条长篇抱怨占据主导。多词短语会获得少量加权。
  4. 去除冗余短语。当更长的短语涵盖了某个词的大部分提及次数时,该词会被移除(screen → full screen),并合并近似重复的短语。
  5. **版本变化:**将样本拆分为最新应用版本和此前的版本,或使用 since_version。比较平均评分和负面评价占比,然后根据短语在负面评价中的占比上升幅度进行排序。如果样本只包含一个版本,则改为比较最近 3 天(或 24 小时)与更早的评价。如果仍无法比较,则说明原因,并建议增加 pages 或 countries。confidence 等级反映了两侧各自包含的负面评价数量。

局限性

  • 仅涵盖近期评论,不包括完整历史记录。 每个应用、商店地区和调用最多获取 500 条评论(Apple 的 Feed 提供 10 页,每页 50 条;Google Play 也有相同的上限)。洞察描述的是近期的文字评论。商店整体评分和评论数会单独报告。
  • 评论活跃的应用只涵盖几天。 对于 Instagram 这类应用,150 条评论可能只涵盖一天和一个版本。此时,versionDeltas 会说明这一点,并建议增加 pages 或 countries。
  • 非官方接口。 Apple 的 iTunes Search/Lookup API 和 RSS Feed,以及 Google Play 的公开 Web 接口无需密钥,但这些用途并无官方文档说明。接口可能变更或受到速率限制。服务会采用退避策略重试,将响应缓存 5 分钟,并在页面或商店地区获取失败时通过 warnings 返回部分结果。
  • Google Play 的具体情况。 评论没有标题,筛选主要依据 lang(默认值为 en),而非国家/地区。不同商店地区的评论可能重叠,因此 review_insights 会对不同国家/地区的评论去重。许多应用显示的是“因设备而异”,而不是版本号。无法获取应用大小。
  • Apple 的具体情况。 Feed 不包含开发者回复,也不包含只有评分、没有文字的评论。
  • 关键词以英语为主。 系统会返回并统计任何语言的评论,但停用词列表主要针对英语,也包含基础的西班牙语、法语和德语。

常见问题

我需要 Apple 开发者帐户、Play Console 权限或 API 密钥吗? 不需要。所有数据都来自 App Store 和 Google Play 的公开接口。调用此托管服务只需要 Apify 帐户和令牌。

我可以分析不属于自己的应用吗? 可以。App Store 或 Google Play 上架的任何应用都适用,包括竞争对手的应用。

如何分析应用的 Android 版本? 将其 Google Play 软件包名称(com.spotify.music)或 Play URL 用作 app_id,或者调用 search_apps 并设置 store: "google" 来查找应用。

为什么样本平均评分与商店评分相差这么大? 商店评分涵盖应用历来的所有评分,包括大量没有文字的 5★ 评分。样本只涵盖近期的文字评论,而撰写评论的人更常表达不满。这种差异很有参考价值:近期平均评分大幅下降通常意味着最近发布的版本存在问题。

review_insights 会分析多少条评论? 每个商店地区最多分析 pages × 50 条,每个国家/地区最多 500 条。设置 pages: 10 和 10 个国家/地区时,一次调用最多可分析 5,000 条评论,按单个事件计费。

支持哪些国家/地区? 支持所有商店地区,只需提供其 2 位代码即可。App Store 评论按商店地区分别获取,因此向 review_insights 传入多个国家/地区可扩大覆盖范围。对于 Google Play,可通过 lang 获取其他语言的评论。

会存储任何数据吗? 不会。服务是无状态的,只保留短期的内存响应缓存,不会向数据集或键值存储写入任何内容。

可以自行托管吗? 可以。运行 npm install && npm run build,然后运行 node dist/index.js 以使用 stdio,或运行 node dist/index.js --http 以通过 Streamable HTTP 在 http://127.0.0.1:3000/mcp 使用。自行托管时,除非设置 BILLING=apify,否则不会启用计费。

自托管和开发

npm install
npm run build
npm start              # MCP over stdio
npm run start:http     # Streamable HTTP at http://127.0.0.1:3000/mcp (GET / and /health = health check)
npm test               # build + unit checks + end-to-end smoke test against live Apple and Google Play endpoints
环境变量默认值用途
PORT / HOST3000 / 127.0.0.1HTTP 绑定(--http);也可使用 --port、--host
HTTP_TIMEOUT_MS15000对 Apple / Google Play 的每次请求超时时间
HTTP_MAX_RETRIES2遇到 408/425/429/5xx/网络错误时的重试次数
CACHE_TTL_MS300000内存缓存 TTL(0 表示禁用)
BILLING(未设置);Docker 镜像中为 apifyapify 启用按事件计费的 Actor.charge()
GOOGLE_PLAY_ENABLED已启用false 会从工具架构中隐藏 Google Play,并对 Google Play ID 返回“即将推出”错误

在 Apify 上(Standby 模式)。 设置 APIFY_IS_AT_HOME 后,服务会调用 Actor.init()、强制启用 HTTP 模式,并监听 0.0.0.0:$ACTOR_WEB_SERVER_PORT;若未设置,则依次回退到 ACTOR_STANDBY_PORT 和 PORT。GET / 用于响应 Standby 就绪探测,MCP 则通过 /mcp 提供服务。HTTP 服务本身没有身份验证机制:在 Apify 上,平台会使用你的 API 令牌对请求进行身份验证。如果你在 localhost 之外自托管,请将其置于身份验证代理之后。

.actor/        actor.json, input_schema.json (empty), output_schema.json (MCP endpoint)
Dockerfile     apify/actor-node:20, multi-stage TypeScript build, BILLING=apify
src/
  index.ts     entry: stdio or stateless Streamable HTTP; Apify Standby wiring
  server.ts    MCP tool registrations (zod schemas, error mapping, billing)
  http.ts      shared HTTP client: timeout, retry, cache
  itunes.ts    Apple API client: search, lookup, review feed parsing
  googleplay.ts Google Play client: search, app details, reviews (batchexecute)
  insights.ts  distribution, by-version stats, n-gram keywords, version deltas, quotes
  billing.ts   chargeEvent() → Actor.charge() when BILLING=apify
  util.ts      errors, cache, concurrency limiter, input normalization
test/smoke.mjs unit checks + end-to-end test via the MCP SDK client (stdio + HTTP)

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。