RuStore MCP Server
MCP server for managing app publishing on RuStore (Android app store). Provides 34 tools: APK/AAB uploads, icon and screenshot management, version control, moderation, reviews, payments, subscriptions, access control, and product catalog.
Status
[!WARNING] The package is not yet published to PyPI. Only local installation is available at this time.
Prerequisites
- Python 3.11+
- RuStore Console API key (keyId + Base64-encoded private key)
Local Installation
Windows (PowerShell)
git clone https://github.com/eustatos/RuStoreMcp.git
cd RuStoreMcp
python -m venv .venv
.venv\Scripts\activate
pip install -e ".[dev]"
Windows (CMD)
git clone https://github.com/eustatos/RuStoreMcp.git
cd RuStoreMcp
python -m venv .venv
.venv\Scripts\activate.bat
pip install -e ".[dev]"
macOS / Linux
git clone https://github.com/eustatos/RuStoreMcp.git
cd RuStoreMcp
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
After installation, the rustore-mcp executable (rustore-mcp.exe on Windows)
is available inside the virtual environment at:
| Platform | Path |
|---|---|
| Windows | .venv\Scripts\rustore-mcp.exe |
| macOS | .venv/bin/rustore-mcp |
| Linux | .venv/bin/rustore-mcp |
Configuration
Create a .env file in the project root based on .env.example:
RUSTORE_KEY_ID=your_key_id
RUSTORE_PRIVATE_KEY=your_base64_private_key
RUSTORE_PACKAGE_NAME=com.example.app # optional
RUSTORE_KEY_ID— key identifier from RuStore ConsoleRUSTORE_PRIVATE_KEY— Base64-encoded private keyRUSTORE_PACKAGE_NAME— default package name (can be overridden per-request)
Usage
Direct execution
# Windows
.venv\Scripts\rustore-mcp.exe
# macOS / Linux
.venv/bin/rustore-mcp
Claude Desktop integration
Add to your Claude Desktop configuration (claude_desktop_config.json):
Windows:
{
"mcpServers": {
"rustore": {
"command": "C:\\Users\\<user>\\path\\to\\RuStoreMcp\\.venv\\Scripts\\rustore-mcp.exe",
"env": {
"RUSTORE_KEY_ID": "your_key_id_here",
"RUSTORE_PRIVATE_KEY": "your_base64_private_key_here",
"RUSTORE_PACKAGE_NAME": "com.example.app"
}
}
}
}
macOS / Linux:
{
"mcpServers": {
"rustore": {
"command": "/path/to/RuStoreMcp/.venv/bin/rustore-mcp",
"env": {
"RUSTORE_KEY_ID": "your_key_id_here",
"RUSTORE_PRIVATE_KEY": "your_base64_private_key_here",
"RUSTORE_PACKAGE_NAME": "com.example.app"
}
}
}
}
Logging
Log level is controlled via the RUSTORE_LOG_LEVEL environment variable:
# Windows (CMD)
set RUSTORE_LOG_LEVEL=DEBUG
.venv\Scripts\rustore-mcp.exe
# macOS / Linux
RUSTORE_LOG_LEVEL=DEBUG .venv/bin/rustore-mcp
Supported values: DEBUG, INFO, WARNING, ERROR, CRITICAL. Default: INFO.
Available Tools (34)
Publishing
| Tool | Description |
|---|---|
get_app_list |
List applications |
create_draft_version |
Create a draft version |
get_version_status |
Get version status |
upload_apk |
Upload APK file |
upload_aab |
Upload AAB file |
upload_icon |
Upload app icon |
upload_screenshot |
Upload screenshot |
delete_draft |
Delete a draft version |
change_publish_settings |
Update publish settings |
commit_to_moderation |
Submit for moderation |
publish_version |
Publish a version |
archive_version |
Archive a version |
Reviews & Rating
| Tool | Description |
|---|---|
get_feedback_list |
List reviews |
get_feedback_csv |
Export reviews as CSV |
answer_feedback |
Reply to a review |
get_answer_status |
Get reply status |
get_answers_statuses |
Get reply statuses in bulk |
change_answer |
Edit a reply |
delete_answer |
Delete a reply |
get_app_rating |
Get app rating stats |
Payments
| Tool | Description |
|---|---|
get_payment_info |
Get payment details |
refund_payment |
Refund a payment |
get_invoices_by_date |
Get invoices by date range |
confirm_purchase |
Confirm a purchase |
cancel_purchase |
Cancel a purchase |
get_user_purchases |
Get user purchases |
Subscriptions
| Tool | Description |
|---|---|
get_subscription_info |
Get subscription details |
cancel_subscription |
Cancel a subscription |
approve_subscription |
Approve a subscription |
Access & Catalog
| Tool | Description |
|---|---|
get_access_list |
List access grants |
grant_access |
Grant access to a user |
revoke_access |
Revoke access from a user |
get_catalog_products |
List catalog products |
get_catalog_subscriptions |
List catalog subscriptions |
Development
# Install dev dependencies
pip install -e ".[dev]"
# Run all tests
pytest -v
# Run tests with coverage
pytest -v --cov=rustore_mcp --cov-report=term-missing
# Type checking
mypy rustore_mcp/
# Run a single test file
pytest tests/test_auth.py -v
License
MIT
Metadata
Release files for ru-store-mcp 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ru_store_mcp-0.1.0.tar.gz | 65.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ru_store_mcp-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 93.9 kB
Release files / ru_store_mcp-0.1.0.tar.gz
| Download URL | ru_store_mcp-0.1.0.tar.gz |
|---|---|
| Size | 65.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9c758de66f06c6e939e1d9fade6afe6b1d3cc6a574d0bc107c38252841a50181
|
|
BLAKE2b-256 checksum How to use checksums |
49fe761353927212ef6b125108e433bfcbec16b6d9b313ae8ded76b02841d7d7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Release files / ru_store_mcp-0.1.0-py3-none-any.whl
| Download URL | ru_store_mcp-0.1.0-py3-none-any.whl |
|---|---|
| Size | 28.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
037469ef90b0de7fc7190c9a9f2e93ec12c689b0174d445b91711af13fffb3cc
|
|
BLAKE2b-256 checksum How to use checksums |
7d3485b800154d2f5a4321cc5561e9c8d266f6a17692086aa3378a1b5e8a860e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|