Googleplayconsolemcp について
Googleplayconsolemcpは、Google Playのリリース管理とAndroid Vitalsの確認を行うPython製MCPサーバーです。Androidアプリチーム向けに、ビルドのアップロード、テスター管理、段階的公開、品質指標の取得を提供します。
主な機能
- 01トラックとリリースの管理
- 02APKとAABのアップロード
- 03テストトラックのテスター管理
- 04クラッシュとANR指標の確認
- 05バッテリー関連Vitalsの確認
活用シーン
- 01トラック間でビルドを公開・昇格
- 02段階的公開の進行・停止・完了
- 03内部・クローズドテストの参加者更新
- 04クラッシュ、ANR、バッテリー指標の確認
MCP 対応
Google Play Consoleのリリース、ビルド、テスター、Android Vitalsの操作をツールとしてMCPクライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Google Play Console MCP
AI アシスタント(Claude など)が、アーティファクトのアップロードからテスター、段階的リリース、 Android Vitals の管理まで、Google Play ストアのリリースライフサイクル全体を 直接管理できる Python 製のModel Context Protocol サーバーです。
クイックスタート
オプション A — uvx(推奨、インストール不要)
一度だけ実行してください。Claude が各セッションでサーバーを自動的に起動・停止するため、その後は何もする必要がありません。
claude mcp add google-play-mcp \
-e GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json \
-- uvx google-play-mcp
uvが必要です —brew install uvまたはcurl -Lsf https://astral.sh/uv/install.sh | shでインストールしてください
オプション B — pip install
永続的なインストールを希望する場合:
pip install google-play-mcp
claude mcp add google-play-mcp \
-e GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json \
-- google-play-mcp
オプション C — HTTP(ローカルサーバー)
stdio ではなく HTTP トランスポートで接続する場合にのみ必要です:
# Terminal 1 — start the server
GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json \
uvx google-play-mcp --transport http --port 8080
# Terminal 2 — register with Claude
claude mcp add --transport http google-play-mcp http://localhost:8080
stdio の仕組み: オプション A と B では、手動で起動するサーバーはありません。 セッションが開始すると Claude がバックグラウンドでプロセスを起動し、セッションが終了すると 停止します。メンテナンスは不要です。
機能
トラックとリリース
| ツール | 説明 |
|---|---|
list_tracks | すべてのトラック(内部、アルファ、ベータ、本番)と、リリースおよび提供対象国を一覧表示します |
get_track_info | 指定したトラックの詳細なステータス、段階的リリースの割合、リリースノートを取得します |
create_release | 段階的リリースの割合、リリースノート、対象国を指定して、任意のトラックにリリースを作成または置き換えます |
update_release | 既存のリリースの段階的リリースの割合を更新する、一時停止する、再開する、または完了します |
promote_release | トラック間でリリースを昇格します(例:内部 → アルファ → ベータ → 本番) |
アーティファクト管理
| ツール | 説明 |
|---|---|
list_artifacts | すべての APK と AAB を、バージョンコードと SHA ハッシュとともに一覧表示します |
upload_artifact | APK または AAB をアップロードし、1 回の操作でトラックにリリースを作成します |
upload_to_internal_sharing | ビルドを Internal App Sharing にアップロードし、共有可能なダウンロード URL を取得します |
テスター管理
| ツール | 説明 |
|---|---|
get_testers | 内部テストまたはクローズドテストのテスターのメールアドレスと Google グループを取得します |
update_testers | 内部テストまたはクローズドテストのトラックのテスターリストを置き換えます |
Android Vitals
| ツール | 説明 |
|---|---|
get_crash_rate | バージョンコードごとの日次クラッシュ率と、ユーザーが実感するクラッシュ率を取得します |
get_anr_rate | バージョンコードごとの日次 ANR 率と、ユーザーが実感する ANR 率を取得します |
get_vitals_summary | 異常動作のしきい値インジケーターを含む、クラッシュと ANR の概要を取得します |
get_wakelock_rate | バージョンコードごとの日次バックグラウンド wakelock 固着率を取得します(バッテリーの状態) |
get_wakeup_rate | バージョンコードごとの日次過剰 wakeup 率を取得します(バッテリーの状態) |
前提条件
uv— インストールガイド- JSON キーをダウンロード済みの Google Cloud サービスアカウント。
- 適切な権限を付与して、サービスアカウントを Google Play Console に追加します(下記参照)。
- Google Cloud プロジェクトで次の API を有効にします:
Play Console に必要な権限
| ツール | 必要な最小権限 |
|---|---|
upload_artifact, create_release, update_release, promote_release, update_testers | 本番環境へのリリース、デバイスの除外、Google Play によるアプリ署名の使用 |
upload_to_internal_sharing | テストトラックへのリリース |
list_tracks, get_track_info, list_artifacts, get_testers | アプリ情報の表示と一括レポートのダウンロード(読み取り専用) |
get_crash_rate, get_anr_rate, get_vitals_summary, get_wakelock_rate, get_wakeup_rate | アプリ情報の表示と一括レポートのダウンロード(読み取り専用) + Reporting API の有効化 |
重要: リリースマネージャーの権限では Reporting API にアクセスできません。Vitals ツールを使用するには、アカウントレベルとアプリごとの両方で アプリ情報の表示と一括レポートのダウンロード(読み取り専用) も有効にする必要があります。
Claude Desktop との統合
macOS の場合、~/Library/Application Support/Claude/claude_desktop_config.json に追加します。
{
"mcpServers": {
"google-play": {
"command": "uvx",
"args": ["google-play-mcp"],
"env": {
"GOOGLE_APPLICATION_CREDENTIALS": "/absolute/path/to/service-account.json"
}
}
}
}
保存後、Claude Desktop を再起動してください。
サービスアカウントの設定
- GCP プロジェクトで IAM と管理 → サービス アカウント に移動します。
- サービスアカウントを作成(または既存のものを使用)し、JSON キーをダウンロードします。
- Google Play Console → 設定 → API アクセスで、次の操作を行います。
- Google Cloud プロジェクトをリンクします。
- サービスアカウントを見つけて、Play Console の権限を管理を選択します。
- アカウントの権限で、**アプリ情報の表示と一括レポートのダウンロード(読み取り専用)**を有効にします。
- 各アプリのアプリの権限で、次の権限を有効にします。
- アプリ情報の表示と一括レポートのダウンロード(読み取り専用)
- 本番環境へのリリース… (書き込みアクセスが必要な場合)
- 適用 → ユーザーを招待をクリックします。
権限はアカウントレベルとアプリごとの両方で付与する必要があります。 Reporting API では、アカウントレベルの権限だけでは不十分です。
ツールリファレンス
list_tracks
package_name : str — e.g. "com.example.myapp"
すべてのトラックと、そのリリース、段階的公開の割合、ステータス、配信対象国を返します。
get_track_info
package_name : str
track : str — "internal" | "alpha" | "beta" | "production" (default: "production")
人が読みやすい概要に加え、ステータス、段階的公開の割合、バージョンコード、リリースノートを含むリリース情報を返します。
create_release
package_name : str
track : str — "internal" | "alpha" | "beta" | "production"
version_codes : list[int] — e.g. [1042]
rollout_percentage : float — default 10.0 (used when status is "inProgress")
status : str — "draft" (default) | "inProgress" | "halted" | "completed"
release_name : str — optional
release_notes : dict — optional, e.g. {"en-US": "Bug fixes", "fr-FR": "Corrections"}
country_codes : list[str] — optional ISO 3166-1 alpha-2 codes, e.g. ["US", "GB"]
指定したトラックにリリースを作成または置き換えます。段階的な本番公開には rollout_percentage と status="inProgress" を指定し、すべてのユーザーにすぐリリースするには status="completed" を指定します。
update_release
package_name : str
track : str — default "production"
rollout_percentage : float — optional; pass 100 to complete the rollout
status : str — optional; "inProgress" | "halted" | "completed" | "draft"
version_codes : list[int] — optional filter; targets first matching release if omitted
既存のリリースを更新します。一般的な用途は次のとおりです。
- 段階的公開の割合を増やす:
update_release(pkg, rollout_percentage=50) - 段階的公開を完了する:
update_release(pkg, rollout_percentage=100) - 段階的公開を停止する:
update_release(pkg, status="halted") - 段階的公開を再開する:
update_release(pkg, status="inProgress")
promote_release
package_name : str
from_track : str — "internal" | "alpha" | "beta"
to_track : str — "alpha" | "beta" | "production"
version_codes : list[int]
rollout_percentage : float — default 10.0
release_name : str — optional override
release_notes : dict — optional override; inherits from source if omitted
あるトラックのリリースを別のトラックにコピーします。明示的に上書きしない限り、リリースノートと名前はコピー元のリリースから引き継がれます。
list_artifacts
package_name : str
すべての APK と AAB をバージョンコード順(新しいものから)に並べ、SHA ハッシュとともに返します。
upload_artifact
package_name : str
file_path : str — absolute local path to .apk or .aab
track : str — default "internal"
status : str — "draft" (default) | "inProgress" | "completed"
rollout_percentage : float — default 10.0 (used when status is "inProgress")
release_name : str — optional
release_notes : dict — optional
APK または AAB をアップロードし(拡張子から自動判定)、指定したトラックにリリースを単一のアトミック操作で作成します。割り当てられたバージョンコードを返します。
upload_to_internal_sharing
package_name : str
file_path : str — absolute local path to .apk or .aab
Internal App Sharing にビルドをアップロードし(トラックへの割り当ては行いません)、共有可能な downloadUrl を返します。テスターは Play ストアの設定で Internal App Sharing を有効にしている必要があります。リリーストラックに影響を与えず、手早く単発のテストを行うのに最適です。
get_testers
package_name : str
track : str — "internal" (default) | "alpha"
そのトラックのテスターのメールアドレスと Google グループの一覧を返します。
update_testers
package_name : str
track : str — "internal" (default) | "alpha"
emails : list[str] — optional; full replacement list of tester emails
google_groups : list[str] — optional; full replacement list of Google Group emails
警告: これは全件置換です。新しいリストに含まれないテスターはアクセスできなくなります。個別に追加または削除するだけの場合は、まず
get_testersを呼び出して現在のリストを取得してください。
get_crash_rate
package_name : str
days : int — look-back window, 1–30 (default 7)
version_code : str — optional single version code to filter
バージョンコードごとに、日次のcrashRate、userPerceivedCrashRate、distinctUsersを返します。
Googleが定める、ユーザーが認識するクラッシュ率の不適切な動作のしきい値は**約1.09%**です。
get_anr_rate
package_name : str
days : int — look-back window, 1–30 (default 7)
version_code : str — optional single version code to filter
バージョンコードごとに、日次のanrRate、userPerceivedAnrRate、distinctUsersを返します。
Googleが定める、ユーザーが認識するANR率の不適切な動作のしきい値は**約0.47%**です。
get_vitals_summary
package_name : str
days : int — look-back window, 1–30 (default 7)
バージョンコードごとに集計した、クラッシュとANRの概要をまとめて返します。期間中の平均値と、
exceedsCrashThreshold/exceedsAnrThresholdフラグが含まれます。最新バージョンは
latestVersionSummaryとして強調表示されます。
get_wakelock_rate
package_name : str
days : int — look-back window, 1–30 (default 7)
version_code : str — optional single version code to filter
バージョンコードごとに、日次のstuckBackgroundWakelockRateとdistinctUsersを返します。
2026年のGoogle Playのバッテリー健全性に関する取り締まりに関連します。バックグラウンドで
1時間を超えて部分的なウェイクロックを保持するセッションの割合が過剰なアプリは、
ペナルティを受ける可能性があります。
get_wakeup_rate
package_name : str
days : int — look-back window, 1–30 (default 7)
version_code : str — optional single version code to filter
バージョンコードごとに、日次のexcessiveWakeupRateとdistinctUsersを返します。
2026年のGoogle Playのバッテリー健全性に関する取り締まりに関連します。CPUを頻繁に
起動するアプリ(プラットフォームのしきい値を超える場合)は、ペナルティを受ける可能性があります。
トラブルシューティング
Vitals ツールでの403 Forbidden
403 Client Error: Forbidden for url: https://playdeveloperreporting.googleapis.com/...
このエラーには、よくある原因が2つあります。両方を確認してください。
1. Google Play Developer Reporting API が有効になっていない
Google Cloud プロジェクトで有効にしてください: console.cloud.google.com/apis/library/playdeveloperreporting.googleapis.com
2. サービスアカウントにアプリ単位の Reporting API アクセス権がない
- Play Console → 設定 → API アクセス → サービスアカウントを探す → Play Console の権限を管理。
- アプリの権限でアプリを選択し、**アプリ情報の閲覧と一括レポートのダウンロード(読み取り専用)**を有効にします。
- 保存し、変更が反映されるまで数分待ちます。
404 Package not found
サービスアカウントは、アプリを所有するものと同じ Google Play Console アカウントにリンクする必要があります。 Play Console → 設定 → API アクセスに移動し、サービスアカウントが一覧にあり、招待されていることを確認してください。
マーケットプレイス
| レジストリ | リンク |
|---|---|
| PyPI | pip install google-play-mcp |
| Smithery | google-play-mcpを検索 |
| Official MCP Registry | google-play-mcp |
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。