google-play-developer-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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 | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| accounts_listA | List every Play Console account registered with the MCP server (names + key-file paths, no secrets). |
| accounts_currentA | Show which account is currently active. All subsequent API calls target this account. |
| accounts_addA | Register a new Play Console account. Provide a local filesystem path to a Google Cloud service-account JSON key. The key stays on disk — the MCP only records its path. |
| accounts_removeB | Remove an account from the local registry. Does NOT delete the key file. |
| accounts_switchB | Make an existing registered account the active one. |
| accounts_updateB | Change the key-file path or description of an existing account. |
| auth_statusA | Verify that the active account can acquire a Google OAuth token. Returns the service-account email plus whether a token was obtained. |
| apps_listB | List every Android app the active service account can access. Uses the Play Developer Reporting API's apps.search. |
| apps_getA | Open a fresh edit and return the details resource (contact email/phone/website + default language) for one app. |
| edits_insertA | Open a new edit session for an app. Returns the edit id plus its expiry. Subsequent edits.* tool calls must pass this id. |
| edits_getA | Fetch an existing edit — useful to check expiry before work. |
| edits_validateA | Validate an edit without committing. Catches schema/media errors before you publish. |
| edits_commitB | Commit and publish all changes in the edit. Pass changesNotSentForReview=true to skip automatic review submission. |
| edits_deleteB | Abandon an edit. All pending changes are discarded. |
| details_getA | Get app-level details (contact email/phone/website + default language). |
| details_updateB | Overwrite app-level details. Full replacement — unspecified fields are cleared. |
| details_patchB | Partial update — only the provided fields change. |
| country_availability_getB | Fetch per-country availability for a given track within an edit. |
| listings_listB | List every locale listing within an edit. |
| listings_getC | Get one locale's listing. |
| listings_updateB | Full replacement update of a locale listing. Fields: title (30), shortDescription (80), fullDescription (4000), video (YouTube URL). |
| listings_patchC | Partial update — unspecified fields preserved. |
| listings_deleteC | Delete the listing for one locale. |
| listings_delete_allA | Delete ALL locale listings in this edit. Irreversible within the edit. |
| images_listB | List uploaded images for a specific type and locale. |
| images_uploadB | Upload a new image. |
| images_deleteC | Delete a single image by id. |
| images_delete_allB | Delete every image of a given type in one locale. |
| bundles_listC | List all AAB uploads in the current edit. |
| bundles_uploadA | Upload a new App Bundle (.aab). Returns versionCode and sha256. Commit the edit separately to publish to a track. |
| apks_listB | List all APK uploads in the edit. |
| apks_uploadA | Upload a new APK. Prefer AAB via |
| apks_add_externally_hostedA | Register an APK that is hosted outside Google Play (enterprise-only, requires allowlist). |
| deobfuscation_files_uploadC | Upload a ProGuard mapping file for a specific version code. Use deobfuscationFileType='proguard' or 'nativeCode'. |
| expansion_files_getB | Get expansion file metadata for a version code. |
| expansion_files_uploadC | Upload expansion file contents (OBB). |
| expansion_files_updateC | Full update of expansion file metadata. |
| expansion_files_patchC | Partial update of expansion file metadata. |
| tracks_listA | List every track visible in this edit (includes default internal/alpha/beta/production + any custom closed-testing tracks). |
| tracks_getB | Get one track — includes all releases currently staged. |
| tracks_updateA | Full replacement of track state. |
| tracks_patchC | Partial update of track state. |
| tracks_createA | Create a brand-new custom closed-testing track. The new id is set on the server. Type can only be closedTesting. |
| testers_getB | Get the current tester allowlist for a track. |
| testers_updateB | Full replacement of the tester allowlist. |
| testers_patchC | Partial update of the tester allowlist. |
| onetime_products_listC | List all one-time products. |
| onetime_products_getB | Get a single one-time product. |
| onetime_products_createB | Create a one-time product. Pass the full OneTimeProduct body. |
| onetime_products_updateC | Update a one-time product (patch semantics, with updateMask). |
| onetime_products_deleteC | Delete a one-time product. |
| onetime_products_batch_getB | Fetch up to 100 one-time products in one call. |
| onetime_products_batch_updateC | Update up to 100 one-time products in one call. |
| onetime_products_batch_deleteC | Delete up to 100 one-time products in one call. |
| onetime_product_purchase_options_batch_updateC | Update or create up to 100 purchase options for a one-time product. |
| onetime_product_purchase_options_batch_update_statesC | Activate or deactivate up to 100 purchase options in one call. |
| onetime_product_purchase_options_batch_deleteC | Delete up to 100 purchase options. |
| onetime_product_offers_listB | List offers attached to a purchase option. |
| onetime_product_offers_getB | Get one offer on a purchase option. |
| onetime_product_offers_batch_getC | Batch-get up to 100 offers. |
| onetime_product_offers_batch_updateB | Batch-update up to 100 offers (creates or updates). |
| onetime_product_offers_batch_update_statesC | Activate/deactivate/cancel up to 100 offers. |
| onetime_product_offers_batch_deleteC | Delete up to 100 offers. |
| subscriptions_listC | List all subscriptions. |
| subscriptions_getC | Get a single subscription. |
| subscriptions_createC | Create a subscription. |
| subscriptions_updateB | Patch-update a subscription. Pass |
| subscriptions_deleteA | Delete a subscription. Only works on subscriptions with no active base plans/offers. |
| subscriptions_archiveA | Archive a subscription. Archived subscriptions are hidden from new purchases but existing subscribers keep access. |
| subscriptions_batch_getB | Get up to 100 subscriptions in one call. |
| subscriptions_batch_updateC | Update up to 100 subscriptions in one call. |
| subscription_base_plans_activateC | Activate a base plan — starts making it available for purchase. |
| subscription_base_plans_deactivateA | Deactivate a base plan — no new purchases; existing subscribers unaffected. |
| subscription_base_plans_deleteA | Delete a base plan (must be inactive). |
| subscription_base_plans_migrate_pricesC | Apply a price change to existing subscribers of a base plan in specific regions. |
| subscription_base_plans_batch_migrate_pricesB | Migrate prices on up to 100 base plans in one call. |
| subscription_base_plans_batch_updateC | Upsert up to 100 base plans. |
| subscription_base_plans_batch_update_statesC | Activate/deactivate up to 100 base plans. |
| subscription_offers_listA | List offers for a base plan. |
| subscription_offers_getC | Get a single offer. |
| subscription_offers_createB | Create an offer on a base plan (free trial, intro pricing, etc.). |
| subscription_offers_updateC | Patch-update an offer. |
| subscription_offers_deleteD | Delete an offer. |
| subscription_offers_activateC | Activate an offer — starts making it available for purchase. |
| subscription_offers_deactivateC | Deactivate an offer. |
| subscription_offers_batch_getC | Batch-get up to 100 offers. |
| subscription_offers_batch_updateC | Upsert up to 100 offers. |
| subscription_offers_batch_update_statesC | Activate/deactivate up to 100 offers. |
| monetization_convert_region_pricesA | Utility: convert a price in one region to comparable prices in every other region. Use before setting prices on a base plan. |
| purchases_products_v2_getA | Get current state of a one-time product purchase. Supports multiple purchase options + offers (replaces legacy purchases.products). |
| purchases_subscriptions_v2_getB | Get full state of a subscription purchase (SubscriptionPurchaseV2). Includes OfferPhase (2026), outOfAppPurchaseContext, latestSuccessfulOrderId, priceChangeState, priceStepUpConsentDetails. |
| purchases_subscriptions_v2_revokeC | Revoke a subscription (refund + terminate access). 2025-05 added |
| purchases_subscriptions_v2_cancelC | Cancel a subscription (2025-09+). |
| purchases_subscriptions_v2_deferA | Defer billing for a subscription (2026-01 supports subscriptions with add-ons too). Pass DeferralInfo with expectedExpiryTime + desiredExpiryTime. |
| purchases_subscriptions_acknowledgeB | Acknowledge a subscription purchase. 2025-11+ accepts optional |
| purchases_voided_listB | List voided purchases (refunded/charged-back). Supports filtering by time range + voided source. |
| orders_listC | List orders within a time window. Returns OrderId, productId, purchase state, quantity, offerPhaseDetails. |
| orders_getB | Get one order by order id. |
| orders_batch_getB | Get up to 100 orders in one call. |
| orders_refundB | Refund an order. Pass |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/devinwang/google-play-developer-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server