mcpField
G
google-play-developer-mcp

google-play-developer-mcp

ローカル
github.com/devinwang開発ツール111 週間前に更新

google-play-developer-mcp について

google-play-developer-mcpは、Android Publisher API v3とPlay Developer Reporting API v1beta1をMCPクライアントに提供します。Google Playアプリの管理や指標の確認を行うチーム向けで、リリース、商品、定期購入、レビュー、クラッシュレポートに加え、複数アカウントを扱えます。

主な機能

  1. 01アプリの編集、トラック、段階的リリースの管理
  2. 02ストア掲載情報、画像、アプリバンドルの管理
  3. 03一回限りの商品、定期購入、購入の管理
  4. 04レビューの確認と返信
  5. 05クラッシュ、ANR、パフォーマンス指標の取得
  6. 06Play Consoleアカウントの登録と切り替え

活用シーン

  1. 01ビルドを内部テストまたは本番トラックへ公開
  2. 02ストアの説明文やスクリーンショットを更新
  3. 03定期購入プランの管理と購入トークンの検証
  4. 04レビューへの返信やクラッシュ・ANRの調査

MCP 対応

MCPサーバーは、Android Publisher API v3とPlay Developer Reporting API v1beta1のツールをクライアントに提供し、両APIの非推奨でないエンドポイントを扱います。サービスアカウントの認証情報でアカウントを登録し、複数アカウントを設定できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"devinwang-google-play-developer": {
"command": "npx",
"args": [
"-y",
"google-play-developer-mcp"
]
}
}
}
起動コマンドnpx -y google-play-developer-mcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmgoogle-play-developer-mcp0.2.0

ツール

157

掲載時のツール一覧 · 1 週間前に更新

このツールにパラメーターはありません。

詳細

google-play-developer-mcp

Google Play 向けの包括的な Model Context Protocol(MCP)サーバーです。 157 個のツールを備えています。Android Publisher API v3 と Play Developer Reporting API v1beta1 の全機能を網羅し、非推奨のエンドポイントはありません。Claude、Cursor、VS Code Copilot、Gemini CLI、その他あらゆる MCP クライアントで動作します。

npm version npm downloads CI License: MIT Node Tools: 157 API: v3 Reporting: v1beta1 MCP TypeScript

こちらもご覧ください: app-store-connect-mcp — Apple の App Store Connect 向けに、同じ理念で開発されたプロジェクトです。


目次


このプロジェクトの背景

Google Play Console には API がありますが、対象範囲は広く、頻繁に変化します。既存のコミュニティ製 MCP は、それぞれ機能の一部をカバーしているだけです。ストアの掲載情報を扱うもの、リリースを扱うもの、レビューを扱うものがありますが、どれも Google の非推奨化への対応が遅れています。

google-play-developer-mcp は、すべてを網羅する MCP です。

項目このサーバー一般的なコミュニティ製 MCP
Android Publisher API v3✅ 全機能一部
Play Developer Reporting API✅ 全機能❌ 非対応
monetization.onetimeproducts(2025 年以降のカタログ)✅非推奨の inappproducts を使用
purchases.subscriptionsv2 / productsv2✅依然として v1 を使用するものが多い
2026 年の機能(OfferPhase、cancel/defer、priceStepUp)✅❌
複数アカウント✅通常は 1 つのみ
認証情報の安全性リポジトリにキーを含めず、厳格な .gitignore を設定さまざま
semver に基づく一般公開✅ v1.0.0ほとんどが v1.0 未満

AI アシスタントを使って Google Play Console を操作する場合(リリースの自動化、レビューのトリアージ、サブスクリプションカタログの管理、クラッシュのトリアージなど)、これをインストールすれば、アシスタントが使えるツール一式がそろいます。


機能一覧

33 グループにわたる 157 個のツールを収録しています。両 API の非推奨ではないエンドポイントをすべて網羅しています。

Android Publisher API v3 | グループ | ツール | 対応内容 | |---|---|---| | `accounts_*` | 6 | ローカルレジストリ — 複数の Play Console アカウントの追加/一覧表示/切り替え/削除/更新 | | `auth_*` | 1 | サービスアカウントがトークンを取得できることを確認 | | `apps_*` | 2 | サービスアカウントが参照できるすべてのアプリを一覧表示し、アプリの詳細を取得 | | `edits_*` | 5 | マネージド公開トランザクション:`insert`、`get`、`validate`、`commit`、`delete` | | `details_*` | 3 | アプリ単位の問い合わせ用メールアドレス/電話番号/ウェブサイト、デフォルト言語 | | `country_availability_*` | 1 | 編集内での国ごとの提供状況 | | `listings_*` | 6 | ロケールごとのタイトル/短い説明/詳細な説明/動画。`delete_all` を含む | | `images_*` | 4 | アイコン、フィーチャー グラフィック、プロモーション グラフィック、スマートフォン/タブレット/テレビ/ウェアラブル向けスクリーンショット。一覧表示、アップロード、削除、すべて削除 | | `bundles_*` | 2 | Android App Bundle(AAB)のアップロードと一覧表示 | | `apks_*` | 3 | APK のアップロード/一覧表示、および外部ホスト APK の登録(エンタープライズ) | | `deobfuscation_files_*` | 1 | ProGuard/ネイティブコードのマッピングをアップロード | | `expansion_files_*` | 4 | OBB — 取得/アップロード/更新/パッチ適用 | | `tracks_*` | 5 | `internal`、`alpha`、`beta`、`production`、およびカスタムのクローズド テスト トラック。一覧表示、取得、更新、パッチ適用、作成 | | `testers_*` | 3 | 内部/クローズド トラック用の Google グループの許可リスト | | `onetime_products_*` | 17 | ✨ サブスクリプション以外の商品の新しい収益化カタログ。3 階層構造:商品 → 購入オプション → オファー。3 階層すべてで完全な CRUD と一括操作に対応 | | `subscriptions_*` | 8 | サブスクリプション カタログ:一覧表示、作成、更新、削除、アーカイブ、一括取得、一括更新 | | `subscription_base_plans_*` | 7 | 月間/年間プラン。有効化、無効化、価格の移行、一括移行、一括更新、および状態 | | `subscription_offers_*` | 10 | 無料トライアル/導入価格。作成、更新、削除、有効化、無効化、および一括操作 | | `monetization_convert_region_prices` | 1 | 1 つの入力価格から比較可能な地域別価格を計算 | | `purchases_products_v2_*` | 1 | 1 回限りの商品購入を確認(複数の購入オプションとオファーに対応) | | `purchases_products_*` | 2 | 1 回限りの購入を承認/消費(`productsv2` で公開されるのは `get` のみ) | | `purchases_subscriptions_v2_*` | 4 | 取得、取り消し、キャンセル、延期。2026 年の `OfferPhase`、`outOfAppPurchaseContext`、価格段階引き上げへの同意、アイテム単位の払い戻しを含む | | `purchases_subscriptions_acknowledge` | 1 | v1 の承認(維持 — 初回購入の承認には引き続き適切な呼び出しです) | | `purchases_voided_list` | 1 | 払い戻し/チャージバックのフィード | | `orders_*` | 5 | 一覧表示、取得、一括取得、払い戻し、払い戻し審査(`get` と一括取得は 2025-05 に追加、`review_refund` は共同チャージバック対応のため 2026-07 に追加) | | `external_transactions_*` | 3 | 代替課金(韓国/EU)— 取得/作成/払い戻し | | `reviews_*` | 3 | 一覧表示、取得、返信 | | `users_*` + `grants_*` | 7 | チームメンバーとアプリごとの権限付与 | | `device_tier_configs_*` | 3 | AAB のデバイス階層ターゲティング | | `app_recovery_*` | 5 | 復旧アクション:一覧表示、作成、デプロイ、キャンセル、ターゲティングの追加 | | `generated_apks_*` | 2 | AAB から生成された APK の一覧表示とダウンロード | | `system_apks_variants_*` | 4 | プリロードのシナリオ向けのシステム APK バリアント | | `internal_app_sharing_*` | 2 | 内部リンク共有用の APK または AAB のアップロード |
Play Developer Reporting API v1beta1 | グループ | ツール | 対象 | |---|---|---| | `reports_apps_*` | 2 | `search`、`fetch_release_filter_options` | | `reports_anomalies_list` | 1 | すべての指標セットで検出された異常 | | `reports_crash_rate_*` | 2 | クラッシュ率 — メタデータ+時系列クエリ | | `reports_anr_rate_*` | 2 | ANR 率 | | `reports_slow_start_rate_*` | 2 | 起動の遅延(コールド起動) | | `reports_slow_rendering_rate_*` | 2 | レンダリングの遅延(ジャンク) | | `reports_excessive_wakeup_rate_*` | 2 | バッテリー — 過剰なウェイクアップ | | `reports_stuck_background_wake_lock_rate_*` | 2 | バッテリー — 解放されないウェイクロック | | `reports_lmk_rate_*` | 2 | 低メモリキラー率 | | `reports_anon_rss_swap_memory_*` | 2 | 匿名 RSS +スワップメモリの使用量 | | `reports_bitmap_memory_*` | 2 | ビットマップメモリの使用量 | | `reports_errors_counts_*` | 2 | エラー数の集計 | | `reports_errors_issues_search` | 1 | グループ化された ErrorIssue の検索 | | `reports_errors_reports_search` | 1 | 生の ErrorReport の検索 |

クイックスタート

npm install -g google-play-developer-mcp

次に、MCP クライアントの設定(例:~/.config/claude/config.json、Cursor MCP 設定、または VS Code の mcp.json)に追加します。

{
  "mcpServers": {
    "google-play-developer": {
      "command": "google-play-developer-mcp"
    }
  }
}

次に、使用する Play Console アカウントをサーバーに指定します。以下のステップごとのセットアップガイドを参照してください。


ステップごとのセットアップ

1. Google Cloud サービスアカウントを作成する
  1. Google Cloud Consoleを開きます。
  2. プロジェクトを選択または作成します(どのプロジェクトでもかまいません。サービスアカウントを配置するためだけに使用します)。
  3. API とサービス → ライブラリで、次の両方を有効にします。
    • Google Play Android Developer API
    • Google Play Developer Reporting API
  4. IAM と管理 → サービスアカウント → サービスアカウントを作成を選択します。
  5. 作成後、アカウントを開き、鍵 → 鍵を追加 → JSONを選択します。JSON ファイルをダウンロードします。
  6. JSON ファイルを安全な場所に移動し、Git リポジトリの外に保管します。おすすめの保存先:~/.config/google-play-developer-mcp/service-account.json。
2. Play Console でサービスアカウントを承認する
  1. Play Consoleを開きます。
  2. ユーザーと権限 → 新しいユーザーを招待を選択します。サービスアカウントのメールアドレス([email protected]のような形式)を貼り付けます。
  3. 権限を割り当てます。
    • すべての機能を利用するには、**管理者(すべての権限)**を選択します。
    • または、MCP で実行できる操作を制限する場合は、より限定的な権限(アプリ情報の表示、ストアの掲載情報の管理、注文と定期購入の管理など)を組み合わせます。
  4. **最大 24 時間待ちます。**Play Console で新しい承認が反映されるまで時間がかかります。よくある注意点です。初期の API 呼び出しで PERMISSION_DENIED が返される場合は、通常これが原因です。
3. MCP サーバーにアカウントを登録する

サーバーを設定済みの MCP クライアントを起動し、次を実行します。

accounts_add --name my-app \
  --keyFile /Users/you/.config/google-play-developer-mcp/service-account.json \
  --description "My company's Play Console"

(または、手動で ~/.google-play-developer-mcp/accounts.json を作成します。ファイル形式については以下を参照してください。)

4. 確認する
auth_status

{ ok: true, email: "..." }が返されるはずです。

apps_list

サービスアカウントから参照できるアプリの一覧が表示されます。


MCP クライアントへの登録

Claude Desktop

macOS:~/Library/Application Support/Claude/claude_desktop_config.json Windows:%APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "google-play-developer": {
      "command": "google-play-developer-mcp"
    }
  }
}
Claude Code
claude mcp add google-play-developer google-play-developer-mcp

または、~/.claude.jsonを編集します。

{
  "mcpServers": {
    "google-play-developer": {
      "command": "google-play-developer-mcp"
    }
  }
}
Cursor

設定 → MCP → 新しい MCP サーバーを追加:

{
  "google-play-developer": {
    "command": "google-play-developer-mcp"
  }
}
VS Code(GitHub Copilot エージェントモード)

.vscode/mcp.json:

{
  "servers": {
    "google-play-developer": {
      "type": "stdio",
      "command": "google-play-developer-mcp"
    }
  }
}
Gemini CLI / Codex CLI / Windsurf / Continue

MCP 準拠のクライアントであれば、同じcommandエントリを使用できます。グローバルにインストールされたgoogle-play-developer-mcpバイナリを指定します(ソースから実行する場合は、node /path/to/dist/index.jsを指定します)。

ソースから実行する(npm install -gなし)
git clone https://github.com/devinwang/google-play-developer-mcp.git
cd google-play-developer-mcp
npm install
npm run build

次に、MCP クライアントの設定に追加します。

{
  "mcpServers": {
    "google-play-developer": {
      "command": "node",
      "args": ["/absolute/path/to/google-play-developer-mcp/dist/index.js"]
    }
  }
}

使用例

新しいビルドを内部テストにリリースする
accounts_switch --name my-app

# Open an edit, upload bundle, route it to the internal track, commit.
edits_insert --packageName com.example.app
# → { id: "EDIT_ID", expiryTimeSeconds: "..." }

bundles_upload --packageName com.example.app --editId EDIT_ID \
  --file /path/to/app-release.aab
# → { versionCode: 47, sha256: "..." }

tracks_update --packageName com.example.app --editId EDIT_ID \
  --track internal \
  --releases '[{"versionCodes":["47"],"status":"completed","releaseNotes":[{"language":"en-US","text":"Fixes a crash on startup."}]}]'

edits_commit --packageName com.example.app --editId EDIT_ID
ベータ版のリリースを段階的に公開して本番環境に昇格させる
edits_insert --packageName com.example.app
# → EDIT_ID

# Promote the beta versionCodes to production with 10% staged rollout.
tracks_update --packageName com.example.app --editId EDIT_ID \
  --track production \
  --releases '[{"versionCodes":["47"],"status":"inProgress","userFraction":0.1}]'

edits_commit --packageName com.example.app --editId EDIT_ID
レビューに返信する
reviews_list --packageName com.example.app --maxResults 50
# → { reviews: [{ reviewId, authorName, comments, ... }] }

reviews_reply --packageName com.example.app --reviewId REVIEW_ID \
  --replyText "Thanks for the feedback! The crash is fixed in v1.2 — please update."
無料試用の特典付き定期購入を作成する
# 1. Create the subscription (product)
subscriptions_create --packageName com.example.app --productId plus_monthly \
  --subscription '{"listings":[{"languageCode":"en-US","title":"Plus","benefits":["All premium features"]}],"taxAndComplianceSettings":{"taxTier":"TAX_TIER_UNSPECIFIED"}}'

# 2. Create a base plan
subscription_base_plans_batch_update --packageName com.example.app --productId plus_monthly \
  --requests '[{"basePlan":{"basePlanId":"monthly","autoRenewingBasePlanType":{"billingPeriodDuration":"P1M","accountHoldDuration":"P30D"},"state":"DRAFT","regionalConfigs":[{"regionCode":"US","price":{"currencyCode":"USD","units":"9","nanos":990000000}}]},"updateMask":"autoRenewingBasePlanType,regionalConfigs"}]'

# 3. Activate the base plan
subscription_base_plans_activate --packageName com.example.app \
  --productId plus_monthly --basePlanId monthly

# 4. Create a 7-day free-trial offer
subscription_offers_create --packageName com.example.app --productId plus_monthly \
  --basePlanId monthly --offerId new-user-trial \
  --offer '{"phases":[{"duration":"P7D","regionalConfigs":[{"regionCode":"US","free":true}]}],"state":"DRAFT"}'

subscription_offers_activate --packageName com.example.app \
  --productId plus_monthly --basePlanId monthly --offerId new-user-trial
購入トークンをサーバー側で検証する(バックエンドでの使用例)
# For a one-time product (consumable or non-consumable)
purchases_products_v2_get --packageName com.example.app --token PURCHASE_TOKEN

# For a subscription — includes 2026 OfferPhase, priceChangeState, etc.
purchases_subscriptions_v2_get --packageName com.example.app --token PURCHASE_TOKEN
クラッシュのトリアージ
reports_crash_rate_query \
  --name "apps/com.example.app/crashRateMetricSet" \
  --dimensions '["versionCode","countryCode"]' \
  --metrics '["crashRate","distinctUsers"]' \
  --timelineSpec '{"aggregationPeriod":"DAILY","startTime":{"year":2026,"month":4,"day":1},"endTime":{"year":2026,"month":4,"day":8}}'

reports_errors_issues_search --parent "apps/com.example.app" \
  --filter "errorIssueType = \"CRASH\""

ツールリファレンス

すべてのツールは、Android Publisher の URL 構造に準拠した resource_action 形式の snake_case 名を使用します。グループの全体像については、機能マトリックスをご覧ください。

各ツールは、引数として JSON オブジェクトを受け取ります。正確な形式を確認するには、MCP クライアントのスキーマを調べてください(Claude Code:/mcp tools、Claude Desktop:チャットでツール一覧を表示、Cursor:MCP パネル)。

複雑な本文引数(例:subscription、offer、appRecoveryAction、subscription の releases)は、Google がドキュメントで定義している JSON スキーマをそのまま受け付けます。公式リファレンスをご覧ください。


セキュリティ

このリポジトリには、認証情報は一切含まれていません。サービスアカウントの JSON キーはご自身で用意してください。サーバーに記録されるのはそのパスだけです。

ディスク上に保存されるものと、保存されないもの:

場所内容
~/.google-play-developer-mcp/accounts.jsonアカウント名、キーファイルのパス、説明。秘密情報は含まれません。0600 権限で作成されます。
~/.config/…/service-account.json(ご自身で配置)実際の Google Cloud サービスアカウント JSON。コミットされることはありません。 どのツールからも出力されません。
リポジトリの内容コードのみ。
.gitignore のブロック対象
  • *.json.key、*service-account*.json、*service_account*.json、*-sa.json、*-sa-key.json
  • gcp-key*.json、google-credentials*.json、play-credentials*.json
  • .env、.env.*(ただし .env.example は保持)
  • accounts.json、credentials/、keys/、secrets/
  • *.pem、*.p12、*.pfx、*.key、id_rsa*
推奨されるセキュリティ対策
  • サービスアカウントの JSON は、マシン上のどの Git リポジトリの外にも保管してください。
  • ワークフローに必要な最小限のロールをサービスアカウントに付与してください。完全な管理者権限を付与すると、MCP にアプリのメタデータを削除する権限が与えられます。必要な権限だけを付与してください。
  • サービスアカウントキーは毎年ローテーションしてください。Google Cloud Console で古いキーを削除し、新しいキーを作成してから、accounts_update --keyFile <newPath> を実行します。
  • auth_status が実際のトークンを返すことはありません。返されるのはブール値とサービスアカウントのメールアドレスのみです。
監査証跡

Android Publisher API に対するすべての書き込み操作は、Google Cloud IAM によってサービスアカウントの ID のもとで記録されます。不正使用が疑われる場合は、Cloud Console の IAM → Audit Logs で呼び出されたエンドポイントを確認できます。


設計上の注意点

  • 編集セッション対応。 Android Publisher API に対するすべての書き込みは、編集内で実行されます。サーバーは edits_insert/edits_commit/edits_delete を直接公開しているため、複数のツール呼び出しにまたがって編集を開いたままにできます。これは最も一般的な複数ステップのフローです。コミットし忘れても、何も公開されません。デフォルトで安全です。
  • 複数アカウント対応。 1 つのサーバープロセスで、多数の Play Console アカウントを管理できます。accounts_switch で切り替えます。状態は ~/.google-play-developer-mcp/accounts.json に保存されます。
  • 非推奨エンドポイント不使用。 カタログのエンドポイントでは、非推奨の inappproducts ではなく monetization.onetimeproducts を使用します。購入の検証では purchasesV2/subscriptionsV2 を使用します。
  • 将来互換性のある型。 Google が API 機能を googleapis の TypeScript 型定義より先にリリースした場合は、publisherAny()/reportingAny() を介してキャストします。HTTP 呼び出しは同一で、既知の差異がある箇所では TypeScript の静的チェックのみをスキップします。
  • 分かりやすいエラーメッセージ。 Google API のすべてのエラーを変換します。401 は「トークンが正しくありません」、403 は「権限が反映されていません。24 時間お待ちください」、429 は「クォータを使い切りました」などのメッセージになります。
  • ステートレスなトランスポート。 サーバーは stdio を使用し、ネットワークリスナーはなく、アカウントファイル以外に永続状態を保持しません。
  • テレメトリーなし。 サーバーが外部にデータを送信することはありません。

コントリビューション

PR を歓迎します。提出前に、以下をご確認ください。

  • npm run typecheck が成功すること(CI でも実行されます)
  • issue や PR にサービスアカウントキーやトークンを絶対に含めないでください。再現手順を共有する必要がある場合は、トークンを伏せてください(X-Goog-Api-Client: ...REDACTED...)。
  • 新しいツールは resource_action の命名規則に従ってください。
  • 新しい API サーフェスにアクセスするツールを追加する場合は、ドキュメントとの整合性を保つため、機能マトリックス に追加してください。

バージョン履歴

0.2.0 — 2026-10-21
  • MCP ツール 157 個(+7)。新規:orders_review_refund、purchases_products_acknowledge、purchases_products_consume、reports_anon_rss_swap_memory_{get,query}、reports_bitmap_memory_{get,query}。
  • googleapis を 171 から 187 にアップグレードしました。
0.1.0 — 2026-04-20(初回公開リリース)
  • MCP ツール 150 個で、Android Publisher API v3 と Play Developer Reporting API v1beta1 の全機能を網羅しています。
  • 最新世代のエンドポイントのみを使用します。monetization.onetimeproducts(非推奨の inappproducts を置き換え)、purchases.productsv2 / subscriptionsv2(v1 を置き換え)を使用します。
  • 2026 年の機能。SubscriptionPurchaseV2.offerPhase、purchases.subscriptionsv2.cancel / defer、orders.batchGet、offerPhaseDetails、価格の段階的引き上げへの同意、outOfAppPurchaseContext。
  • オンディスクレジストリによる複数アカウントのサポート。
  • リポジトリに認証情報は一切含まれていません。包括的な .gitignore を備えています。
  • 一般的な Google API のエラーケースすべてに対応したエラーの変換。

参考資料


ライセンス

MIT — LICENSE をご覧ください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。