play-console-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PLAY_ASSET_ROOT | No | Directory that uploaded files must live under | the server's working directory |
| PLAY_PACKAGE_NAMES | Yes | Comma-separated package names the server may manage; the first is the default | |
| PLAY_ALLOW_PRODUCTION | No | Set to 1 to allow production track changes | |
| PLAY_SERVICE_ACCOUNT_JSON | No | Path to the service account key | ~/.config/play-console-mcp/service-account.json |
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": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_app_detailsB | App details: default language and contact email, phone and website. Pass edit_id to read the staged state of an edit instead of the live one. |
| list_listingsC | Store listings (title, short and full description, video) for every language. |
| update_listingA | Stages a change to one language's store listing; omitted fields are kept. language is a Play code such as "id" or "en-US". Limits: title 30, short description 80, full description 4000 characters. |
| list_imagesC | Uploaded graphics of one type (icon, featureGraphic, phoneScreenshots, ...) for a language. |
| upload_imagesA | Stages uploads of local PNG/JPEG graphics, checked against Play's size rules first. Screenshots upload in the order given (up to 8). replace=True removes the existing images of this type first; icon, featureGraphic and tvBanner always replace the current image. |
| delete_imagesB | Stages deleting one image by id, or every image of the type when image_id is omitted. |
| stage_store_dirA | Syncs a store folder: listing-.md files, icon*.png, feature-graphic*.png and screenshots/ (as phone screenshots, in file-name order). dry_run=True (the default) only reports what would change. With dry_run=False the listings are patched and each graphic set is replaced in one edit. Graphics go to image_language, by default the first listing's. |
| list_tracksC | Release tracks with their releases, version codes, status and rollout fraction. |
| upload_bundleB | Stages an .aab upload and a release of it on a track (internal draft by default). release_notes maps language to text, e.g. {"id": "...", "en-US": "..."}, 500 characters each. user_fraction (0-1) is required for inProgress. |
| set_track_releaseB | Stages a release of already-uploaded version codes on a track, replacing the track's current releases. Use it to promote a build or change a rollout. |
| edit_summaryC | What an edit would publish: listings, graphic counts per language, and tracks. |
| validate_editB | Asks Play to check an edit without committing it. |
| commit_editA | Publishes an edit's staged changes to Google Play. Only call this after the user has seen edit_summary and approved. send_for_review=False saves the changes without sending them for review. |
| delete_editB | Discards an edit and everything staged in it. |
| list_reviewsB | Recent user reviews with text (Play only returns about the last week). translation_language (e.g. "id") asks Play to translate reviews into it. |
| get_reviewB | One review by id, with the developer reply if there is one. |
| reply_to_reviewA | Publishes a public developer reply (max 350 characters), replacing any earlier reply. This is live at once; confirm the text with the user first. |
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 17 tools
Most tools target clearly distinct resources and actions, and the edit lifecycle tools are well separated. Minor overlap exists between stage_store_dir and the lower-level listing/image tools, and between upload_bundle and set_track_release, though the descriptions clarify the intended boundaries.
Almost all tools use consistent snake_case verb_noun naming. The main deviation is edit_summary, which is a noun phrase rather than a verb-led operation name.
The 17 tools cover several distinct Google Play Console areas and each appears to earn its place. The total is slightly above the typical well-scoped range but remains reasonable for publishing, graphics, tracks, reviews, and edit management.
The surface covers the core publishing workflow: app details, listings, images, tracks, edit validation/commit, and review replies. There are minor gaps such as no explicit create_edit or update_app_details tool, but these are workable within the described flow.