Play Store MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GOOGLE_APPLICATION_CREDENTIALS | No | Absolute path to the Google service account JSON key file used for Application Default Credentials. The value is a file path, not the JSON contents. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_reviewsB | List reviews for an Android app. Returns Google Play pagination data; pass nextPageToken as pageToken for the next page. |
| get_reviewC | Get one review by its Google Play review ID. |
| list_track_releasesA | Read up to 20 non-obsolete releases for a track, including their lifecycle states. This endpoint does not require an app edit. |
| list_store_listingsA | Read all localized store listings from an existing app edit. Requires an editId; this tool does not create, change, or commit an edit. |
| get_trackA | Read track configuration and active releases from an existing app edit. Requires an editId; this tool does not create, change, or commit an edit. |
| list_tracksA | Read all tracks, including empty tracks, from an existing app edit. |
| list_bundlesC | Read app bundles and version codes from an existing app edit. |
| get_editB | Read an existing edit ID and expiry time. |
| get_testersA | Read Google Groups assigned to a testing track in an existing edit. Individual email lists are not supported by this API. |
| update_testersA | MUTATES an app edit: replaces all Google Groups for a testing track. Include groups to retain. Individual email lists are unsupported. Changes take effect after commit_edit. |
| get_store_listingA | Read one localized listing from an existing app edit. |
| patch_store_listingA | MUTATES an app edit: changes only supplied listing text or video fields for a language. Changes take effect after commit_edit. |
| list_listing_imagesB | Read images for one language and image type from an existing app edit. |
| upload_listing_imageA | MUTATES an app edit: uploads a local PNG or JPEG and adds it to the selected language and image type. Existing images remain. Changes take effect after commit_edit. |
| create_editA | MUTATES Play Console draft state: creates a new app edit and returns its id. Creating an edit can invalidate another open edit for this app; it does not publish changes. |
| upload_bundleA | MUTATES an app edit: reads a local .aab file and uploads its bytes. Returns the bundle versionCode. Does not assign a track or publish the edit. |
| update_trackA | MUTATES an app edit: replaces the full release list for a track with the supplied releases. Include any existing releases you want to retain. Changes do not go live until commit_edit. |
| validate_editB | Checks an app edit for publishing errors without committing it. |
| commit_editA | MUTATES live Play Console state: commits every staged change in the edit, potentially publishing a release. Requires confirmPublish=true. Fails if changes are already in review instead of cancelling that review. |
| discard_editA | MUTATES Play Console draft state: deletes the edit and all its uncommitted changes. Requires confirmDiscard=true. |
| upload_internal_sharing_bundleA | MUTATES Play Console state: uploads a local .aab file to internal app sharing and returns a shareable download URL. It does not create a track release. |
| reply_to_reviewB | Publish or replace the developer reply to a review. This changes the public Play Store listing. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 22 tools
The tools split cleanly along resource lines (edits, tracks, listings, bundles, reviews, testers) and read vs. mutate operations are mostly self-evident from names. The only real overlaps are upload_bundle vs upload_internal_sharing_bundle and list_track_releases vs get_track, though the descriptions distinguish them by edit requirements and sharing destination.
Every tool follows a consistent snake_case verb_noun pattern (list_reviews, get_review, create_edit, patch_store_listing, commit_edit, reply_to_review). The one-word suffix forms like create_edit/discard_edit are still verb_noun and highly predictable.
22 tools is at the heavy end for a single server, and the surface spans several sub-domains (edits, tracks, listings, images, testers, reviews, bundles). Each tool arguably earns its place, but the count makes discovery and selection more burdensome than a tighter core set would.
The edit lifecycle is fully covered (create/get/validate/commit/discard), and tracks, listings, testers, bundles, and reviews each have read/write operations. Gaps remain: there is no way to delete listing images or listings, and no tool for app-level metadata or halting/rolling back a rollout.