Huawei App Gallery
This server enables full lifecycle management of app publishing on Huawei AppGallery Connect.
App Metadata Management: Query and update app info including name, description, category, age/content ratings, support contacts, and privacy policy URL
Localized Store Listings: Add, update, or remove per-language store listings (name, description, release notes) with BCP-47 language support
File Uploads: Obtain pre-signed upload URLs, upload APK/AAB files from local disk with automatic chunking for large files (>4 GB), or attach already-uploaded files manually
AAB Compilation Status: Query the compilation status of AAB packages by package ID
Release Submission: Submit apps for full release, phased/grey rollout (with configurable percentage), scheduled release, or open testing (channel_id=2)
External Binary Submission: Submit apps using binaries hosted on your own HTTPS server for Huawei to fetch
Phased Release Control: Proceed, roll back, or stop a phased release; convert to full release or update rollout schedule and percentage
Scheduled Release Management: Update scheduled release times while the app is in a Releasing state
GMS Dependency Declaration: Set whether the app depends on Google Mobile Services
Analytics Reports: Retrieve download/installation and installation failure report URLs in CSV or Excel format, covering up to 180 days of data
Provides tools for managing app publishing on Huawei AppGallery, enabling users to update app metadata, upload binaries, and manage the submission and release process through the AppGallery Connect API.
Integrates with Huawei's AppGallery Connect platform to automate application management tasks, including metadata localized listing updates, binary file uploads, and release status monitoring.
Huawei AppGallery MCP
A Model Context Protocol (MCP) server for managing app publishing on Huawei AppGallery Connect. Integrates directly with Claude Desktop or any MCP-compatible client.
Features
Query and update app metadata (name, description, category, ratings, support contacts)
Manage localized store listings per language
Upload APK / AAB files with automatic chunked upload for large files (>4 GB)
Submit apps for full release, phased (grey) release, scheduled release, or open testing (
channel_id=2)Submit apps when the binary is hosted on your own server
Manage phased release lifecycle (state changes, percentage updates)
Query AAB compilation status
Update scheduled release time
Set GMS dependency flag
Obtain download/installation and install-failure report URLs
Related MCP server: 302AI Sandbox MCP Server
Installation
Via MCP Registry (recommended)
Claude Code:
claude mcp add --from-registry io.github.AgiMaulana/HuaweiAppGalleryMcpOther MCP clients:
Find it at registry.modelcontextprotocol.io — search for huawei-appgallery.
Manual installation
pip install huawei-app-gallery-mcpOr with uv:
uv pip install huawei-app-gallery-mcpConfiguration
1. Get API credentials
Go to AppGallery Connect
Navigate to Users & Permissions → API key → Connect API
Click Create and select the App manager role
Copy the Client ID and Client Secret
These are Connect API credentials — different from HMS Core app credentials.
2. Set environment variables
Create a .env file in your working directory (the server loads it automatically):
HUAWEI_CLIENT_ID=your_connect_api_client_id
HUAWEI_CLIENT_SECRET=your_connect_api_client_secret
# Optional: set a default app ID so you don't have to pass it to every tool call
HUAWEI_APP_ID=your_app_id3. Connect to your MCP client (manual install only)
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"huawei-appgallery": {
"command": "huawei-app-gallery-mcp",
"env": {
"HUAWEI_CLIENT_ID": "your_client_id",
"HUAWEI_CLIENT_SECRET": "your_client_secret",
"HUAWEI_APP_ID": "your_app_id"
}
}
}
}Claude Code (machine-level, manual install only)
Create /Library/Application Support/ClaudeCode/managed-mcp.json (macOS) or /etc/claude-code/managed-mcp.json (Linux):
{
"mcpServers": {
"huawei-appgallery": {
"type": "stdio",
"command": "huawei-app-gallery-mcp",
"env": {
"HUAWEI_CLIENT_ID": "your_client_id",
"HUAWEI_CLIENT_SECRET": "your_client_secret",
"HUAWEI_APP_ID": "your_app_id"
}
}
}
}Tools
All tools accept an optional app_id argument. If omitted, HUAWEI_APP_ID from the environment is used as the default.
Tool | Description |
| Query current app metadata (name, description, category, ratings, etc.), optionally for a specific release channel via |
| Update app metadata in the AppGallery Connect draft |
| Add or update a localized store listing for a specific language |
| Remove a localized store listing |
| Obtain a pre-signed upload URL and auth code before uploading a file |
| Upload an APK/AAB from local disk and attach it to the app draft (auto-chunked for >4 GB) |
| Manually attach already-uploaded files to the app draft |
| Query AAB compilation status for one or more package IDs |
| Submit the app for review and release (supports full, phased, scheduled, and open testing via |
| Submit when the binary is hosted on your own server |
| Change phased release status: proceed, roll back, or stop |
| Convert phased release to full release or update the rollout schedule/percentage |
| Update the scheduled release time (only when app is in Releasing state) |
| Report whether the app depends on GMS |
| Get download URL for the app download & installation report (CSV/Excel, max 180 days) |
| Get download URL for the installation failure report (CSV/Excel, max 180 days) |
Usage Examples
Upload and release a new version:
Upload
/path/to/app-release.aab(AAB, file type 5) then submit it for a full release.
Phased rollout:
Submit the app for a phased release to 20% of users.
Open testing:
Submit the app for open testing (channel_id=2).
Inspect open testing:
Query the app metadata for the open testing channel with
query_app_info(channel_id=2).
Update release notes:
Update the English release notes to "Bug fixes and performance improvements".
Scheduled release:
Submit the app for release on March 20, 2026 at 10:00 UTC.
Download report:
Get the download and installation report URL for the last 30 days in English CSV format.
Publishing Workflow
Update app info → Update language info → Upload APK/AAB → Submit appUse
update_app_info/update_language_infoto set metadata and release notesUse
upload_app_fileto upload the binary (handles chunking automatically)Use
submit_appto trigger review and release
Package Release Workflow
For package release instructions, see docs/RELEASE.md.
API Reference
This server wraps the AppGallery Connect Publishing API.
License
MIT
Available Tools
17 toolschange_phased_release_stateB
Proceed, roll back, or stop a phased (grey) release.
Inputs: state (required), app_id, phased_release_start_time, phased_release_end_time, +1 more.
delete_language_infoB
Remove a localized store listing from the app draft.
Inputs: lang (required), app_id.
get_download_report_urlA
Get download URL for app download/install report (CSV or Excel). Max 180-day range.
Inputs: language (required), start_time (required), end_time (required), app_id, +2 more.
get_install_failure_report_urlB
Get download URL for installation failure report (CSV or Excel). Max 180-day range.
Inputs: language (required), start_time (required), end_time (required), app_id, +2 more.
get_upload_urlB
Get a pre-signed upload URL and authCode for an APK/AAB/asset file. Returns uploadUrl, chunkUploadUrl, authCode.
Inputs: suffix (required), app_id, file_name, release_type.
query_app_infoA
Query app metadata (name, description, category, content rating) from AppGallery Connect. Optionally scope to a release channel with channel_id=2 for open testing.
Inputs: app_id, release_type, channel_id.
query_compile_statusA
Query AAB compilation status for package IDs returned after upload.
Inputs: pkg_ids (required), app_id.
set_gms_dependencyA
Declare whether the app depends on GMS (Google Mobile Services).
Inputs: need_gms (required), app_id.
submit_appA
Submit app for review/release. Supports full, phased, scheduled, channel releases, and open testing (channel_id=2). Save all info first.
Inputs: app_id, release_type, release_percent, release_time, +6 more.
submit_app_with_fileB
Submit app for release using a file hosted on your server (Huawei downloads via HTTPS during review).
Inputs: file_type (required), files (required), app_id, release_type, +3 more.
update_app_file_infoA
Attach already-uploaded files to the app draft. Use after get_upload_url + manual upload.
Inputs: file_type (required), files (required), app_id.
update_app_infoA
Update app metadata in the AppGallery Connect draft (name, description, category, ratings, support contacts, privacy policy).
Inputs: app_id, default_lang, app_name, app_desc, +9 more.
update_language_infoB
Add or update localized store listing (name, description, release notes) for a language.
Inputs: lang (required), app_id, app_name, app_desc, +2 more.
update_phased_releaseC
Convert phased release to full, or update its schedule/percentage.
Inputs: state (required), app_id, phased_release_start_time, phased_release_end_time, +2 more.
update_release_timeB
Update scheduled release time. Only valid when app is in Releasing state.
Inputs: change_type (required), app_id, release_time, release_type.
upload_app_fileA
Upload APK/AAB from local disk to AppGallery (get URL → upload, auto-chunked >4 GB → attach to draft).
Inputs: file_path (required), file_type (required), app_id.
upload_fileA
Upload a file to AppGallery using a pre-signed URL (Step 2 of upload flow). Returns fileDestUrl for use in update_app_file_info.
Inputs: file_path (required), upload_url (required), auth_code (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 17 tools
Most tools map to distinct resources and actions, but the upload flow has three overlapping tools (upload_file, upload_app_file, update_app_file_info) and submit_app vs submit_app_with_file are easy to confuse. Descriptions help, but an agent could still pick the wrong step in the upload/release workflow.
Naming follows a clear verb_noun snake_case pattern throughout, using query_, update_, delete_, get_, upload_, and submit_ consistently. Minor inconsistencies like query vs get, change_phased_release_state vs update_phased_release, and upload_file vs upload_app_file prevent a perfect score.
At 17 tools, the set is slightly above the ideal 3-15 range but reasonable for an app publishing console covering metadata, localization, upload, release management, and reports. No tool feels completely redundant, though the set is on the heavier side.
The core release workflow is covered: metadata, localization, upload/attach, submission, phased/scheduled releases, and reports. However, there is no way to query current submission/review/release status, list existing localized listings, or see uploaded files, which creates a notable gap for agents managing the full lifecycle.
Maintenance
Related MCP Connectors
Community preview of HuaweiCloud DevKit MCP server (official: io.github.huaweicloud)
MCP server for Appcircle mobile CI/CD platform.
Model Context Protocol server for the Apideck Unified API. Connect any MCP-compatible agent framework to 100+ accounting systems, HRIS platforms, file storage providers, and more through one integration. More information https://www.apideck.com/mcp-server
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Related MCP Servers
- AlicenseDqualityDmaintenanceA server built on mcp-framework that enables integration with Claude Desktop through the Model Context Protocol.11MIT
- AlicenseAqualityDmaintenanceA Model Context Protocol (MCP) server for Claude Desktop that connects to 302AI's API services, allowing users to integrate and leverage 302AI capabilities through a structured communication interface.915 npm21MIT
- AlicenseAqualityBmaintenanceA Model Context Protocol (MCP) server for Apple's App Store Connect API. Manage your iOS, macOS, tvOS, and visionOS apps directly from Claude, Cursor, or any MCP-compatible client.52175 npm23MIT
- AlicenseAqualityDmaintenanceA Model Context Protocol (MCP) server that connects Cursor, Claude Desktop, and other MCP clients to the official App Store Connect API—so you can manage iOS/macOS apps, TestFlight, in-app subscriptions, and store metadata via chat or automated tool calls.69104 npm14MIT