关于 App Store & Google Play Review Intelligence
App Store & Google Play Review Intelligence 是用于分析 Apple App Store 和 Google Play 应用评论的 MCP 服务。产品团队和研究人员可查看用户抱怨、版本变化及跨商店对比,分析过程确定且不使用 LLM。
主要功能
- 01搜索两个商店中的应用
- 02分析抱怨短语并提供引述
- 03比较不同版本的评分变化
- 04对比 2 至 10 款应用
- 05获取原始评论和开发者回复
适用场景
- 01检查新版是否导致反馈变差
- 02比较 iOS 与 Android 用户反馈
- 03规划产品前评估竞品抱怨
- 04按名称或类别查找应用
MCP 相关
以 MCP 工具形式提供应用搜索、评论读取、评论分析和应用对比。可通过托管的 Streamable HTTP 端点使用,也可在本地通过 stdio 运行。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://parallelstudio--app-store-review-intelligence-mcp.apify.actor/mcpclaude mcp add --transport http gunnargray-dev-app-store-review-intelligence https://parallelstudio--app-store-review-intelligence-mcp.apify.actor/mcp{"mcpServers":{"gunnargray-dev-app-store-review-intelligence":{"type":"http","url":"https://parallelstudio--app-store-review-intelligence-mcp.apify.actor/mcp"}}}在 Cursor 中打开{"servers":{"gunnargray-dev-app-store-review-intelligence":{"type":"http","url":"https://parallelstudio--app-store-review-intelligence-mcp.apify.actor/mcp"}}}在 VS Code 中打开{"mcpServers":{"gunnargray-dev-app-store-review-intelligence":{"type":"http","url":"https://parallelstudio--app-store-review-intelligence-mcp.apify.actor/mcp"}}}{"mcpServers":{"gunnargray-dev-app-store-review-intelligence":{"serverUrl":"https://parallelstudio--app-store-review-intelligence-mcp.apify.actor/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
https://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 | 你知道应用名称或类别,需要查找其 ID | ID(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.zentimerlite2 | Insight Timer - Meditation App | Insight Network Inc | 4.70 | 10,000,000+ |
| meditofoundation.medito | Medito: Meditation & Sleep | Medito for Mindfulness, Meditation and Sleep | 4.79 | 1,000,000+ |
| com.getsomeheadspace.android | Headspace: Sleep & Meditation | Headspace for Meditation, Mindfulness and Sleep | 4.26 | 10,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.001 | get_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–2 星评价进行分词。弯引号和直引号视为相同。
- 构建仅由内容词组成的 1、2 和 3 词短语。排除停用词、填充词(“never”“just”“still”“really”“keep”……)、评价套话(“app”“update”“star”……)、数字,以及应用本身的名称和开发者名称。合并复数和所有格形式(
account/accounts)。 - 根据提及该短语的评价数量对短语排序,避免一条长篇抱怨占据主导。多词短语会获得少量加权。
- 去除冗余短语。当更长的短语涵盖了某个词的大部分提及次数时,该词会被移除(
screen→full screen),并合并近似重复的短语。 - **版本变化:**将样本拆分为最新应用版本和此前的版本,或使用
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 / HOST | 3000 / 127.0.0.1 | HTTP 绑定(--http);也可使用 --port、--host |
HTTP_TIMEOUT_MS | 15000 | 对 Apple / Google Play 的每次请求超时时间 |
HTTP_MAX_RETRIES | 2 | 遇到 408/425/429/5xx/网络错误时的重试次数 |
CACHE_TTL_MS | 300000 | 内存缓存 TTL(0 表示禁用) |
BILLING | (未设置);Docker 镜像中为 apify | apify 启用按事件计费的 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
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。