Install
$ agentstack add mcp-lusky3-play-store-mcp ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Play Store MCP Server
[](https://github.com/lusky3/play-store-mcp/actions/workflows/ci.yml) [](https://codecov.io/github/lusky3/play-store-mcp) [](https://sonarcloud.io/summary/newcode?id=lusky3play-store-mcp) [](https://sonarcloud.io/summary/newcode?id=lusky3play-store-mcp) [](https://sonarcloud.io/summary/newcode?id=lusky3play-store-mcp) [](https://sonarcloud.io/summary/newcode?id=lusky3play-store-mcp)
[](https://badge.fury.io/py/play-store-mcp) [](https://github.com/lusky3/play-store-mcp/pkgs/container/play-store-mcp) [](https://www.python.org/downloads/) [](https://sonarcloud.io/summary/newcode?id=lusky3play-store-mcp) [](https://opensource.org/licenses/MIT)
An MCP (Model Context Protocol) server that connects to the Google Play Developer API. Deploy apps, manage releases, respond to reviews, and monitor app health — all through your AI assistant.
✨ Features
- 🚀 App Deployment — Deploy APK/AAB files to any track (internal, alpha, beta, production)
- ⚡ Batch Operations — Deploy to multiple tracks simultaneously
- 🌐 Multi-Language Support — Deploy with release notes in multiple languages
- ✅ Input Validation — Validate package names, tracks, and text before API calls
- 🔄 Automatic Retries — Built-in retry logic with exponential backoff for transient failures
- 📝 Store Listings — Update app titles, descriptions, and videos for any language
- 📈 Release Management — Promote releases between tracks, manage staged rollouts
- 👥 Tester Management — Add and manage testers for testing tracks
- ⭐ Review Management — Fetch and reply to user reviews
- 💳 Subscription Management — List subscriptions and check purchase status
- 🛒 In-App Products — List and manage in-app products
- 📦 Expansion Files — Manage APK expansion files for large apps
- 🧾 Orders — Retrieve detailed transaction information
- 🐳 Docker Support — Run as a container with health checks
- 🔑 Per-Request Credentials — Bring-your-own-credentials for multi-tenant deployments
- 🔒 Secure — Google Cloud service account authentication
🚀 Quick Start
Prerequisites
- Google Cloud Project with the Google Play Developer API enabled
- Service Account with access to your Play Console
- Python 3.11+,
uvx, or Docker installed
Installation
Using uvx (Recommended)
# Run directly without installation
uvx play-store-mcp
Using pip
pip install play-store-mcp
play-store-mcp
Using Docker
docker run -e GOOGLE_APPLICATION_CREDENTIALS=/creds/key.json \
-v /path/to/service-account.json:/creds/key.json:ro \
ghcr.io/lusky3/play-store-mcp:latest
From source
git clone https://github.com/lusky3/play-store-mcp.git
cd play-store-mcp
pip install -e .
play-store-mcp
Configuration
Set the path to your service account key:
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json
Running with HTTP Transport
For remote access or public deployments, run the server with streamable-http transport:
play-store-mcp --transport streamable-http --host 0.0.0.0 --port 8000
The server exposes a /health endpoint for monitoring.
Per-Request Credentials (Recommended for Public Instances)
For public deployments where users bring their own credentials, configure your MCP client to pass credentials in headers:
{
"mcpServers": {
"play-store": {
"url": "https://your-server.com/mcp",
"transport": "http",
"headers": {
"X-Google-Credentials-Base64": "YOUR_BASE64_ENCODED_CREDENTIALS"
}
}
}
}
To get your base64-encoded credentials:
base64 -w 0 **Service Accounts**
5. Create a new service account
6. Download the JSON key file
### 2. Grant Play Console Access
1. Go to [Google Play Console](https://play.google.com/console/)
2. Navigate to **Users and permissions**
3. Click **Invite new users**
4. Enter the service account email (from the JSON file)
5. Grant the following permissions:
- **Release apps to testing tracks** (for internal/alpha/beta)
- **Release apps to production** (for production releases)
- **Reply to reviews** (for review management)
- **View app information and download bulk reports** (for app details and orders)
## 🔒 Environment Variables
| Variable | Description | Required |
| --- | --- | --- |
| `GOOGLE_APPLICATION_CREDENTIALS` | Path to service account JSON key | Yes (or use per-request credentials) |
| `GOOGLE_PLAY_STORE_CREDENTIALS` | Inline JSON credentials string | Alternative to file path |
| `PLAY_STORE_MCP_LOG_LEVEL` | Log level (DEBUG, INFO, WARNING, ERROR) | No (default: INFO) |
| `PLAY_STORE_MCP_DISABLE_DNS_REBINDING` | Disable DNS rebinding protection (for cloud/reverse-proxy deployments) | No |
| `PLAY_STORE_MCP_READ_ONLY` | Disable all write operations (deploy, promote, rollout, reply, listing/tester updates) | No (default: off) |
| `CODE_MODE` | Enable the experimental code-mode transform (opt-in; requires the `play-store-mcp[code-mode]` extra) | No (default: off) |
## 🧪 Development
### Setup
```bash
git clone https://github.com/lusky3/play-store-mcp.git
cd play-store-mcp
uv sync --dev
Running Tests
uv run pytest -v --cov=src/play_store_mcp
Linting
ruff check src/ tests/
ruff format src/ tests/
Type Checking
mypy src/
🐛 Troubleshooting
Error: "Service account key not found"
Ensure GOOGLE_APPLICATION_CREDENTIALS points to a valid JSON file:
ls -la $GOOGLE_APPLICATION_CREDENTIALS
Error: "The caller does not have permission"
Verify the service account has been granted access in Play Console with the required permissions.
Error: "Package name not found"
Ensure the app exists in Play Console and the service account has access to it.
📄 License
MIT License — see [LICENSE](LICENSE) for details.
🙏 Acknowledgments
- Inspired by antoniolg/play-store-mcp (Kotlin)
- Built with the MCP Python SDK
- Uses the Google Play Developer API
🤖 AI Usage Disclaimer
Portions of this codebase were generated with the assistance of Large Language Models (LLMs). All AI-generated code has been reviewed and tested to ensure quality and correctness.
Source & license
This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: lusky3
- Source: lusky3/play-store-mcp
- License: MIT
- Homepage: https://lusky3.github.io/play-store-mcp/
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.