Skip to main content

wechat-devtools-mcp

WeChat Mini Program development automation via MCP - IDE control, debugging, testing, and deployment workflows

Aller à l'installation

Informations de source

Dépôt
reason-machines/devtools-skills
Dernière activité de la source
28 mai 2026 à 09:51
Langue détectée de SKILL.md
anglais
Étoiles
4
Forks
0

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
name
wechat-devtools-mcp
description
WeChat Mini Program development automation via MCP - IDE control, debugging, testing, and deployment workflows
triggers
["debug the WeChat mini program","preview the mini program QR code","check console errors in the WeChat IDE","upload this mini program to WeChat","test all pages for errors","take a screenshot of the current page","navigate to the login page and check logs","mock the WeChat payment API"]
# wechat-devtools-mcp > Skill by [ara.so](https://ara.so) — Devtools Skills collection. ## Overview `wechat-devtools-mcp` wraps the WeChat Developer Tools CLI as an MCP (Model Context Protocol) server, enabling AI coding agents to control the WeChat IDE programmatically. It provides 7 aggregated tools covering the full mini program lifecycle: IDE management, build/deploy, automated testing, debugging, screenshots, and file operations. **Architecture**: Thin MCP (7 tools) + Fat Skill (SOPs, parameter references, guardrails). The Skill is **required** — without it, AI agents cannot execute standard workflows correctly. **Platform**: Cross-platform (Windows/macOS). Published to official [MCP Registry](https://modelcontextprotocol.io/). ## Installation ### 1. Install MCP Server ```bash # Install uv if not present pip install uv # Install wechat-devtools-mcp globally uv tool install wechat-devtools-mcp --force ``` **Upgrade**: ```bash # Kill running instances first taskkill /F /IM "wechat-devtools-mcp*" 2>/dev/null uv tool upgrade wechat-devtools-mcp ``` ### 2. Enable WeChat IDE Service Port **Critical**: Open WeChat Developer Tools → Settings → Security → Service Port → Enable. Verify with `wechat_ide(action='status')` — connection failure means the port is disabled. ### 3. Configure MCP Client **Claude Desktop / Antigravity** (`claude_desktop_config.json`): ```json { "mcpServers": { "wechat-devtools": { "command": "uvx", "args": ["wechat-devtools-mcp"], "env": { "WECHAT_DEVTOOLS_CLI": "C:\\Program Files (x86)\\Tencent\\微信web开发者工具\\cli.bat", "WECHAT_PROJECT_PATH": "D:\\Projects\\my-miniapp" } } } } ``` **macOS** (Claude Code `.mcp.json` in project root): ```json { "mcpServers": { "wechat-devtools": { "command": "/opt/homebrew/bin/uvx", "args": ["wechat-devtools-mcp"], "env": { "PATH": "/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin", "WECHAT_DEVTOOLS_CLI": "/Applications/wechatwebdevtools.app/Contents/MacOS/cli", "WECHAT_PROJECT_PATH": "/Users/you/Projects/my-miniapp", "NODE_PATH": "/opt/homebrew/bin/node" } } } } ``` **Environment Variables**: - `WECHAT_DEVTOOLS_CLI`: Absolute path to CLI (`cli.bat` on Windows, `cli` on macOS) - `WECHAT_PROJECT_PATH`: Absolute path to mini program project root - Windows: Escape backslashes (`\\`), macOS: Use forward slashes ### 4. Install Skill (Required) **Claude Code**: ```bash npx -y skills add WaterTian/wechat-devtools-mcp/.agents/skills/wechat-devtools ``` **Other clients** (place in `.agents/skills/`): ```bash git clone --depth 1 https://github.com/WaterTian/wechat-devtools-mcp.git .wdm-tmp mkdir -p .agents/skills cp -r .wdm-tmp/.agents/skills/wechat-devtools .agents/skills/ rm -rf .wdm-tmp ``` Result: ``` project/ └── .agents/skills/ └── wechat-devtools/ ├── SKILL.md # Main SOPs + capability map └── references/ └── tool_reference.md # Full API parameter docs ``` ## Core Tools ### 1. `wechat_ide` — IDE Lifecycle **Actions**: `open`, `login`, `is_login`, `close`, `quit`, `status` ```python # Open IDE and load project wechat_ide(action='open') # Check login status wechat_ide(action='is_login') # Get IDE connection status + MCP version wechat_ide(action='status') # Close project (keeps IDE running) wechat_ide(action='close') # Quit IDE entirely wechat_ide(action='quit') ``` **Key patterns**: - Always call `status` first to verify IDE connectivity - `open` is idempotent — won't fail if already open - Use `close` between test sessions, `quit` only when necessary ### 2. `wechat_build` — Build & Deploy **Actions**: `compile`, `preview`, `upload`, `build_npm`, `cache_clean` ```python # Full compilation wechat_build(action='compile') # Generate preview QR code result = wechat_build( action='preview', extra_args={ 'qr_format': 'terminal', # or 'image', 'base64' 'qr_output': '/tmp/qr.png', 'compile_condition': '{"pathName":"pages/index/index"}' } ) # Upload to WeChat backend (production) wechat_build( action='upload', extra_args={ 'version': '1.0.0', 'desc': 'Initial release' } ) # Build npm dependencies wechat_build(action='build_npm') # Clean cache before rebuild wechat_build(action='cache_clean') ``` **QR formats**: - `terminal`: ASCII art in console - `image`: Save to `qr_output` path - `base64`: Data URI string ### 3. `wechat_automator` — Automated Testing **Actions**: `start`, `tap`, `input`, `element_info`, `set_data`, `call_method`, `call_wx`, `mock_wx`, `evaluate`, `page_stack`, `page_data`, `system_info`, `storage` ```python # Start automation session wechat_automator(action='start') # Tap element by selector wechat_automator( action='tap', extra_args={ 'selector': '.login-btn', 'wait_for': 2000 # Wait 2s after tap } ) # Input text wechat_automator( action='input', extra_args={ 'selector': 'input.username', 'text': 'testuser' } ) # Get element properties wechat_automator( action='element_info', extra_args={'selector': '.status-text'} ) # Mock WeChat API wechat_automator( action='mock_wx', extra_args={ 'api': 'request', 'result': 'success', 'data': '{"code": 200, "data": {"user": "mock"}}' } ) # Get page data wechat_automator(action='page_data') # Execute JavaScript wechat_automator( action='evaluate', extra_args={'code': 'getCurrentPages()[0].data.userInfo'} ) ``` **Selector syntax**: - `.class-name` — Class selector - `#id` — ID selector - `view.item[data-id="123"]` — Attribute selector - Use `>>>` for shadow DOM: `custom-component >>> .inner-element` ### 4. `wechat_inspector` — Runtime Logs **Actions**: `console`, `cdp` ```python # Capture console logs (10 seconds) logs = wechat_inspector( action='console', extra_args={'duration': 10} ) # Capture Chrome DevTools Protocol events cdp_logs = wechat_inspector( action='cdp', extra_args={ 'duration': 5, 'events': ['Network.requestWillBeSent', 'Runtime.consoleAPICalled'] } ) ``` **Use cases**: - Detect runtime errors before they crash - Monitor network requests during user flow - Capture console.log/warn/error for debugging ### 5. `wechat_screenshot` — Visual Testing ```python # Screenshot current page wechat_screenshot(extra_args={'full_page': True}) # Screenshot specific element wechat_screenshot(extra_args={ 'selector': '.product-list', 'full_page': False }) ``` Returns base64-encoded PNG. For long pages, automatically stitches scrolling captures. ### 6. `wechat_navigate` — Navigation + Log Capture ```python # Navigate to page and capture CDP logs wechat_navigate(extra_args={ 'page': 'pages/detail/detail', 'query': 'id=123', 'log_duration': 3 }) ``` Combines `wx.navigateTo()` + `wechat_inspector(cdp)` in one call. ### 7. `wechat_file` — Project Introspection **Actions**: `project_info`, `list_pages`, `read_page`, `read_file` ```python # Get project.config.json wechat_file(action='project_info') # List all pages in app.json wechat_file(action='list_pages') # Read page source (WXML + WXSS + JS + JSON) wechat_file( action='read_page', extra_args={'page_path': 'pages/index/index'} ) # Read arbitrary file wechat_file( action='read_file', extra_args={'file_path': 'utils/request.js'} ) ``` ## Standard Operating Procedures (SOPs) ### SOP A: Initial Setup Verification 1. `wechat_ide(status)` — Verify IDE connectivity 2. `wechat_file(project_info)` — Confirm project loaded 3. `wechat_ide(is_login)` — Check login status 4. If not logged in: `wechat_ide(login)` and wait for user scan ### SOP B: UI Debugging Workflow 1. `wechat_automator(start)` — Begin session 2. `wechat_navigate(page='target/page', log_duration=3)` 3. `wechat_screenshot(full_page=True)` — Capture UI state 4. `wechat_inspector(console, duration=5)` — Check for errors 5. `wechat_automator(page_data)` — Inspect data bindings ### SOP C: Error Investigation 1. `wechat_inspector(console, duration=10)` — Capture logs 2. `wechat_automator(page_stack)` — Check navigation state 3. `wechat_file(read_page, page_path=<current>)` — Review source 4. `wechat_automator(evaluate, code='getApp().globalData')` — Check global state ### SOP D: Full Page Health Check ```python pages = wechat_file(action='list_pages') for page in pages['pages']: wechat_navigate(extra_args={'page': page, 'log_duration': 2}) logs = wechat_inspector(action='console', extra_args={'duration': 2}) if 'error' in logs.lower(): print(f"❌ {page}: {logs}") else: print(f"✅ {page}: OK") ``` ### SOP E: Mock-Based Integration Test 1. `wechat_automator(start)` 2. `wechat_automator(mock_wx, api='request', result='success', data=<mock_json>)` 3. `wechat_automator(tap, selector='.trigger-request-btn')` 4. `wechat_inspector(console, duration=3)` — Verify mock response handling 5. `wechat_automator(page_data)` — Check UI updated correctly ### SOP F: Deployment Workflow 1. `wechat_build(cache_clean)` — Fresh build 2. `wechat_build(compile)` — Check for errors 3. If errors: Stop and report 4. `wechat_build(preview)` — Generate test QR 5. User scans and validates 6. `wechat_build(upload, version=<semver>, desc=<changelog>)` ### SOP G: Page Parameter Discovery ```python # Find page query params from source source = wechat_file(action='read_page', extra_args={'page_path': 'pages/detail/detail'}) # Parse onLoad(options) in JS file # Extract options keys: id, type, etc. ``` ## Configuration Patterns ### Multi-Project Setup For multiple mini programs, create project-specific `.mcp.json`: ```json { "mcpServers": { "wechat-shop": {
Voir sur GitHub
Ce SKILL.md est tres volumineux, SkillsMP affiche donc ici seulement la premiere section. Voir sur GitHub