play-store-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PLAY_STORE_MCP_LOG_LEVEL | No | Log level (DEBUG, INFO, WARNING, ERROR). Default: INFO. | INFO |
| GOOGLE_PLAY_STORE_CREDENTIALS | No | Inline JSON credentials string (alternative to GOOGLE_APPLICATION_CREDENTIALS). | |
| GOOGLE_APPLICATION_CREDENTIALS | No | Path to service account JSON key file. Required unless using per-request credentials. |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| deploy_appA | Deploy an APK or AAB file to a Play Store track. Args: package_name: App package name (e.g., com.example.myapp) track: Release track - one of: internal, alpha, beta, production file_path: Absolute path to APK or AAB file release_notes: Optional release notes for this version (string for single language, or use release_notes_multilang for multiple languages) release_notes_language: Language code for release notes (default: en-US) rollout_percentage: Rollout percentage (0-100). Default 100 for full rollout. Returns: Deployment result with success status and details |
| deploy_app_multilangA | Deploy an APK or AAB file with multi-language release notes. Args: package_name: App package name (e.g., com.example.myapp) track: Release track - one of: internal, alpha, beta, production file_path: Absolute path to APK or AAB file release_notes: Dictionary mapping language codes to release notes (e.g., {"en-US": "Bug fixes", "es-ES": "Corrección de errores"}) rollout_percentage: Rollout percentage (0-100). Default 100 for full rollout. Returns: Deployment result with success status and details |
| promote_releaseB | Promote a release from one track to another. Args: package_name: App package name from_track: Source track (internal, alpha, beta) to_track: Destination track (alpha, beta, production) version_code: Version code to promote rollout_percentage: Rollout percentage for target track (0-100) Returns: Promotion result with success status and details |
| get_releasesB | Get release status for all tracks of an app. Args: package_name: App package name Returns: List of tracks with their releases and version information |
| halt_releaseA | Halt a staged rollout. Use this to stop a release that is currently rolling out. The release will be marked as halted and users will stop receiving updates. Args: package_name: App package name track: Track containing the release (internal, alpha, beta, production) version_code: Version code of the release to halt Returns: Result with success status and details |
| update_rolloutA | Update the rollout percentage for a staged release. Use this to increase or decrease the percentage of users receiving an update. Set to 100 to complete the rollout. Args: package_name: App package name track: Track containing the release version_code: Version code of the staged release rollout_percentage: New rollout percentage (0-100) Returns: Result with success status and details |
| get_app_detailsB | Get app details including title, description, and developer info. Args: package_name: App package name language: Language code for localized content (default: en-US) Returns: App details including title, descriptions, and developer information |
| get_reviewsA | Get recent reviews for an app. Args: package_name: App package name max_results: Maximum number of reviews to return (default: 50, max: 100) translation_language: Optional language code to translate reviews to Returns: List of reviews with ratings, comments, and author info |
| reply_to_reviewA | Reply to a user review. Args: package_name: App package name review_id: ID of the review to reply to (from get_reviews) reply_text: Text of the reply (will be visible to the reviewer) Returns: Result with success status |
| list_subscriptionsA | List all subscription products for an app. Args: package_name: App package name Returns: List of subscription products with their base plans |
| get_subscription_statusA | Get the status of a subscription purchase. Args: package_name: App package name subscription_id: Subscription product ID purchase_token: The purchase token from the client app Returns: Subscription purchase status including expiry and renewal info |
| list_voided_purchasesA | List voided purchases (refunds, chargebacks). Args: package_name: App package name max_results: Maximum number of results (default: 100) Returns: List of voided purchases with reason and timing |
| get_vitals_overviewB | Get Android Vitals overview for an app (placeholder - requires Play Developer Reporting API). Returns placeholder data. Full implementation requires the separate Play Developer Reporting API, not the Play Developer API. Args: package_name: App package name Returns: Vitals overview placeholder |
| get_vitals_metricsA | Get specific Android Vitals metrics (placeholder - requires Play Developer Reporting API). Returns placeholder data. Full implementation requires the separate Play Developer Reporting API, not the Play Developer API. Args: package_name: App package name metric_type: Type of metric to retrieve (crashRate, anrRate, etc.) Returns: List of vitals metrics placeholders |
| list_in_app_productsA | List all in-app products for an app. Args: package_name: App package name Returns: List of in-app products with SKU, title, description, and pricing |
| get_in_app_productA | Get details of a specific in-app product. Args: package_name: App package name sku: Product SKU identifier Returns: In-app product details including title, description, and pricing |
| get_listingA | Get store listing for a specific language. Args: package_name: App package name language: Language code (e.g., en-US, es-ES, fr-FR) Returns: Store listing with title, descriptions, and video |
| update_listingA | Update store listing for a specific language. Args: package_name: App package name language: Language code (e.g., en-US, es-ES, fr-FR) title: App title (max 50 characters, optional) full_description: Full description (max 4000 characters, optional) short_description: Short description (max 80 characters, optional) video: YouTube video URL (optional) Returns: Update result with success status |
| list_all_listingsB | List all store listings for all languages. Args: package_name: App package name Returns: List of store listings for all configured languages |
| get_testersA | Get testers for a specific testing track. Args: package_name: App package name track: Track name (internal, alpha, beta) Returns: Tester information with list of email addresses |
| update_testersB | Update testers for a specific testing track. Args: package_name: App package name track: Track name (internal, alpha, beta) google_groups: List of Google Group email addresses Returns: Update result with success status |
| get_orderB | Get detailed order/transaction information. Args: package_name: App package name order_id: Order ID to retrieve Returns: Order details including product, purchase state, and token |
| get_expansion_fileA | Get APK expansion file information. Expansion files are used for large apps (especially games) that exceed the 100MB APK size limit. Args: package_name: App package name version_code: APK version code expansion_file_type: Type of expansion file (main or patch) Returns: Expansion file information including size and references |
| validate_package_nameA | Validate package name format before using it in other operations. Args: package_name: Package name to validate (e.g., com.example.myapp) Returns: Validation result with any errors found |
| validate_trackB | Validate track name before using it in deployment operations. Args: track: Track name to validate (internal, alpha, beta, production) Returns: Validation result with any errors found |
| validate_listing_textA | Validate store listing text lengths before updating. Args: title: App title (max 50 characters) short_description: Short description (max 80 characters) full_description: Full description (max 4000 characters) Returns: Validation result with any errors found |
| batch_deployA | Deploy an app to multiple tracks in a single operation. This is useful for deploying to internal and alpha tracks simultaneously, or for promoting to multiple testing tracks at once. Args: package_name: App package name file_path: Absolute path to APK or AAB file tracks: List of tracks to deploy to (e.g., ["internal", "alpha"]) release_notes: Optional release notes for all tracks rollout_percentages: Optional dict mapping track names to rollout percentages Returns: Batch deployment result with individual results for each track |
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
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/lusky3/play-store-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server