Skip to main content
Glama

Google Play Store MCP

为人类、CI 和 MCP 智能体提供的安全、先试运行(dry-run)的 Google Play Store 商店详情自动化工具。

本项目通过官方 Android Publisher API 管理 Google Play Store 商店详情文本。它特意不作为浏览器自动化工具,且在运行时不依赖 fastlane。

为什么存在这个项目

Google Play 商店详情工作有两种截然不同的操作方式:

  • 人类和 CI 需要一个能够导出、对比、验证和应用商店元数据的 CLI。

  • 智能体需要一个带有安全工具的 MCP 服务器,以便在提交更改前预览更改。

两者共享同一个核心库,因此安全行为、差异对比、验证和应用语义保持一致。

Related MCP server: playstore-release-mcp

仓库布局

packages/core   Typed Android Publisher API client, listing manifests, diff, validate, apply
packages/cli    gpstore command for humans and CI
packages/mcp    MCP stdio server for agent tools
examples        Safe example metadata, with no credentials
docs            Security and operating notes

路线图

阅读 ROADMAP.md 了解当前计划。截图和媒体替换的详细信息请参阅 docs/media-roadmap.md。

当前功能

  • 从 Google Play 导出当前本地化的商店详情文本。

  • 加载 fastlane/supply 风格的元数据目录。

  • 预览精确的本地化文本更改。

  • 在不提交的情况下暂存并验证 Google Play 编辑内容。

  • 仅在明确确认后提交商店详情文本。

  • 仅使用来自本地文件路径的服务账号 JSON。

  • 屏蔽并避免记录敏感信息。

截图和媒体资产替换作为 Android Publisher 图像原语被设计在核心客户端中,但首个公开工作流专注于商店详情文本。截图流水线应作为下一个基于清单的媒体差异/应用流程。

安装

本仓库以 npm 工作区形式构建。克隆后:

npm install
npm run build

构建后用于本地 MCP 使用:

{
  "mcpServers": {
    "google-play-store": {
      "command": "node",
      "args": ["/absolute/path/to/google-play-store-mcp/packages/mcp/dist/index.js"],
      "env": {
        "GOOGLE_APPLICATION_CREDENTIALS": "/absolute/path/to/service-account.json"
      }
    }
  }
}

CLI 使用

使用 fastlane/supply 风格的元数据目录:

metadata/android/en-US/title.txt
metadata/android/en-US/short_description.txt
metadata/android/en-US/full_description.txt
metadata/android/es-US/title.txt
metadata/android/es-US/short_description.txt
metadata/android/es-US/full_description.txt

预览更改:

gpstore diff \
  --package-name com.example.app \
  --metadata-dir ./metadata/android \
  --credentials /absolute/path/to/service-account.json

通过 Google Play 验证并丢弃编辑内容:

gpstore validate \
  --package-name com.example.app \
  --metadata-dir ./metadata/android \
  --credentials /absolute/path/to/service-account.json

仅在审查后应用:

gpstore apply \
  --package-name com.example.app \
  --metadata-dir ./metadata/android \
  --credentials /absolute/path/to/service-account.json \
  --confirm APPLY_GOOGLE_PLAY_LISTING_CHANGES

导出当前商店详情元数据:

gpstore export \
  --package-name com.example.app \
  --out ./metadata/android \
  --credentials /absolute/path/to/service-account.json

MCP 工具

  • play_listing_diff:试运行商店详情差异对比。

  • play_listing_validate:在 Google Play 编辑中暂存商店详情更改,进行验证,然后删除该编辑。

  • play_listing_apply:仅当 confirm 参数精确为 APPLY_GOOGLE_PLAY_LISTING_CHANGES 时才提交商店详情更改。

  • play_listing_export:以结构化 JSON 格式返回当前本地化的商店详情文本。

MCP 客户端在调用 play_listing_apply 之前仍应询问用户,因为它会修改云端管理的公开商店详情。

安全模型

在将此工具用于真实应用之前,请阅读 docs/security.md。

简而言之:

  • 无浏览器抓取。

  • 无凭据上传。

  • 无凭据持久化。

  • 配置文件中无原始服务账号 JSON。

  • 应用前进行试运行和验证。

  • 应用需要明确确认。

  • 使用最小权限的 Play Console 服务账号。

官方 API 参考

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A CLI + bundled MCP server for managing Google Play Console metadata, screenshots, one-time products, and subscriptions from YAML files.
    12 npm
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    An MCP server that drives Google Play releases: bundle upload, track releases (internal/closed/open/production), listing metadata, store graphics, and review replies.
    8
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    Enables managing releases, monitoring Android vitals, analyzing earnings and search terms, optimizing ASO, and preflighting store assets through natural language, with a confirmation gate before destructive writes.
    170
    65 PyPI
    Apache 2.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables publishing Android apps to the Google Play Console from monorepos by exposing commands as MCP tools that handle AAB uploads, store listings, testers, and setup via the Google Play Developer API, returning structured JSON results.
    MIT