google-play-mcp-server
Provides tools for managing Google Play apps, including publishing (tracks, bundles, store listings), subscriptions and in-app products, user reviews, and tester groups via the Google Play Developer API v3.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@google-play-mcp-serverShow me the latest production release notes."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
🎮 Google Play MCP Server
An MCP (Model Context Protocol) server that connects AI assistants to the Google Play Developer API v3 — enabling automated app publishing, subscription management, review monitoring, and tester management.
✨ Features
📦 Publishing — List release tracks, upload AAB bundles, get store listings
💰 Subscriptions & IAP — Query subscription products, base plans, pricing, and in-app products
⭐ Reviews — List user reviews with ratings/device info, reply to reviews directly
👥 Testers — Manage tester groups per release track
🔒 Secure — Service account auth (server-to-server, no OAuth flow needed)
🤖 LLM-Optimized — Markdown responses, clear error messages, proper
isErrorflags
Related MCP server: appstore-intel-mcp
📋 Tools Reference
Publishing
Tool | Description | Read-only |
| List all release tracks (internal/alpha/beta/production) with version codes, status, rollout %, and release notes | ✅ |
| Upload | ❌ |
| Get store listing (title, descriptions, contact info) for any language | ✅ |
Subscriptions & IAP
Tool | Description | Read-only |
| List all subscription products with base plans, billing periods, and pricing | ✅ |
| Get detailed subscription info including all listings, base plans, regional pricing, and offer tags | ✅ |
| List all one-time in-app products (consumable and non-consumable) with pricing | ✅ |
Reviews
Tool | Description | Read-only |
| List user reviews with star ratings, review text, device info, app version, and developer replies. Supports translation | ✅ |
| Post a developer reply to a user review (max 350 chars) | ❌ |
Testers
Tool | Description | Read-only |
| Get Google Group testers for a release track | ✅ |
| Update tester Google Groups for a release track | ❌ |
🚀 Quick Start
1. Prerequisites
Node.js ≥ 18
A Google Cloud project with the Google Play Android Developer API enabled
A Service Account with permissions granted in Play Console
2. Google Cloud Setup
Create a Google Cloud project (or use an existing one)
Go to Google Cloud Console
Enable the API
Navigate to APIs & Services → Library
Search for Google Play Android Developer API
Click Enable
Create a Service Account
Go to IAM & Admin → Service Accounts
Click Create Service Account
Give it a name (e.g.,
play-console-mcp)Click Create and Continue → Done
Download the JSON key
Click on the service account you just created
Go to Keys tab → Add Key → Create new key → JSON
Save the downloaded file securely
Grant Play Console access
Go to Google Play Console
Navigate to Settings → API access
Link your Google Cloud project (if not already linked)
Find your service account and click Manage permissions
Grant the required permissions:
App information (read/write) — for store listings
Release management (read/write) — for tracks and uploads
Monetization management (read-only) — for subscriptions and IAP
Reviews (read + reply) — for review management
Click Invite user → Send invitation
3. Installation
# Clone the repository
git clone https://github.com/quan7794/google-play-mcp-server.git
cd google-play-mcp-server
# Install dependencies
npm install
# Build
npm run buildOr install globally via npm (once published):
npm install -g google-play-mcp-server4. Configuration
The server requires two environment variables:
Variable | Description | Example |
| Absolute path to your service account JSON key file |
|
| Default Android package name for your app |
|
Thepackage_name parameter can be overridden per tool call, so you can manage multiple apps with a single server instance.
5. Add to Your MCP Client
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"google-play": {
"command": "node",
"args": ["/absolute/path/to/google-play-mcp-server/dist/index.js"],
"env": {
"GOOGLE_SERVICE_ACCOUNT_KEY": "/path/to/service-account-key.json",
"GOOGLE_PLAY_PACKAGE_NAME": "com.example.myapp"
}
}
}
}Add to your .vscode/mcp.json or the extension's MCP config:
{
"servers": {
"google-play": {
"command": "node",
"args": ["/absolute/path/to/google-play-mcp-server/dist/index.js"],
"env": {
"GOOGLE_SERVICE_ACCOUNT_KEY": "/path/to/service-account-key.json",
"GOOGLE_PLAY_PACKAGE_NAME": "com.example.myapp"
}
}
}
}Add to ~/.cursor/mcp.json:
{
"mcpServers": {
"google-play": {
"command": "node",
"args": ["/absolute/path/to/google-play-mcp-server/dist/index.js"],
"env": {
"GOOGLE_SERVICE_ACCOUNT_KEY": "/path/to/service-account-key.json",
"GOOGLE_PLAY_PACKAGE_NAME": "com.example.myapp"
}
}
}
}Add to .gemini/settings.json:
{
"mcpServers": {
"google-play": {
"command": "node",
"args": ["/absolute/path/to/google-play-mcp-server/dist/index.js"],
"env": {
"GOOGLE_SERVICE_ACCOUNT_KEY": "/path/to/service-account-key.json",
"GOOGLE_PLAY_PACKAGE_NAME": "com.example.myapp"
}
}
}
}💬 Usage Examples
Once connected, you can ask your AI assistant things like:
"Show me all release tracks and their current versions"
"Upload the bundle at ~/build/app-release.aab to internal testing"
"What subscriptions are configured for my app?"
"Show me recent 1-star reviews"
"Reply to review abc123 thanking them for the feedback"
"What testers are on the beta track?"🔧 Development
npm run dev # Watch mode with hot reload (tsx)
npm run build # Compile TypeScript to dist/
npm run clean # Remove dist/
npm start # Run compiled serverProject Structure
src/
├── index.ts # Entry point — registers tools, connects stdio
├── auth.ts # Google Auth (service account, cached client)
├── constants.ts # Shared constants (CHARACTER_LIMIT, tracks)
├── schemas.ts # Shared Zod schemas (PackageNameSchema)
├── tools/
│ ├── publishing.ts # list_tracks, upload_bundle, get_app_details
│ ├── subscriptions.ts # list/get subscriptions, list IAP
│ ├── reviews.ts # list/reply reviews
│ └── testers.ts # get/update testers
└── utils/
├── errors.ts # GaxiosError → LLM-friendly error messages
└── formatter.ts # Truncation, text content helpers❓ Troubleshooting
Verify
GOOGLE_SERVICE_ACCOUNT_KEYpoints to a valid JSON key fileMake sure the Google Play Android Developer API is enabled in your Cloud project
Check that the service account hasn't been deleted or disabled
Go to Play Console → Settings → API access
Ensure the service account is listed and has been granted appropriate permissions
After granting permissions, it may take a few minutes to propagate
If you just invited the service account, make sure the invitation was accepted
Double-check
GOOGLE_PLAY_PACKAGE_NAMEmatches your app's actual package nameMake sure the app has been published at least once (even to internal testing)
For subscription/IAP tools, ensure the products exist in Play Console
Another edit may be in progress — wait a few seconds and retry
Edits are automatically cleaned up on failure, but a manually created edit in Play Console could conflict
🔒 Security
Service account keys should never be committed to version control
Use minimal permissions — only grant what you need
The server runs locally via stdio — no network ports are opened
All API calls use OAuth 2.0 with the
androidpublisherscope
🤝 Contributing
Contributions are welcome! Please:
Fork the repository
Create a feature branch (
git checkout -b feature/amazing-tool)Make your changes, ensuring
npm run buildpassesSubmit a Pull Request
Adding a New Tool
Add the tool registration in the appropriate file under
src/tools/Use
withErrorHandling()wrapper for consistent error handlingUse
textContent()andtruncateIfNeeded()for responsesAdd proper Zod schemas with
.describe()for all parametersSet correct
annotations(readOnlyHint,destructiveHint, etc.)Update this README
📄 License
MIT © Waclabs
Built with ❤️ using Model Context Protocol and the Google Play Developer API v3.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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/WacLabs/Google-Play-MCP-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server