ZMP-MCP
ZMP-MCP lets AI assistants manage Zalo Mini App development tasks through MCP tools.
Check Zalo developer login status, request QR login, wait for scan confirmation, and persist tokens.
Start a local OAuth callback server to capture redirect codes/tokens.
Set or update
APP_IDandZMP_TOKENin a project.env.Retrieve Mini App metadata, quotas, and versions.
Scaffold new React 18/ZAUI/Vite Zalo Mini App projects.
Build projects and automatically sync CSS/JS assets into
app-config.jsonandapp.json.Validate configuration, bundle size limits, and allowed file extensions before upload.
Deploy to Zalo Cloud using chunked uploads with TESTING or DEVELOPMENT version status.
Enables Zalo Mini App development, validation, authentication, asset synchronization, and cloud deployment via the Zalo Developer API, including tools for creating apps, building, validating, and deploying to Zalo Cloud.
Click on "Deploy 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., "@ZMP-MCP build my Zalo Mini App, validate it, and deploy to testing"
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.
ZMP-MCP ๐
ZMP-MCP is an official-grade Model Context Protocol (MCP) server engineered for Zalo Mini App (ZMP) development, automated validation, and cloud deployment.
It bridges AI Coding Assistants (Antigravity, Claude Desktop, Cursor, VS Code / Cline, Windsurf) directly with the Zalo Mini App Platform ecosystem.
๐ Highlights & Solved Problems
๐ Bulletproof Cloud Deployment: Natively handles chunked uploads via Zalo Developer API. Fixes the notorious
The 'versionStatus' is invalidbug by enforcing standardTESTING/DEVELOPMENTstatuses.โก Zero-Config Asset Synchronization: Automatically inspects Vite / Webpack build outputs and synchronizes
listCSS,listSyncJS, andlistAsyncJSintoapp-config.jsonandapp.json. Eliminates the common "No asset defined" deployment error.๐ก๏ธ Pre-flight Validation: Automatically checks bundle size constraints (max 10MB zip, max 3MB per file) and validates file extensions against Zalo's strict whitelist (
.css,.js,.json,.png,.woff2, etc.) before uploading.๐ Developer Authentication: Generate QR codes for mobile Zalo scanning directly in the terminal, check login status, and manage project
.envtokens seamlessly.๐จ Modern Project Scaffolding: Create production-ready Zalo Mini Apps with React 18, ZAUi, Vite, and Dark Mode zero-flicker compliance out of the box.
Related MCP server: Somewhere MCP
๐ ๏ธ Available MCP Tools
Tool Name | Description |
| Check authentication status and developer identity with Zalo Platform. |
| Request login session, generate QR code & link; optionally wait/poll until user scans. |
| Poll for mobile Zalo QR confirmation and automatically persist |
| Launch local HTTP OAuth server (e.g. |
| Safely write or update |
| Query Mini App metadata, quotas, and versions from Zalo API. |
| Scaffold a clean Zalo Mini App project template with Vite, React 18, and ZAUi. |
| Build project for production and automatically sync assets with |
| Synchronize CSS/JS bundles from build output ( |
| Run pre-flight linting on |
| Upload bundle to Zalo Cloud with chunked Resumable protocol, testing quota tracking, and instant preview links. |
| Verify or generate Zalo Webhook signatures ( |
| Start or manage a local webhook listener server with auto-signature checking for tunnels (ngrok/cloudflare). |
| Get comprehensive technical documentation, event schemas, and integration guide for Zalo Mini App Webhook. |
| Perform comprehensive OWASP Top 10 security audit on live Web/Webhook endpoints and local codebases. |
| Audit a project against the Zalo Mini App censorship policy: name rules, external links, permission requests on load, 3rd-party login, ads, cash-out, demo content, eval, HTTP, purchase without Checkout SDK. Returns |
๐ก๏ธ Policy Audit CLI
The same censorship-policy engine as zmp_policy_audit runs from the command line. It exits with code 1 when there is a violation, so CI can block a non-compliant build:
npx -y github:nguyenquocanhz/zmp-mcp audit ./my-mini-app # text report
npx -y github:nguyenquocanhz/zmp-mcp audit ./my-mini-app --json # JSON reportnpm run build also emits dist/zmp-audit.cjs, a dependency-free copy you can drop into a Mini App project as zmp-audit.js to run offline (node zmp-audit.js). Edit the rules in src/policy/engine.ts, never the copy.
๐ Quickstart & Setup (Zero Configuration via npx)
No need to clone or hardcode local paths. You can execute zmp-mcp directly via npx:
npx -y github:nguyenquocanhz/zmp-mcpConfiguration for AI Clients
1. Claude Code CLI & Claude Desktop
Via Claude Code CLI:
/mcp add zmp-mcp npx -y github:nguyenquocanhz/zmp-mcpVia claude_desktop_config.json:
{
"mcpServers": {
"zmp-mcp": {
"command": "npx",
"args": ["-y", "github:nguyenquocanhz/zmp-mcp"]
}
}
}2. OpenAI Codex CLI & Desktop
Via Codex CLI:
codex mcp add zmp-mcp -- npx -y github:nguyenquocanhz/zmp-mcpVia ~/.codex/config.toml:
[mcp_servers."zmp-mcp"]
command = "npx"
args = [ "-y", "github:nguyenquocanhz/zmp-mcp" ]3. Antigravity / Gemini CLI
Add to ~/.gemini/config/mcp_config.json:
{
"mcpServers": {
"zmp-mcp": {
"command": "npx",
"args": ["-y", "github:nguyenquocanhz/zmp-mcp"]
}
}
}4. Cursor / Windsurf
In Cursor settings under Features > MCP Servers:
Name:
zmp-mcpType:
commandCommand:
npx -y github:nguyenquocanhz/zmp-mcp
๐ก Typical Agent Workflows
1. Create a New Zalo Mini App
"Agent, create a new Zalo Mini App named
coffee-shoptitled 'Quรกn Cร Phรช Zalo' with templatezaui-blankinD:/Projects/coffee-shop."
The agent calls zmp_create_app to generate the complete project with Dark Mode, ZAUi layout, and Vite setup.
2. Validate & Build
"Build the project and make sure all assets are registered in
app-config.json."
The agent executes zmp_build, producing the bundle and automatically mapping assets/index.xxx.css and assets/index.xxx.js into app-config.json.
3. Deploy to Testing
"Deploy this mini app as a Testing version with description 'Release v1.0.0'."
The agent executes zmp_deploy, packaging www/, uploading chunks to https://zmp-api.developers.zalo.me/app/upload-chunk, and returning the test URL (https://zalo.me/s/...) with quota report.
4. Webhook Verification & Local Testing (Decree 13 Compliance)
"Start a webhook listener to test Zalo user data deletion events and verify signatures."
The agent executes zmp_manage_webhook_listener (with action: start, port: 8086), giving you a ready-to-test endpoint for tunneling (ngrok http 8086) and verifying signatures with zmp_verify_webhook.
๐ License
MIT ยฉ Nguyen Quoc Anh
Available Tools
11 toolszmp_buildB
Build the Zalo Mini App project and automatically synchronize bundle assets with app-config.json.
Inputs: projectDir (required), outputDirName, autoSyncAssets.
zmp_create_appA
Scaffold a new production-ready Zalo Mini App project with React 18, ZAUI, Vite, and Dark Mode zero-flicker.
Inputs: appName (required), appTitle (required), targetDir (required), appId, +1 more.
zmp_deployB
Deploy Zalo Mini App to Zalo Cloud with automatic asset synchronization, chunked upload, and testing quota tracking.
Inputs: projectDir (required), devMode, description, explicitToken, +2 more.
zmp_get_app_infoB
Retrieve Mini App metadata, quotas, and versions from Zalo Developer API.
Inputs: projectDir (required), appId, token.
zmp_get_login_statusC
Check authentication status with Zalo Mini App Platform for a given project directory or token.
Inputs: projectDir (required), token.
zmp_request_login_qrB
Request a new developer login session and generate a QR code for Zalo authorization. Can optionally wait/poll until scanned.
Inputs: appId, projectDir, timeoutSec, waitForScan.
zmp_set_tokenB
Save or update APP_ID and ZMP_TOKEN in the project local .env file.
Inputs: projectDir (required), appId, token.
zmp_start_oauth_callbackB
Start a local HTTP OAuth callback server (e.g. http://localhost:8085/oauth/callback) to capture redirect code/token.
Inputs: port, zaloAppId, projectDir, timeoutSec.
zmp_sync_configB
Synchronize CSS and JS build assets into app-config.json and app.json to prevent "No asset defined" errors.
Inputs: projectDir (required), outputDirName.
zmp_validate_projectB
Validate project configuration, app-config.json format, bundle size limits (10MB/3MB), and allowed file extensions.
Inputs: projectDir (required), outputDirName.
zmp_wait_for_loginA
Poll and wait for user to confirm mobile Zalo QR scan authorization, then automatically save ZMP_TOKEN into .env.
Inputs: zmpsk (required), projectDir (required), timeoutSec.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelogโฆ
TDQS
Scored across 11 tools
The auth tools (request_login_qr, wait_for_login, get_login_status, start_oauth_callback, set_token) have overlapping responsibilities, especially request_login_qr which can also wait/poll, blurring its boundary with wait_for_login. Build, sync_config, and deploy also all mention asset synchronization, which could cause misselection.
All tools consistently use the zmp_ prefix with snake_case action-noun patterns (e.g., zmp_create_app, zmp_build, zmp_get_app_info). The convention is predictable and readable throughout.
11 tools is well within the ideal range and each maps to a distinct step in the Zalo Mini App lifecycle (auth, create, build, validate, deploy). The count feels appropriately scoped for the server's purpose.
The surface covers the core development lifecycle from authentication through deployment, including project scaffolding, validation, and config sync. Minor gaps exist such as listing all apps or managing app metadata updates, but these are not critical for the primary workflow.
Maintenance
Related MCP Connectors
Deploy and manage Jade Hosting projects from AI clients. Jade account and OAuth required.
Build, validate, deploy โ HTTP APIs, cron jobs, webhooks and MCP tools โ from your AI client.
Deploy and manage your apps, databases, storage, and scheduled jobs from your AI agent
Create, edit, preview, and build Flutter apps via FlutterGo.AI cloud MCP (OAuth).
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage TCSAS miniprogram development tasks such as launching the IDE, previewing, and uploading miniprograms via natural language.17 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to build, deploy, and inspect apps through a hosted backend service, including reading platform docs, deploying raw source, inspecting logs, verifying live pages in browsers, and managing project tasks.MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to deploy and manage apps on blitz.cloud, including databases, environment variables, DNS records, and logs.MIT
- AlicenseNot gradedqualityAmaintenanceEnables developers using agentic AI tools to scaffold applications and integration cards, retrieve API references and best-practice guidelines, inspect project metadata, validate manifests, and detect and fix framework-specific code issues.525 npmMIT