Google Play release lifecycle: tracks, testers, rollout, and Android Vitals.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste into ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)
A Python Model Context Protocol server that lets AI assistants (Claude, etc.) manage the full Google Play Store release lifecycle directly β from uploading artifacts to managing testers, rollouts, and Android Vitals.
uvx (recommended, no install needed)Run this once. Claude automatically starts and stops the server for every session β you never have to touch it again.
Requires
uvβ install withbrew install uvorcurl -Lsf https://astral.sh/uv/install.sh | sh
pip installIf you prefer a permanent install:
Only needed if you want to connect via HTTP transport instead of stdio:
How stdio works: With Options A and B, there is no server to start manually. Claude launches the process in the background when a session opens and shuts it down when the session ends. Zero maintenance.
| Tool | Description |
|---|---|
list_tracks | List all tracks (internal, alpha, beta, production) with releases and country availability |
get_track_info | Get detailed status, rollout %, and release notes for a specific track |
create_release | Create or replace a release on any track with rollout %, release notes, and country targeting |
update_release | Update rollout %, halt, resume, or complete an existing release |
promote_release | Promote a release between tracks (e.g. internal β alpha β beta β production) |
| Tool | Description |
|---|---|
list_artifacts | List all APKs and AABs with their version codes and SHA hashes |
upload_artifact | Upload an APK or AAB and create a release on a track in one step |
upload_to_internal_sharing | Upload a build to Internal App Sharing and get a shareable download URL |
| Tool | Description |
|---|---|
get_testers | Get tester email addresses and Google Groups for internal/closed testing |
update_testers | Replace the tester list for an internal or closed testing track |
| Tool | Description |
|---|---|
get_crash_rate | Daily crash rate and user-perceived crash rate by version code |
get_anr_rate | Daily ANR rate and user-perceived ANR rate by version code |
get_vitals_summary | Combined crash + ANR overview with bad behavior threshold indicators |
get_wakelock_rate | Daily stuck background wake lock rate by version code (battery health) |
get_wakeup_rate | Daily excessive wakeup rate by version code (battery health) |
uv β install guide| Tools | Minimum permission required |
|---|---|
upload_artifact, create_release, update_release, promote_release, update_testers | Release to production, exclude devices, and use app signing by Google Play |
upload_to_internal_sharing | Release to testing tracks |
list_tracks, get_track_info, list_artifacts, get_testers | View app information and download bulk reports (read-only) |
get_crash_rate, get_anr_rate, get_vitals_summary, get_wakelock_rate, get_wakeup_rate | View app information and download bulk reports (read-only) + Reporting API enabled |
Important: Release Manager does not grant Reporting API access. You must also enable View app information and download bulk reports (read-only) β both at account level and per-app level β for the Vitals tools to work.
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):
Restart Claude Desktop after saving.
Permissions must be granted at both account level and per-app level. Account-level alone is not sufficient for the Reporting API.
list_tracksReturns all tracks with their releases, rollout percentages, statuses, and country availability.
get_track_infoReturns a human-readable summary plus releases with status, rollout %, version codes, and release notes.
create_releaseCreates or replaces a release on the given track. Use status="inProgress" with a
rollout_percentage for a staged production rollout, or status="completed" to release
to all users immediately.
update_releaseUpdate an existing release. Common use cases:
update_release(pkg, rollout_percentage=50)update_release(pkg, rollout_percentage=100)update_release(pkg, status="halted")update_release(pkg, status="inProgress")promote_releaseCopies a release from one track to another. Release notes and name are inherited from the source release unless explicitly overridden.
list_artifactsReturns all APKs and AABs sorted by version code (newest first) with SHA hashes.
upload_artifactUploads an APK or AAB (auto-detected from extension) and creates a release on the given track in a single atomic operation. Returns the assigned version code.
upload_to_internal_sharingUploads a build to Internal App Sharing (bypasses track assignment) and returns a
shareable downloadUrl. Testers must have Internal App Sharing enabled in their Play
Store settings. Ideal for quick one-off testing without affecting any release track.
get_testersReturns the list of tester email addresses and Google Groups for the track.
update_testersWarning: This is a full replacement. Testers not in the new list will lose access. Call
get_testersfirst to retrieve the current list if you only want to add/remove individuals.
get_crash_rateReturns daily crashRate, userPerceivedCrashRate, and distinctUsers per version code.
Google's bad behavior threshold for user-perceived crash rate is ~1.09%.
get_anr_rateReturns daily anrRate, userPerceivedAnrRate, and distinctUsers per version code.
Google's bad behavior threshold for user-perceived ANR rate is ~0.47%.
get_vitals_summaryReturns a combined crash + ANR summary aggregated per version code, with averages over
the period and exceedsCrashThreshold / exceedsAnrThreshold flags. The latest version
is highlighted as latestVersionSummary.
get_wakelock_rateReturns daily stuckBackgroundWakelockRate and distinctUsers per version code.
Relevant for 2026 Google Play battery health enforcement β apps with an excessive
proportion of sessions holding a partial wake lock for more than 1 hour in the background
may be penalized.
get_wakeup_rateReturns daily excessiveWakeupRate and distinctUsers per version code.
Relevant for 2026 Google Play battery health enforcement β apps that wake the CPU too
frequently (above platform thresholds) may be penalized.
403 Forbidden on Vitals toolsThis error has two common causes β check both:
1. Google Play Developer Reporting API not enabled
Enable it in your Google Cloud project: console.cloud.google.com/apis/library/playdeveloperreporting.googleapis.com
2. Service account lacks per-app Reporting API access
404 Package not foundThe service account must be linked to the same Google Play Console account that owns the app. Go to Play Console β Setup β API access and verify the service account is listed and has been invited.
| Registry | Link |
|---|---|
| PyPI | pip install google-play-mcp |
| Smithery | search google-play-mcp |
| Official MCP Registry | google-play-mcp |
MIT
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/google-play-console-mcp)<a href="https://allmcps.com/mcp/google-play-console-mcp"><img src="https://allmcps.com/api/badge/google-play-console-mcp?style=directory" alt="Google Play Console MCP on AllMCPs" /></a>