关于 App Console: Google Play, App Store Connect, AdMob
App Console 通过官方 API 管理 Google Play Console、App Store Connect 和 AdMob,面向应用开发者及运营团队。相同功能可通过命令行或 MCP 工具调用,写入操作默认先进行试运行。
主要功能
- 01管理商店列表、版本和发布
- 02查看评论并发送回复
- 03查询崩溃率及 ANR 指标
- 04查看 AdMob 收入和广告指标
- 05通过命令行和 MCP 调用
- 06写入操作默认试运行
适用场景
- 01检查应用版本并准备商店发布
- 02筛选未回复的应用评论
- 03监测崩溃和 ANR 指标
- 04按广告格式或国家查看 AdMob 报告
MCP 相关
提供用于 Google Play、App Store Connect 和 AdMob 的 MCP 工具;可分别启动服务,也可由 `appconsole mcp all` 合并为一个服务。工具包含只读和破坏性操作标注,写入需确认。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
docker run -i --rm -e GOOGLE_PLAY_SERVICE_ACCOUNT -e ASC_KEY_ID -e ASC_ISSUER_ID -e ASC_PRIVATE_KEY_PATH -e ASC_VENDOR_NUMBER -e ADMOB_PUBLISHER_ID ghcr.io/alekla0126/app-console-mcp:0.3.0GOOGLE_PLAY_SERVICE_ACCOUNTPath to a Google Cloud service account JSON key invited in Play ConsoleASC_KEY_ID密钥App Store Connect API key IDASC_ISSUER_IDApp Store Connect API issuer IDASC_PRIVATE_KEY_PATH密钥Path to the AuthKey_<KEY_ID>.p8 fileASC_VENDOR_NUMBERVendor number, only for sales reportsADMOB_PUBLISHER_IDpub-... id, only with several AdMob accounts本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
ghcr.io/alekla0126/app-console-mcp:0.3.0stdio工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
app-console-mcp
在终端或 Claude 中使用 Google Play Console、App Store Connect 和 AdMob,无需浏览器。
通过浏览器 Agent 操作商店控制台,会在截图和页面快照上消耗大量 token,而且 UI 一有变化就会失效。本项目改为调用官方 API,并以几行纯文本作答。每个工具都有两种形式,输出完全相同:
- 作为 MCP 工具,供 Claude Code、Claude Desktop 或任何 MCP 客户端使用;以及
- 作为 CLI 命令(
appconsole ...),供你、脚本和 CI 使用。
项目以三个 Claude Code 插件的形式提供(Google Play、App Store Connect、AdMob),每个插件都包含自己的 MCP 服务,以及教 Claude 安全工作流的技能。它也内置于 Alchemist Coder 中。Alchemist Coder 是一款面向 Claude Code 和 Codex 的开源桌面应用:其中的每个 Agent 都能使用你已设置的服务对应的这些工具。
$ appconsole play vitals com.example.app
com.example.app (data up to 2026-10-19):
crash: 0.31% 28-day user-perceived (ok, threshold 1.09%)
newest versions (last 28 d): v42 0.12% (35% of users) · v41 0.44% (60% of users)
anr: 0.52% 28-day user-perceived (ABOVE THRESHOLD, threshold 0.47%)
newest versions (last 28 d): v42 0.21% (35% of users) · v41 0.70% (60% of users)
$ appconsole admob report --days 7 --by format --currency USD
AdMob 2026-10-20 to 2026-10-26 by format: 128.40 USD (+9% vs previous 7 d: 117.80), 61210 impressions
interstitial: 71.10 USD, 9340 impr, eCPM 7.61, match 88%, show 31%
banner: 39.75 USD, 47880 impr, eCPM 0.83, match 95%, show 52%
功能
Google Play(play) | App Store Connect(appstore) | AdMob(admob) |
|---|---|---|
apps 列出密钥可访问的应用 | apps 列出应用 | accounts 发布商账号 |
listing / update-listing 标题、简短描述、完整描述、新语言 | listing / update-listing 名称、副标题、关键词、描述、宣传文本、更新内容 | apps 应用和广告单元 ID |
tracks 查看每个轨道上的版本 | versions 版本和审核状态 | report 按应用、广告单元、国家/地区、格式、应用/SDK/OS 版本、广告受限原因、广告来源或中介组查看收入、eCPM、匹配率/展示率、CTR,以及与上一时段的对比 |
upload 将 .aab/.apk 上传到任意轨道(分阶段发布或草稿) | create-version 创建新的可编辑版本 | campaign-report 推广活动:安装量、费用、CPI |
promote 在轨道之间推广 | builds 处理状态、出口合规性 | ad-sources 网络及其适配器设置 |
rollout 更改百分比、完成、暂停、恢复 | submit 附加构建版本并提交至 App Review | mediation-groups / ad-unit-mappings ✱ |
reviews / reply | release 发布已批准的手动发布版本 | create-app / create-ad-unit ✱ |
vitals 崩溃率和 ANR 率(Google 的 28 天数据) | reviews / reply | map-ad-unit / create-mediation-group / update-mediation-group ✱ |
products 订阅、基础方案、价格 | sales 按应用查看下载量、IAP 数量、收入 | ab-experiment 启动或停止中介 A/B 测试 ✱ |
search-rank 公开搜索排名 | search-rank 公开搜索排名 | |
images / upload-images 截图和图形素材 | screenshots / upload-screenshots 按设备和地区查看 | |
users / grant / revoke 用户、服务账号和应用权限 | products 订阅和应用内购买 | |
data-safety 提交 Data safety 表单(CSV) |
✱ AdMob 的受限访问:Google 必须为你的发布商 ID 启用这些方法(请联系 AdMob 客户经理或 AdMob 支持),且令牌需要 admob.monetization 范围(appconsole admob login --monetization)。在此之前,这些工具会说明需要申请什么。
默认安全。 所有会更改内容的工具都默认执行试运行,除非传入 confirm=true(在 CLI 中使用 --confirm)。
Google Play 试运行会在草稿编辑中构建更改,并让 Google 在丢弃更改前进行验证,这样你就能在发布任何内容之前看到真实错误。MCP 工具带有
readOnlyHint/destructiveHint 注释,客户端可以据此自动批准读取操作,并在写入前询问。
安装
你需要 uv(它会获取 Python 和依赖项)。
Claude Code 插件(推荐)
/plugin marketplace add Alekla0126/app-console-mcp
/plugin install google-play@app-console
/plugin install app-store-connect@app-console
/plugin install admob@app-console
只安装你会用到的插件。每个插件都会询问所需凭据(路径和 ID;可以留空,改用 appconsole config),添加其 MCP 服务和技能,并将 appconsole 加入 Claude Bash 工具的 PATH。
任意 MCP 客户端(Claude Desktop、Cursor、Codex、VS Code……)
{
"mcpServers": {
"google-play": {
"command": "uvx",
"args": ["--from", "git+https://github.com/Alekla0126/app-console-mcp", "appconsole", "mcp", "play"],
"env": { "GOOGLE_PLAY_SERVICE_ACCOUNT": "/path/to/service-account.json" }
},
"app-store-connect": {
"command": "uvx",
"args": ["--from", "git+https://github.com/Alekla0126/app-console-mcp", "appconsole", "mcp", "appstore"]
},
"admob": {
"command": "uvx",
"args": ["--from", "git+https://github.com/Alekla0126/app-console-mcp", "appconsole", "mcp", "admob"]
}
}
}
appconsole mcp all 会将三个服务作为单个服务提供,适用于只接受一个服务的客户端。
也可以使用 Claude Code CLI:
claude mcp add google-play -- uvx --from git+https://github.com/Alekla0126/app-console-mcp appconsole mcp play
仅限命令行
uv tool install git+https://github.com/Alekla0126/app-console-mcp
appconsole --help
appconsole play reviews com.example.app --unanswered-only
凭据
设置会优先从环境变量读取,其次从 ~/.config/appconsole/config.json 读取
(通过 appconsole config set KEY VALUE 设置,并以 600 权限存储)。这里只存储文件路径和 ID;密钥仍保存在你指定的位置。
运行 appconsole doctor 可检查全部三个服务。
Google Play 设置
- 在 Google Cloud 项目中启用 Google Play Android Developer API 和 Google Play Developer Reporting API。
- 创建服务账号(IAM & Admin > Service accounts),并为其创建 JSON 密钥。
- 在 Play Console > Users and permissions > Invite new users 中,添加服务账号的电子邮件地址并授予 所需权限:View app information(读取信息和核心指标)、Manage store presence(商品详情)、Release apps to testing tracks / Release to production(上传和发布)、Reply to reviews。
appconsole config set GOOGLE_PLAY_SERVICE_ACCOUNT /path/to/key.json- 对于
users、grant和revoke:运行appconsole config set GOOGLE_PLAY_DEVELOPER_ID <任意 Play Console 地址中 /developers/ 后面的数字>,并授予密钥“Manage users and permissions”权限。
App Store Connect 设置
- App Store Connect > Users and Access > Integrations > App Store Connect API > Team Keys > 生成密钥。角色 App Manager 涵盖此处的所有操作,但销售数据除外;销售数据需要 Sales 或 Finance 角色。
- 下载
AuthKey_<KEY_ID>.p8(Apple 只允许下载一次),并记下 Key ID 和 Issuer ID。 - 配置:
appconsole config set ASC_KEY_ID ABC123XYZ
appconsole config set ASC_ISSUER_ID 00000000-0000-0000-0000-000000000000
appconsole config set ASC_PRIVATE_KEY_PATH ~/.appstoreconnect/private_keys/AuthKey_ABC123XYZ.p8
appconsole config set ASC_VENDOR_NUMBER 12345678 # optional, for `appstore sales`
如果你已在使用 fastlane,可以改为将 ASC_API_KEY_JSON 指向你的 api_key.json。如果 .p8 文件位于
~/.appstoreconnect/private_keys 或 ~/private_keys,则可以省略路径。
AdMob 设置
AdMob 不接受服务账号,只接受 Google 用户,因此需要授权一次:
- 在 Google Cloud 项目中启用 AdMob API。
- 配置 OAuth 同意屏幕(选择 External;将自己添加为测试用户),并将发布状态设为 In production——仍处于 Testing 状态的应用,其刷新令牌会在 7 天后过期。自行使用时会看到“未经验证的应用”警告,这是正常情况。
- 创建类型为 Desktop app 的 OAuth 客户端 ID,并下载其 JSON 文件。
- 运行
appconsole admob login --client-secrets client_secret.json(会打开一次浏览器;令牌会保存到~/.config/appconsole/admob-token.json)。Google 为你的发布商 ID 启用相关权限后,可添加--monetization来创建应用、广告单元和中介组。
替代方案:使用带 AdMob 作用域的 gcloud 应用默认凭据 —
gcloud auth application-default login --scopes=https://www.googleapis.com/auth/admob.readonly,https://www.googleapis.com/auth/admob.report,https://www.googleapis.com/auth/cloud-platform。
如果有多个发布商账号,请设置 ADMOB_PUBLISHER_ID=pub-...。
所有设置
| 设置 | 用途 |
|---|---|
GOOGLE_PLAY_SERVICE_ACCOUNT | Google Play(若未设置,则使用 GOOGLE_APPLICATION_CREDENTIALS) |
GOOGLE_PLAY_DEVELOPER_ID | Google Play 用户和权限 |
ASC_KEY_ID、ASC_ISSUER_ID、ASC_PRIVATE_KEY_PATH 或 ASC_PRIVATE_KEY | App Store Connect |
ASC_API_KEY_JSON | App Store Connect,使用 fastlane 格式的密钥文件代替上述三项 |
ASC_VENDOR_NUMBER | appstore sales |
ADMOB_PUBLISHER_ID、ADMOB_TOKEN_FILE | AdMob,可选 |
APPCONSOLE_HOME | 配置目录,默认为 ~/.config/appconsole |
APPCONSOLE_DEBUG=1 | 在 CLI 中显示完整回溯信息 |
官方 API 无法完成的操作
以下操作仍然需要通过网站完成,使用这些工具遇到这类操作时会明确提示:
- Google Play:启用托管发布时的 Publish 按钮(以及 Google 要求手动操作时的 Send for review)、创建应用、内容分级、广告和广告 ID 声明、目标受众、应用访问权限、自定义商店详情和详情页实验、回复超过约一周的评价,以及读取 Data safety 的回答。
- App Store Connect:创建应用记录、App Privacy 标签、年龄分级、应用预览、Resolution Center 消息。创建订阅和应用内购买项目及其定价有 API,但尚未实现。
- AdMob:隐私与消息(GDPR、美国各州、IDFA)、屏蔽控制、政策中心、付款、app-ads.txt 状态和用户。创建应用、广告单元、映射和中介组的功能已经存在,但仅适用于获准使用的发布者(上文的 ✱)。
开发
uv venv && uv pip install -e '.[dev]'
.venv/bin/pytest && .venv/bin/ruff check src tests
claude plugin validate .
bin/appconsole 和插件通过 uvx --from <repo> 运行此软件包,该命令会缓存构建结果;编辑源文件后,请使用 .venv,或添加 --refresh-package app-console-mcp。发布时,请更新 pyproject.toml、src/app_console_mcp/__init__.py 和 .claude-plugin/marketplace.json 中的三个版本号。
标记 v* 会运行 .github/workflows/publish.yml,将软件包发布到 PyPI,然后发布到官方 MCP Registry(server.json)。在 PyPI 信任此工作流之前,这项功能处于关闭状态:在 pypi.org 添加待处理的可信发布者(项目为 app-console-mcp,所有者为 Alekla0126,仓库为 app-console-mcp,工作流为 publish.yml,环境为 pypi),然后运行 gh variable set PUBLISH_PYPI --body true 并重新运行工作流。
在此之前,.github/workflows/docker.yml(在相同标签上触发,也可手动运行)会将一体化映像推送到 ghcr.io/alekla0126/app-console-mcp,并改为在 MCP Registry 中列出该映像。Registry 会读取映像,因此软件包必须公开可见(GitHub → Packages → app-console-mcp → Package settings → Change visibility)。启用 PyPI 发布后,请将该映像添加到 server.json 的 packages 中,放在 PyPI 软件包旁边,因为 Registry 每个版本只收录一次。
工具是在 src/app_console_mcp/{play,appstore,admob}.py 中使用 @tool()(或带有 confirm 参数的 @tool(write=True))装饰的一个函数。它的签名和 Google 风格的文档字符串会同时生成 MCP 架构和 CLI 选项。请保持输出简短,因为模型会读取这些内容。
欢迎提交问题和拉取请求。
许可证
MIT。与 Google 或 Apple 无关联。Google Play、AdMob 和 App Store Connect 是其各自所有者的商标。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。