Google Play控制台MCP服务器
MCP(模型上下文协议)服务器,提供对Google Play控制台分析和报告数据的访问。此服务器允许您直接从您的Google Play Console帐户查询应用程序指标、崩溃报告、ANR数据和性能见解。
特性
- 应用程序概述:基于生命体征的用户覆盖范围(
distinctUsers)、崩溃/ANR率和估计的受影响用户,以及审查得出的评级(Play不会通过这些API公开安装/获取计数;该工具返回notes解释一下) - 游戏开发者报告:崩溃率和ANR率、错误计数/问题/报告和性能指标(唤醒、渲染/启动缓慢、唤醒、LMK)
- 安卓发布商API:通过完全访问
android_publisher_invoke(跟踪、列表、捆绑包、应用内产品、订阅、评论、购买、订单等——请参阅android_publisher_help和那个 官方REST参考) - 应用搜索:查找链接到您的Play Console帐户的应用程序
- 设置验证:使用确认凭据和API访问
verify_setup
先决条件
- Google Play主机帐户:您需要使用至少一个已发布应用程序访问Google Play Console帐户
- 服务账号:在Google云控制台中创建服务帐户,访问Google Play开发者API
- API访问:在Google Cloud项目中启用Google Play开发者API和Play开发者报告API
设置
1.创建服务帐户
- 去 谷歌云控制台
- 选择您的项目或创建一个新项目
- 转到“IAM和管理员”→ “服务帐户”
- 点击“创建服务帐户”
- 为其命名(例如,“游戏控制台api”)
- 授予其“扮演开发人员管理员”角色或适当的权限
- 点击“完成”
2.生成服务帐户密钥
- 在列表中查找您的服务帐户
- 点击三个点→ “管理密钥”
- 点击“添加密钥”→ “创建新密钥”
- 选择“JSON”格式
- 下载密钥文件并确保其安全
3.授予API访问权限
- 去 谷歌游戏控制台
- 选择您的应用程序
- 转到“设置”→ “API访问”
- 点击“创建服务帐户”
- 按照说明链接您的服务帐户
- 授予必要的权限(至少:“查看应用程序信息”)
4.安装MCP服务器
cd /path/to/your/mcp-servers
git clone git@github.com:TylerThompson/google-play-console-mcp.git
cd mcp-google-play-console
npm install
npm run build5.自动生成MCP配置
运行安装脚本并选择您的客户端/编辑器(Cursor、Claude Code、Claude Desktop、Windsurf或Antigravity)。它只为该客户端生成一个配置文件。
./setup.sh脚本写入有效的 mcpServers 使用您的凭据和本地登录 dist/index.js 路径。
对于CI/CD入职脚本,您可以非交互式地运行安装程序:
./setup.sh --non-interactive \
--client cursor \
--firebase-config "/path/to/service-account.json" \
--package-name "com.example.yourapp" \
--force你也可以通过 --client-email, --private-key,以及 --project-id 直接代替 --firebase-config.
用法
此服务器使用 MCP over stdio (产卵 node 随着编译 dist/index.js).任何支持该标准的客户端 mcpServers 挡块--command, args,可选 env--可以运行它。
在配置客户端之前: 跑 npm install && npm run build 并使用 绝对路径 到 dist/index.js 在 args (除非你的客户记录了一个可靠的工作目录)。
MCP客户端配置位置
| 客户端 | 在哪里添加服务器 |
|---|---|
| 光标 | 项目: .cursor/mcp.json · 用户: ~/.cursor/mcp.json (macOS/Linux)或 %USERPROFILE%\.cursor\mcp.json (Windows)。游标将两者合并;项目条目会覆盖同名的用户条目。 |
| 克劳德代码 | 项目(git友好): .mcp.json 在repo根目录中· 用户/本地: ~/.claude.json.支持 ${VAR} 和 ${VAR:-default} 在 .mcp.json--看 克劳德代码MCP。你也可以跑步 claude mcp add --transport stdio -- node /path/to/dist/index.js 并通过以下方式传递秘密 --env 旗帜。 |
| 克劳德桌面 | macOS: ~/Library/Application Support/Claude/claude_desktop_config.json · 窗户: %APPDATA%\Claude\claude_desktop_config.json · Linux: ~/.config/Claude/claude_desktop_config.json |
| 帆板运动 | ~/.codeium/windsurf/mcp_config.json (macOS/Linux)或 %USERPROFILE%\.codeium\windsurf\mcp_config.json (Windows),或 命令面板 → “Windsurf:配置MCP服务器”。 |
| 谷歌反重力 | ~/.gemini/antigravity/mcp_config.json (macOS/Linux)或 %UserProfile%\.gemini\antigravity\mcp_config.json (Windows)。打开Antigravity一次,使文件夹存在。看 反重力MCP. |
使用相同 mcpServers 以上所有内容的JSON形状:将生成的对象合并到文件的现有对象中 mcpServers 如果你已经有其他服务器。
编辑配置后: 完全重新启动应用程序(退出,而不仅仅是关闭窗口),以便重新加载MCP。
示例 mcpServers 条目(由生成 setup.sh)
{
"mcpServers": {
"google-play-console": {
"command": "node",
"args": ["/absolute/path/to/google-play-console-mcp/dist/index.js"],
"env": {
"GOOGLE_PLAY_CLIENT_EMAIL": "your-service-account@your-project.iam.gserviceaccount.com",
"GOOGLE_PLAY_PRIVATE_KEY": "-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----\n",
"GOOGLE_PLAY_PROJECT_ID": "your-project-id",
"GOOGLE_PLAY_PACKAGE_NAME": "com.example.yourapp"
}
}
}
}可用工具
get_app_overview
生命体征和评论快照:碰撞/ANR率,受影响用户(来自 distinctUsers),来自生命体征的活跃用户风格汇总,来自 reviews.list,加 notes (此处无法从Google API获取安装计数)。
参数:
packageName(可选):应用程序的包名称timeRange(可选):度量的时间范围(“7d”、“30d”、“90d”)
get_crash_metrics
获取应用程序的崩溃率指标,包括详细的细分。
参数:
packageName(可选):应用程序的包名称versionCode(可选):按特定应用程序版本代码筛选apiLevel(可选):按Android API级别过滤deviceModel(可选):按设备型号筛选country(可选):按国家代码筛选timeRange(可选):度量的时间范围(“1d”、“7d”、“30d”)
get_anr_metrics
获取应用程序的ANR(应用程序未响应)率指标。
参数: 同 get_crash_metrics
get_error_counts
获取应用程序的错误计数指标。
参数: 同 get_crash_metrics
get_error_issues
搜索并列出应用程序的错误问题。
参数:
- 同
get_crash_metrics pageSize(可选):要返回的结果数(默认值:20)pageToken(可选):下一页的分页标记
get_error_reports
获取特定错误问题的详细错误报告。
参数:
packageName(可选):应用程序的包名称issueId(必填):用于获取报告的错误问题的ID- 与相同的过滤器
get_crash_metrics pageSize(可选):要返回的结果数(默认值:20)pageToken(可选):下一页的分页标记
get_performance_metrics
获取性能指标(过度唤醒、渲染缓慢、启动缓慢等)。
参数:
packageName(可选):应用程序的包名称metricType(必填):要检索的性能指标类型
- “过度觉醒” - “渲染速度缓慢” - “慢启动率” - “stuck background wakelockrate” - “lmkrate”
- 与相同的过滤器
get_crash_metrics
search_apps
在您的Google Play Console帐户中搜索应用程序。
参数:
query(必填):搜索查询以查找应用程序pageSize(可选):要返回的结果数(默认值:10)
verify_setup
验证您的服务帐户和应用程序访问的设置和权限。
已执行的检查:
- Play Console应用程序访问(
getApp通话成功) - 播放开发者报告API访问(
getCrashRateMetrics通话成功)
参数:
packageName(可选):应用程序的包名称(默认使用配置的包)
android_publisher_help
返回使用说明 android_publisher_invoke:允许的API根、路径示例和指向 Android发布商API v3 REST参考.
android_publisher_invoke
呼叫任何 谷歌蜜蜂 androidpublisher 使用点符号的v3方法(edits.tracks.list, inappproducts.get, monetization.subscriptions.list等等)。传递方法参数 requestParams二进制上传需要 media.body 此工具不支持。
参数:
operation(必填):例如。edits.insert,edits.bundles.list,reviews.replyrequestParams(可选):与API期望的字段相同(packageName,editId,track,requestBody,token, …)packageName(可选):填充requestParams.packageName当省略时;否则,将使用配置的默认包
为您的服务帐户授予 播放控制台权限 这与你所说的相匹配(查看与管理发布、财务数据等)。看 权限设置.md.
你可以问的问题(丰富的答案)
用简单的语言询问您的MCP连接助手。它应该选择正确的工具,在需要时进行链式调用(例如 edits.insert → edits.tracks.list → edits.delete 只读草稿),并解释 notes 和API错误。
稳定性、错误和性能(报告API工具)
- *“给我一个过去30天我的应用程序的健康概述——崩溃、ANR、评级,以及我应该从笔记字段知道的任何事情。”* →
get_app_overview - *“过去7天我们的崩溃率是多少,大约有多少用户受到影响?”* →
get_crash_metrics(以及概述distinctUsers-基于上下文) - *“ANR是否正在恶化?显示过去30天的ANR指标。”* →
get_anr_metrics - *“列出上周最常见的播放错误问题,并总结模式。”* →
get_error_issues(然后用get_error_reports在AissueId) - *“提取错误问题X的详细堆栈跟踪/报告。”* →
get_error_reports说完这个issueId - *“本周平台错误报告的噪音有多大?”* →
get_error_counts - *“我们看到的是缓慢的冷启动还是过度的清醒?”* →
get_performance_metrics为了slowstartrate,excessivewakeuprate等等。 - *“比较美国版本代码420和430的碰撞信号。”* →
get_crash_metrics和versionCode和country过滤器
商店存在、发布和工件(Android Publisher)
使用 android_publisher_help 如果模型需要路径示例,那么 android_publisher_invoke.
- *“存在哪些曲目,生产中推出了哪些曲目(版本,推出百分比)?”* →
edits.insert然后edits.tracks.list和edits.tracks.get和track: "production"(使用以下命令放弃编辑edits.delete如果你只想读一读) - *“此编辑附加了哪些应用程序捆绑包或APK?”* →
edits.bundles.list,edits.apks.list - *“我们的默认上市标题和简短描述是什么?”* →
edits.listings.list/edits.listings.get和language - *“这条赛道在哪些国家有?”* →
edits.countryavailability.get和track - *“列出此应用程序的设备层配置。”* →
applications.deviceTierConfigs.list
货币化和目录
- *“列出该包的所有应用内产品(SKU)。”* →
inappproducts.list(分页token在requestParams如果需要) - *“显示SKU的详细信息
premium_unlock.”* →inappproducts.get和sku - *“列出订阅产品并检查特定订阅的基本计划和优惠。”* →
monetization.subscriptions.list那么monetization.subscriptions.get和productId(使用android_publisher_help和那个 REST文档 为了basePlans/offers子资源)
评论
- *总结最近的评论:主题、明星分布和粗略情绪* →
reviews.list通过android_publisher_invoke(概述工具已经聚合了一些评级统计数据,但列表给出了文本) - *“获取评论id的全文…”* →
reviews.get和reviewId
购买、订阅和订单(敏感)
只有您的服务帐户有权 金融/秩序 权限。
- *“查找购买令牌的订阅状态…”* →
purchases.subscriptionsv2.get和token - *“列出最近作废的购买。”* →
purchases.voidedpurchases.list使用REST文档中的所需时间/查询参数
发现和设置
- *“此帐户可以看到哪些Play应用程序?搜索‘Wisco’。”* →
search_apps - *“我们的MCP设置对报告和此包有效吗?”* →
verify_setup
仅凭此MCP无法回答的问题
- *“精确游戏控制台安装/获取/收入仪表板”* --不以与统计UI相同的方式在开发人员报告+发布者上公开;使用Play Console或导出/BigQuery管道,然后将数据单独连接到您的助手。
示例工具调用(JSON)
概述和生命体征
{
"tool": "get_app_overview",
"arguments": {
"timeRange": "30d"
}
}特定版本的崩溃
{
"tool": "get_crash_metrics",
"arguments": {
"versionCode": "123",
"timeRange": "7d"
}
}然后深入查看错误问题
{
"tool": "get_error_issues",
"arguments": {
"timeRange": "7d",
"pageSize": 10
}
}{
"tool": "get_error_reports",
"arguments": {
"issueId": "abc123def456",
"pageSize": 5
}
}生产轨迹(发布者API:创建编辑→ 列出曲目→ 删除编辑)
{
"tool": "android_publisher_invoke",
"arguments": {
"operation": "edits.insert",
"requestParams": {}
}
}{
"tool": "android_publisher_invoke",
"arguments": {
"operation": "edits.tracks.get",
"requestParams": {
"editId": "",
"track": "production"
}
}
}{
"tool": "android_publisher_invoke",
"arguments": {
"operation": "edits.delete",
"requestParams": {
"editId": ""
}
}
}列出应用内产品
{
"tool": "android_publisher_invoke",
"arguments": {
"operation": "inappproducts.list",
"requestParams": {}
}
}故障排除
常见问题
- 身份验证错误:确保您的服务帐户具有正确的权限,并链接到您的Google Play控制台
- 找不到应用程序:验证包名称是否正确,以及您是否有权访问该应用程序
- 速率限制:Google Play API有速率限制。如果你击中了它们,请等待几分钟再重试
- 缺失数据:如果您的应用程序没有足够的用户或数据,则某些指标可能不可用
有关完整权限设置和验证指南,请参阅:
调试模式
在调试模式下运行服务器以查看详细日志:
DEBUG=* npm run dev发展
建筑
npm run build在发展中奔跑
npm run dev测试
npm test验证播放权限(不重写配置)
npm run verify:permissions -- /path/to/service-account.json com.example.app许可证
MIT许可证-有关详细信息,请参阅许可证文件。
贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 如果适用,添加测试
- 提交拉取请求
支持
对于问题和疑问:
- 检查上面的故障排除部分
- 在GitHub存储库上提交问题
- 查看Google Play开发者API文档
