Skip to main content
Glama
WaterTian

wechat-devtools-mcp

by WaterTian

WeChat 개발자 도구 MCP Server (v0.9.15)

PyPI version MCP Registry License: MIT English

WeChat 개발자 도구 CLI를 MCP(Model Context Protocol) 서비스로 래핑하여, 에디터의 AI가 WeChat CLI 명령을 직접 호출할 수 있게 함으로써 미니프로그램 개발, 테스트, 디버깅, 자동화 전 과정을 완결형으로 구현합니다.

[!IMPORTANT] 본 프로젝트는「슬림 MCP + 풀 Skill」아키텍처를 채택합니다: MCP Server는 7개의 통합 API를 제공하며, 함께 제공되는 wechat-devtools Skill이 SOP 프로세스, 파라미터 빠른 참조 및 모범 사례를 제공합니다. 두 가지를 반드시 함께 사용해야 하며, Skill이 없으면 AI가 올바른 프로세스로 미니프로그램을 조작할 수 없습니다.

공식 MCP Registry에 게시 완료, 크로스 플랫폼(Windows / macOS) 원클릭 설치를 지원합니다.


🌐 English Documentation →


🚀 설치 및 빠른 시작

Step 1 — MCP Server 설치

uv 사용을 권장합니다. Python 의존성을 자동으로 처리하고 격리된 실행 환경을 제공합니다.

pip install uv                                  # 安装 uv(如已安装可跳过)
uv tool install wechat-devtools-mcp --force     # 一键安装到全局隔离环境

[!WARNING] 이전에 pip install로 구버전을 설치한 적이 있다면, 버전 충돌을 피하기 위해 먼저 제거하세요:

pip uninstall wechat-devtools-mcp

pip install 경로(예: Python313/Scripts/)가 uv tool install 경로(~/.local/bin/)보다 우선할 수 있어 실제로 구버전이 실행될 수 있습니다. wechat_ide(action='status')가 반환하는 mcp_version 필드로 현재 버전을 확인할 수 있습니다.

[!WARNING] 버전 호환성: ≥0.9.11은 mcp 1.x 및 2.x 이중 버전을 지원합니다(의존성 선언 mcp[cli]>=1.9,<3). ≤0.9.10은 mcp ≥2.0과 호환되지 않습니다(새로 설치 시 ModuleNotFoundError: mcp.server.fastmcp 오류 발생, #9 참조) — 고정 버전 사용자는 ≥0.9.11로 업그레이드하거나 설치 시 --with "mcp<2"를 추가하세요.

[!TIP]

  • 실제 실행 버전 확인(≥0.9.13):

    wechat-devtools-mcp --version    # 零依赖打印实际安装版本;uvx 复用已装环境不自拉最新,此命令可直接确认
    uv tool list | grep wechat       # 离线确认已安装版本
  • 도구 업그레이드: 에디터에서 MCP 서비스가 실행 중이면 프로세스를 먼저 종료한 후 업그레이드하세요:

    # Bash / CMD
    taskkill /F /IM "wechat-devtools-mcp*" 2>/dev/null; uv tool upgrade wechat-devtools-mcp
    # Windows PowerShell
    Get-Process | Where-Object { $_.ProcessName -like "*wechat-devtools*" } | Stop-Process -Force
    uv tool upgrade wechat-devtools-mcp
  • Agent 원클릭 업그레이드:

    taskkill /F /IM "wechat-devtools-mcp*" 2>/dev/null; uv tool upgrade wechat-devtools-mcp && npx -y skills add WaterTian/wechat-devtools-mcp/.agents/skills/wechat-devtools

Step 2 — 개발자 도구 서비스 포트 켜기

[!WARNING] 반드시 수동으로 켜야 합니다. 그렇지 않으면 AI가 어떤 명령도 내릴 수 없습니다.

조작 경로: 개발자 도구 → 설정 → 보안 설정 → 서비스 포트 → 켜기

💡 wechat_ide(action='status')로 포트가 켜져 있는지 확인할 수 있습니다 — 연결 실패가 반환되면 서비스 포트가 아직 활성화되지 않은 것입니다.

Step 3 — 필수 경로 확인

다음 두 개의 절대 경로를 미리 확보하세요. 나중에 에디터 설정에 입력해야 합니다:

경로

Windows 예시

macOS 예시

WeChat 개발자 도구 CLI

C:\Program Files (x86)\Tencent\微信web开发者工具\cli.bat

/Applications/wechatwebdevtools.app/Contents/MacOS/cli

미니프로그램 프로젝트 루트 디렉터리

D:\MyProjects\mini-app

/Users/<you>/Projects/mini-app

macOS 사용자: JSON 설정에서 슬래시(/)는 이스케이프할 필요가 없습니다(그대로 작성); Windows 사용자는 \를 \\로 작성해야 합니다.

Step 4 — 에디터 설정

claude_desktop_config.json 또는 mcp_config.json(Antigravity) 수정:

{
  "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:\\Your\\Project\\Path"
      }
    }
  }
}

~/.kiro/settings/mcp.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:\\Your\\Project\\Path",
        "PYTHONIOENCODING": "utf-8"
      },
      "autoApprove": [
        "wechat_ide", "wechat_build", "wechat_automator", "wechat_inspector",
        "wechat_screenshot", "wechat_navigate", "wechat_file"
      ]
    }
  }
}

~/.codex/config.toml(전역) 또는 .codex/config.toml(프로젝트 수준) 편집:

[mcp_servers.wechat-devtools]
command = "uvx"
args = ["wechat-devtools-mcp"]

[mcp_servers.wechat-devtools.env]
WECHAT_DEVTOOLS_CLI = "C:\\Program Files (x86)\\Tencent\\微信web开发者工具\\cli.bat"
WECHAT_PROJECT_PATH = "D:\\Your\\Project\\Path"

CLI로 빠르게 추가할 수도 있습니다:

codex mcp add wechat-devtools \
  --env WECHAT_DEVTOOLS_CLI="C:\\Program Files (x86)\\Tencent\\微信web开发者工具\\cli.bat" \
  --env WECHAT_PROJECT_PATH="D:\\Your\\Project\\Path" \
  -- uvx wechat-devtools-mcp

MCP 콘솔에서 새 Server 추가:

  • Name: wechat-devtools

  • Type: command

  • Command: uvx wechat-devtools-mcp

  • Environment Variables: 위와 동일하게 WECHAT_DEVTOOLS_CLI 및 WECHAT_PROJECT_PATH 추가

Windows에서 경로의 백슬래시는 이스케이프(\\)해야 합니다.

Claude Code로 미니프로그램 저장소에서 개발한다면 프로젝트 수준 .mcp.json을 만들 수 있습니다(저장소를 자동으로 따라가며 협업자에게도 적용됨).

Windows — 저장소 루트 디렉터리 .mcp.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:\\Your\\Project\\Path"
      }
    }
  }
}

macOS — 저장소 루트 디렉터리 .mcp.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>/WeChatProjects/<project>",
        "NODE_PATH": "/opt/homebrew/bin/node"
      }
    }
  }
}

macOS의 세 가지 핵심 차이점:

  • command는 절대 경로 /opt/homebrew/bin/uvx를 사용해야 합니다(Claude Code가 하위 프로세스를 생성할 때 PATH에 Homebrew가 포함되지 않음)

  • env.PATH를 명시적으로 주입해야 합니다(npx 기반 MCP(예: cloudbase / chrome-devtools)를 함께 구성할 때 특히 필요, 그렇지 않으면 npx의 #!/usr/bin/env node가 Node를 찾지 못함)

  • NODE_PATH는 daemon 시작 시 이중 안전장치로 명시적 지정을 권장합니다

여러 MCP(cloudbase / chrome-devtools 등)를 동시에 구성할 때 각 server에 동일한 패턴으로 command 절대 경로와 env.PATH를 처리하세요.

Trae v1.3.0+는 MCP를 지원합니다. AI 패널 → 우측 상단 설정 → MCP → 추가 → 수동 구성에서 아래 JSON을 붙여넣고 저장하세요.

Windows:

{
  "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:\\Your\\Project\\Path"
      }
    }
  }
}

macOS:

{
  "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>/WeChatProjects/<project>",
        "NODE_PATH": "/opt/homebrew/bin/node"
      }
    }
  }
}

설정 파일을 직접 편집할 수도 있습니다:

  • Windows: %APPDATA%\Trae\User\globalStorage\mcp.json

  • macOS: ~/Library/Application Support/Trae/User/globalStorage/mcp.json

[!IMPORTANT] 채팅창에서 반드시 「Builder with MCP」 에이전트를 선택해야 합니다. 일반 에이전트는 MCP 도구를 호출하지 않습니다. wechat-devtools Skill(Step 5)도 함께 설치하여 AI가 SOP 순서대로 호출하도록 권장합니다.

Step 5 — Skill 설치(필수)

[!IMPORTANT] 본 MCP는 반드시 wechat-devtools Skill과 함께 사용해야 합니다. Skill에는 AI가 미니프로그램을 조작하는 데 필요한 모든 SOP 프로세스, 파라미터 빠른 참조 및 문제 해결 가이드가 포함되어 있습니다. Skill이 설치되지 않으면 AI는 기본 API만 호출할 수 있으며 표준화된 테스트 및 디버깅 프로세스를 자동으로 실행할 수 없습니다.

방법 1: npx skills add(Claude Code 사용자)

npx -y skills add WaterTian/wechat-devtools-mcp/.agents/skills/wechat-devtools

~/.claude/skills/에 설치되며 Claude Code가 자동으로 로드합니다.

방법 2: .agents/skills/에 수동 배치(.agents/skills/ 기반으로 로드하는 Trae 등 클라이언트)

미니프로그램 프로젝트 루트 디렉터리에서 실행:

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

완료 후 디렉터리 구조:

your-project/
└── .agents/skills/
    └── wechat-devtools/
        ├── SKILL.md                # 主指令文件(SOP + 能力映射 + 红线规则)
        └── references/
            └── tool_reference.md   # 7 个聚合 API 完整参数参考

[!TIP] Trae 사용자: 설정 → 스킬 및 명령 → .agents 스킬 디렉터리 활성화 스위치가 켜져 있는지 확인하고(기본 켜짐), 저장 후 새로고침하면 「스킬 → 프로젝트」 탭에서 wechat-devtools를 볼 수 있습니다.


Related MCP server: weapp-agent-mcp

🛠️ 도구 상자 개요

MCP Server는 7개의 통합 도구를 제공하며, 미니프로그램 전체 수명 주기를 포괄합니다:

도구

기능

지원 action

wechat_ide

IDE 수명 주기 관리

open login is_login close quit status

wechat_build

빌드 및 배포

compile preview upload build_npm cache_clean

wechat_automator

자동화 상호작용

start tap input element_info set_data call_method call_wx mock_wx evaluate page_stack page_data system_info storage

wechat_inspector

런타임 로그 수집

console cdp

wechat_screenshot

화면 스크린샷(긴 이미지 이어붙이기)

—

wechat_navigate

페이지 이동 및 CDP 로그 수집

—

wechat_file

프로젝트 파일 읽기

project_info list_pages read_page read_file

클라우드 함수 및 클라우드 데이터베이스 관리는 CloudBase MCP(manageFunctions / readNoSqlDatabaseContent 등)를 사용하세요. 기능이 더 완전하고 IDE 의존성이 없습니다. wechat_cloud는 v0.9.5부터 비활성화되었습니다.

전체 도구 파라미터 설명은 MCP_DOC.md 를 참조하세요.


🧠 Skill 내용 상세

Skill을 통해 AI는 자연어 명령을 받은 후 표준화된 작업 프로세스를 자동으로 매칭하고 실행합니다:

사용자 발화

AI 실행 프로세스

"모든 페이지에 오류가 있는지 확인해줘"

SOP D — 전체 페이지 순찰

"로그인 버튼을 클릭하고 스크린샷으로 결과를 봐줘"

SOP B — UI 디버깅

"페이지가 하얀 화면인데, 원인을 찾아줘"

SOP C — 이상 원인 조사

"결제 API를 Mock하고 결제 프로세스를 테스트해줘"

SOP E — Mock 통합 테스트

"상세 페이지를 테스트할 건데, 파라미터 이름이 뭐야?"

SOP G — 하위 페이지 테스트

"각 페이지의 포인트가 일치하는지 비교해줘"

SOP I — 페이지 간 데이터 검증

Skill 포함 내용

  • 9개 SOP 프로세스 — 초기화, UI 디버깅, 이상 원인 조사, 전체 페이지 순찰, Mock 통합 테스트, 네트워크 디버깅 및 UI 적응, 하위 페이지 테스트, 페이지 간 데이터 검증, 병렬 데이터 비교

  • 기능 매핑 사전 — 7개 통합 도구 × 전체 action 빠른 인덱스

  • CDP 점진적 문제 해결 전략 — concise → full 2단계, Token 소비 제어

  • 전체 파라미터 참조 — 각 action의 필수/선택 파라미터, 반환 예시, 일반 템플릿

  • 문제 해결 매뉴얼 — 일반적인 오류 코드 및 수정 방법

설치 방법은 Step 5 — Skill 설치 참조


💡 환경 변수

변수명

설명

기본값

필수

WECHAT_DEVTOOLS_CLI

WeChat 개발자 도구 CLI 경로

—

예

WECHAT_PROJECT_PATH

기본 미니프로그램 프로젝트 절대 경로

—

예

WECHAT_CLI_TIMEOUT

CLI 명령 제한 시간(초)

30

아니요

NODE_PATH

Node.js 실행 파일 경로

node

아니요


❓ 자주 묻는 질문

가장 흔한 원인: WeChat 개발자 도구의 "서비스 포트"가 켜져 있지 않습니다. 설정 → 보안 → 서비스 포트로 이동하여 켜세요. 켠 후 IDE를 재시작할 필요 없이 AI가 즉시 연결을 복구합니다.

개발자 도구를 수동으로 열었다면 디버깅 포트를 수신하지 않을 수 있습니다. 개발자 도구를 닫고 AI가 wechat_ide(action='open', cdp_enabled=True)를 실행하여 디버깅 모드로 시작하게 하세요.

에디터의 MCP 서비스가 아직 실행 중입니다. Step 1 아래의 업그레이드 안내를 참조하세요 — 프로세스를 먼저 종료한 후 업그레이드해야 합니다.

pip install로 설치한 구버전의 우선순위가 더 높을 수 있습니다. pip uninstall wechat-devtools-mcp를 실행하여 구버전을 제거한 후, wechat_ide(action='status')로 mcp_version 필드가 최신 버전인지 확인하세요.

에디터 설정의 env에서 WECHAT_DEVTOOLS_CLI에 절대 경로가 입력되었는지 확인하세요:

  • Windows: 이중 백슬래시 사용(예: C:\\...\\cli.bat)

  • macOS: 표준 경로 /Applications/wechatwebdevtools.app/Contents/MacOS/cli, 슬래시 이스케이프 불필요

GUI 클라이언트(예: Claude Desktop)가 MCP를 시작할 때 PATH에 /opt/homebrew/bin이 포함되지 않을 수 있습니다. MCP v0.9.6부터 Homebrew 표준 경로를 자동으로 시도합니다; 그래도 실패하면 env에 명시적으로 설정하세요:

"NODE_PATH": "/opt/homebrew/bin/node"

📋 버전 이력

版本

说明

0.9.15

개발자 도구 2.x(Electron) 적응 + CDP 수집 장기 무효화 수정: 개발자 도구 2.x는 Electron으로 전환(1.06.x Stable은 여전히 NW.js, 이중 트랙 호환, 교체 없음). macOS 시작 경로는 Resources/package.nw 존재 여부로 런타임을 자동 판별하고, 진입점은 Info.plist의 CFBundleExecutable을 읽으며, kill 모드는 .app 패키지 경로를 사용——기존 모드는 Electron 프로세스를 매칭하지 못해 macOS에서 기본 매개변수의 wechat_ide(action='open')이 완전히 사용 불가능했음; 2.x는 더 이상 명령줄 --project를 인식하지 않으므로, 먼저 CDP로 프로세스를 시작한 후 CLI로 프로젝트를 열고, CDP와 IDE 서비스 포트가 모두 준비될 때까지 기다린 후 계속 진행(그렇지 않으면 CLI가 CDP 없는 인스턴스를 별도로 실행하여 '프로젝트는 열렸지만 CDP에 연결할 수 없음'이라는 가짜 성공이 발생). wechat_inspector(action='cdp')가 v0.9.0부터 항상 0건을 반환하는 문제 수정——daemon은 결과를 data에 넣지만 inspector는 존재하지 않는 logs를 읽어, 가장 많이 사용되는 오류 진단 도구가 8개 마이너 버전 동안 조용히 작동하지 않았음. daemon 스트림 상한을 asyncio 기본 64 KiB에서 16 MiB로 상향(2.x에서 6초 수집 시 실제 634 KiB, 초과 시 모든 결과가 조용히 폐기됨). CDP 노이즈 필터링을 2.x target 구조에 맞게 조정, 추가된 IDE 셸 페이지와 type=webview로 누락된 devtools:// 제거(실측 734건 → 206건). IDE 포트 탐지는 IDE가 디스크에 기록하는 .ide 파일을 읽도록 변경(하드코딩된 후보 포트는 2.x에서 전혀 맞지 않음); status에 service_port_enabled(CLI_TIMEOUT의 1순위 원인, 이제 자가 진단 가능)와 ide_port 추가; wechat_ide / wechat_build에 cdp_port 매개변수 추가(9222는 Chrome에 자주 점유됨)

0.9.14

파일 읽기 경로 수정 + 매개변수 무효화 수정: wechat_file의 read_page/read_file을 list_pages와 동일한 기준으로 변경(먼저 project.config.json의 miniprogramRoot로 해석, 그다음 프로젝트 루트로 폴백)——이전에는 클라우드 개발 프로젝트에서 list_pages가 반환한 pages/xxx/index를 read_page에 전달하면 반드시 '페이지 파일을 찾을 수 없음' 오류가 발생하여 SOP G 1단계가 바로 영향받음; 동일 이름의 파일이 두 루트에 모두 존재할 때 also_found_at을 추가하여 정확히 알리고, project.config.json은 프로젝트 루트의 권위 있는 사본을 고정 사용; read_page는 resolved_base를, read_file은 resolved_path를 반환. wechat_inspector(action='cdp')에 cdp_port 전달 추가(이전에는 이 매개변수가 무의미하여 항상 9222에 연결됨). subprocess.CREATE_NO_WINDOW를 모두 getattr 폴백으로 변경하여 비 Windows 플랫폼의 AttributeError 위험 제거

0.9.13

--version 조기 종료 + 문서 대조 수정: wechat-devtools-mcp --version / -V가 의존성 없이 설치 버전을 출력한 후 바로 종료(uvx가 설치된 환경을 재사용하여 최신 버전을 자동으로 가져오지 않으므로 한 줄 명령으로 실제 버전 확인 가능); 문서 수정: navigate 매개변수 표 5열 오류, 설정 -> 보안 설정 메뉴 이름, mcp_version 예시 버전 제거; wechat_ide의 result_output과 wechat_navigate의 timeout 추가 기록(이전에는 v0.6.0부터 문서에 없었음); SKILL.md Step 1에 skill/MCP 버전 일치 자가 점검 줄 추가

0.9.12

핸드셰이크 반환 패키지 버전 + 의존성 상한: mcp 2.x에서 initialize의 serverInfo.version을 빈 문자열에서 본 패키지 버전으로 변경(1.x에서는 여전히 SDK 버전 보고, SDK에 덮어쓸 매개변수 없음); 의존성에 상한 mcp[cli]>=1.9,<3 추가하여 mcp 향후 메이저 버전 파괴 방지; 이중 버전 import를 _compat.py로 통일(#9 #10)

0.9.11

mcp 2.0.0 호환: 공식 MCP Python SDK 2.0(2026-07-28 출시)이 mcp.server.fastmcp를 제거(이름이 MCPServer로 변경)하여 새 설치 사용자가 시작 즉시 충돌, 모든 import를 1.x/2.x 이중 버전 호환으로 변경; 의존성을 mcp[cli]>=1.9로 명시(#8)

0.9.10

page_path 조용한 실패 수정: screenshot.js가 내비게이션 후 페이지 경로가 일치하는지 검증, /index 접미사가 없거나 페이지가 없으면 조용히 이전 페이지를 촬영하는 대신 명확한 오류 반환; node_bridge.py에서 daemon handler 오류 정보 유실 수정(#5)

0.9.9

스크린샷으로 인한 미니프로그램 재시작 수정: screenshot.js가 비 TabBar 페이지의 내비게이션 방식을 reLaunch(전체 페이지 스택 파괴)에서 navigateTo(비파괴적 푸시)로 변경, macOS에서 스크린샷 후 시뮬레이터 초기화 문제 수정(#4)

0.9.8

automator 연결 안정성 수정: daemon.js currentPage() 건강 검사를 폴링 재시도로 변경(새 연결 5회 × 3s+1.5s), 페이지 로딩이 느려도 이미 설정된 WebSocket 연결을 버리지 않음; _action_start는 _run_cli를 사용하여 CLI 반환 코드를 동기적으로 감지, CLI 실패를 즉시 인지(#3)

0.9.7

daemon 고아 프로세스 잔존 수정: daemon.js에 부모 프로세스 watchdog 추가, 5초마다 process.kill(ppid, 0)로 생존 감지, 부모 프로세스가 종료되면 WS 연결을 자동 정리하고 종료(#2)

0.9.6

macOS 적응: cdp_enabled=true 모드 크로스 플랫폼 시작(NW.js 메인 프로그램 wechatdevtools + package.nw 진입점 + pkill 정리); 기본 CLI 경로를 플랫폼별로 반환; Node.js 감지에 Homebrew/nvm 후보 경로 추가; README에 macOS 경로 예시 추가

0.9.5

compile 건강 검사가 영구히 실패하는 잠복 버그 수정(ui_debug.js에 page_stack action이 없어 v0.9.0 이후 automator_verified가 계속 false로 오보); compile이 EACCES/EADDRINUSE/#initialize-error 등 치명적 패턴에 대해 fail로 강등, '가짜 성공으로 이전 bundle 게시' 방지; preview가 상대 경로 자동 해석 + mtime 신선도 감지; wechat_automator(action='start')를 TCP+WS 이중 검증 + retry_after_ms 정밀 대기로 업그레이드; compile 전 miniprogram_npm 만료 감지 시 warning 발행; inspector 짧은 duration에서 예외 포착 시 warning 발행; wechat_cloud 도구 비활성화(CloudBase MCP로 대체)

0.9.4

switchTab 점프가 적용되지 않는 문제 수정(miniProgram.switchTab()로 callWxMethod 대체); compile 후 재연결 안정성(중복 프로세스 제거 + 3s 지연 + WS 건강 검사); README 5가지 agent 친화성 개선

버전

설명

0.9.3

status에 mcp_version 필드 추가로 버전 확인; 시작 시 버전 번호를 stderr로 출력; README에 pip/uv 버전 충돌 해결 가이드 추가

0.9.2

compile 후 navigate 타임아웃 수정: daemon 연결 상태 확인에 3초 타임아웃 보호 추가; compile 후 이전 캐시 연결을 자동으로 무효화하고 재연결; navigate currentPage 폴링 시 각 호출에 2초 독립 타임아웃 추가; HEALTH_CHECK_TIMEOUT과 CONNECTION_ERROR 오류 코드 구분

0.9.1

cdp_enabled=true 시 AttributeError 크래시 수정; WXML 런타임 오류 수집 추가(compile 후 CDP가 template not found 등 경고 자동 포착)

0.9.0

영구 Node daemon 아키텍처: 단일 daemon 프로세스 상주, NDJSON 프로토콜 통신, WS 연결을 포트별로 재사용; 8개 개별 bundle을 단일 daemon.bundle.js로 대체; 도구 호출 지연 시간이 500ms+에서 ~3ms로 감소; compile 후 daemon이 자동으로 연결을 재구축하여 연결 끊김 없음

0.8.0

compile 후 automator 자동 재연결; navigate가 TabBar 페이지를 자동 인식하여 switchTab 사용; screenshot에 full_page/scroll_top/page_path 파라미터 및 뷰포트 스크린샷 모드 추가; page_data에 expected_path 폴링 추가로 이전 데이터 방지; 긴 이미지 이어붙이기 동적 스텝으로 내용 누락 수정; node_bridge 연결 끊김 시 재시도 통일 + 500ms 호출 간격; start 포트 검증을 20회로 증가

0.7.0

navigate 변수 스코프 수정(currentPageTimeout); evaluate가 선언문 지원(const/let/var fallback); call_method가 현재 페이지 경로 반환; automator start 시 포트 폴링 검증으로 맹목적 대기 대체; SKILL.md에 효율 원칙, 복구 등급, 페이지 이동 방법, 6개 장애 항목 추가

0.6.0

navigate가 query 파라미터 지원(reLaunch 타임아웃 fallback); CDP 시작 노이즈 필터링(console.assert/__route__/ide:// 노이즈 감소 + WXML 오류 보호); compile 반환값 3분류 + automator 무효 안내; navigate currentPage 폴링 재시도; 타임아웃 설정 가능

0.5.1

wechat_ide(action='open')에 CDP 시작 상태 확인 추가: 5초간 CDP 로그를 자동 수집하여 시작 단계 치명적 오류 감지, 오류 발생 시 바로 실패 반환하여 후속 작업 차단

0.5.0

Skill SOP 전면 최적화: SOP I/J 추가; AppID 확인 및 path 검증 추가; CDP 노이즈 필터링; 스크린샷 이어붙이기 퍼지 매칭 수정

0.4.1

스크린샷 긴 페이지 이어붙이기 재작성: 고정 영역 감지, DPR 적응, 동적 겹침 계산

0.4.0

CDP 로그 강화, 클라우드 함수 배포 자동 검증, navigate 지능형 진단, SOP G/H 추가

0.3.0

대규모 리팩토링: 44개 도구를 8개 API로 통합; CDP 로그 v2; SKILL.md 지식 베이스 추가

0.2.6

README에 OpenAI Codex 설정 설명 추가

0.2.5

Kiro 편집기 설정 설명 추가

0.2.4

스크린샷 스크롤 이어붙이기 수정: sharp → jimp

0.2.3

배포 패키지 최적화: scripts/ 소스 제외, dist/ 빌드 산출물만 유지

0.2.2

Node.js 스크립트를 bundle-only 모드로 변경

0.2.1

버전 업데이트 및 문서 보완

0.2.0

navigate가 CDP 고화질 로그 수집으로 변경

0.1.9

UTF-8 인코딩 깨짐 수정

0.1.8

Windows 중국어 경로 UnicodeDecodeError 수정

0.1.7

core/full 도구 세트 프리셋 추가; MCP_DOC.md 추가

0.1.6

wechat_open(cdp_enabled=true)가 기존 프로세스 자동 종료

0.1.5

Windows stdio 차단 문제 수정

0.1.4

CDP 로그, 스크린샷, 자동화 등 기능 추가

0.1.3

초기 버전


참고 문서


라이선스

MIT

Available Tools

7 tools
wechat_automatorB

小程序自动化交互与运行时查询。 支持 action: start(开启自动化), tap(点击), input(输入), element_info(元素信息), set_data(设置数据), call_method(调用方法), call_wx(调用wx API), mock_wx(Mock wx), evaluate(执行JS), page_stack(页面栈), page_data(页面数据), system_info(系统信息), storage(缓存)。 返回 JSON: {success, data, message, error_code?}。

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are all false (readOnlyHint=false, destructiveHint=false, idempotentHint=false), so the description carries the burden of behavioral disclosure. It does disclose the return format (JSON with success, data, message, error_code?) which adds real value. However, it never warns about the side effects of mutating actions (tap, input, set_data, mock_wx) or states prerequisites such as needing to call start before other actions. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the purpose statement, followed by a tight list of action annotations and the return format. Each action is one short line. It is appropriately concise for a multi-action dispatcher, though the long enumeration is inherent to the tool's design.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex 13-action, 14-parameter tool, the description lists every action and the output schema, but omits operational sequencing (e.g., start must precede other actions), environment/connection requirements (device or IDE link), and error-handling behavior beyond the error_code field. The output schema presence mitigates the return-value gap, but an agent still lacks enough context to drive the tool through a real workflow.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides detailed descriptions for all 14 parameters (selector requirements, fn_source execution semantics, data_json for set_data, etc.), so the schema carries the heavy lifting and the baseline is 3. The description itself adds minimal parameter meaning beyond listing action names; it does not compensate for anything since the schema is already thorough.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific purpose — WeChat mini-program automation interaction and runtime querying (小程序自动化交互与运行时查询) — and enumerates all 13 supported action modes. The verb+resource combination is clear and comprehensive, but it does not explicitly distinguish itself from the sibling tools (build, file, ide, inspector, navigate, screenshot), so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description lists actions and the per-param required conditions live in the schema (e.g., 'selector: tap/input/element_info 时必填'), but the description itself provides no guidance on when to use this tool versus alternatives, no use-case scenarios, and no exclusions. An agent gets no help deciding between this and wechat_inspector or wechat_navigate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wechat_buildA
Idempotent

构建、预览、上传小程序及 npm 管理。 支持 action: compile(编译检查), preview(预览), upload(上传), build_npm(构建NPM), cache_clean(清缓存)。 返回 JSON: {success, data, message, error_code?}。

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide idempotentHint=true but no readOnlyHint or destructiveHint. The description states it returns a JSON structure, which adds behavioral context, and mentions that 'upload' requires 'version' (parameter semantics). However, the description does not disclose side effects, such as whether upload publishes to production, whether cache_clean is destructive, or authentication requirements. The idempotentHint is somewhat contradicted by non-idempotent actions like upload, though the description does not explicitly contradict the annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact, front-loaded with the core purpose and action list, and ends with the return format. No wasted words; fits within a few lines.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with a rich action enum and many parameters, the description covers the main actions and the return structure, but does not elaborate on prerequisites, side effects, or error handling. With 11 parameters and 5 actions, the description leaves about half the behavioral context to the schema and annotations. Adequate but with clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the parameter descriptions in the schema are quite detailed (e.g., role of cdp_port, clean_type, version for upload). The tool description adds the grouping of actions and the JSON return shape, but most parameter explanations come from the schema itself, not the description. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action is a build/preview/upload tool for WeChat mini-programs and lists the specific actions it supports. It distinguishes itself from siblings by covering build-related operations, though it doesn't explicitly compare to sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage contexts (build operations, npm management) but does not provide explicit when-to-use or when-not-to-use guidance. It lacks alternatives or exclusions, though the action enum provides some guidance on what each action does.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wechat_fileA
Read-onlyIdempotent

读取小程序项目文件和结构信息。 支持 action: project_info(项目完整信息), list_pages(页面列表), read_page(读取页面源码), read_file(读取单个文件)。 返回 JSON: {success, data, message, error_code?}。

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already disclose readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds the JSON return structure ({success, data, message, error_code?}) and enumerates the supported actions, which gives further behavioral clarity. No contradiction with annotations exists, and the description complements the safety profile without duplicating it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single paragraph that front-loads the purpose, lists the actions, and states the return format. Every sentence contributes value, and there is no filler. It is concise and well-structured, though slightly compact for the amount of information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description need not detail return fields extensively, and it does provide the top-level JSON shape. However, it does not explain parameter relationships or optionality (e.g., which paths are required for which actions), which an agent would need to call the tool correctly. Given the tool's multi-action nature and optional parameters, this is a noticeable gap, though not critical for a read-only tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description explains the meaning of the 'action' enum values (project_info, list_pages, read_page, read_file) but does not clarify the roles of 'file_path', 'page_path', or 'project_path', nor the dependencies (e.g., read_page requires page_path). The schema provides descriptions for each field, but the context signal indicates 0% description coverage, meaning the tool description does not substitute for that. The description only partially compensates for the low coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool reads WeChat mini program project files and structure, and lists four distinct actions (project_info, list_pages, read_page, read_file). This distinguishes it from sibling tools like wechat_navigate or wechat_screenshot, which have different purposes. The verb '读取' and resource '小程序项目文件' make the purpose explicit and unmistakeable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly state when to use this tool versus alternatives, but the available actions imply its scope (reading project files). It does not mention exclusions or conditions that would steer an agent to a sibling tool. Context is clear but there is no comparative guidance, so it remains adequate rather than optimal.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wechat_ideB
Idempotent

微信开发者工具 IDE 生命周期管理。 支持 action: open(打开IDE/项目), login(扫码登录), is_login(检查登录), close(关闭项目), quit(退出IDE), status(环境诊断)。 返回 JSON: {success, data, message, error_code?}。

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide idempotentHint=true and destructiveHint=false, and the description does not contradict them. The description adds a return envelope format ({success, data, message, error_code?}) and action semantics, but it does not disclose side effects such as launching a GUI application, blocking on QR code scanning, or requiring the IDE to be installed/running. With annotations covering safety, a 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is exactly two sentences: the first states the overall purpose, the second lists actions and the return format. There is no filler, repetition, or unnecessary detail. The structure is front-loaded and every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a multi-action tool with 10 parameters, and the description does not map parameters to specific actions (e.g., open requires project_path, login uses qr_format/result_output). It also omits prerequisites and likely failure modes. The one-line JSON envelope covers the output shape, but for a lifecycle manager of this complexity, the description is incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool description only adds semantic meaning to the action enum by explaining what each action does. It says nothing about project_path, port, qr_format, qr_output, cdp_port, or result_output, which are all documented in the schema but not compensated for at the description level. Given schema_description_coverage is 0%, the description should carry more weight for parameters but does not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool as WeChat Developer Tools IDE lifecycle management and enumerates six specific actions (open, login, is_login, close, quit, status) with brief semantic labels for each, such as '打开IDE/项目' and '扫码登录'. This makes it easy to distinguish from sibling tools like wechat_build or wechat_inspector, which target different aspects of the WeChat toolchain.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no explicit guidance on when to use this tool versus siblings. It does not mention alternatives, exclusions, prerequisites, or conditions such as 'use wechat_build for compilation' or 'use wechat_inspector for debugging'. The action list implies capability but does not help an agent decide between lifecycle management and other tool categories.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wechat_inspectorA
Read-onlyIdempotent

采集小程序运行时日志和异常。 支持 action: console(automator端口采集console日志和JS异常), cdp(通过CDP协议采集WXML警告、渲染层报错、废弃API提示等底层日志)。 cdp action 需先以 cdp_enabled=true 打开项目,确保端口 9222 可用。 返回 JSON: {success, data: {logs, summary}, message}。

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so safety is covered. The description adds concrete behavioral context: two acquisition protocols, the cdp pre-condition, and the JSON response envelope {success, data:{logs, summary}, message}. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences, no filler; purpose is front-loaded and the action/prerequisite/return-format sections are each one line. Easily scannable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Between the description, detailed nested parameter docs, and the available output schema, an agent has what it needs to invoke either action. Minor gap: the cdp port prerequisite is stated as a fixed 9222 rather than tied to the cdp_port parameter, but the default matches.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already documents all nested parameters with descriptions, including duration behavior and log_type. The description adds semantic value by explaining what each action value means and reiterating the cdp port requirement, which the bare schema enum does not provide.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with '采集小程序运行时日志和异常' – a specific verb and object. The two actions (console vs cdp) map to distinct log sources, which separates it from siblings like wechat_build or wechat_screenshot. No ambiguity about what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states that the cdp action requires opening the project with cdp_enabled=true and a usable port 9222, and separates what each action collects (console/JS exceptions vs WXML/render/deprecated-API logs). It does not name sibling alternatives or exclusions, but the internal action guidance is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wechat_navigateA
Idempotent

跳转到指定页面,等待指定时间,通过 CDP 采集高清日志。 适用于页面生命周期日志检查(onLoad/onShow)、页面错误验证。 需先调用 wechat_automator(action='start') 并以 cdp_enabled=true 打开项目。 返回 JSON: {success, data: {current_page, cdp_logs}, message}。

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already carry idempotent/non-destructive flags, and the description adds the navigation-and-wait behavior plus the exact JSON return contract. It does not detail side effects like page-state changes or failure cases, but for an idempotent navigation tool the disclosure is adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three front-loaded sentences convey action, applicability, prerequisite, and return shape with no redundant filler. The structure is easy to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameter-rich CDP tool, the definition covers the prerequisite, use cases, and return contract while annotations cover safety/idempotency. It is missing only explicit disambiguation from siblings and error/failure behavior, which are not critical given the output schema and schema-level parameter docs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The prose only refers abstractly to '指定页面' and '指定时间' and does not document parameters itself. However, the nested schema fully describes page_path with a query-parameter example, timeout/wait_ms ranges, and clear_logs/check_data behavior, so an agent can still invoke the tool correctly without relying on the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a precise action—'跳转到指定页面' plus CDP log capture—and binds it to concrete use cases (onLoad/onShow lifecycle checks, page error verification). This is specific enough to tell wechat_navigate apart from siblings like wechat_screenshot or wechat_inspector.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly gives the prerequisite call to wechat_automator with cdp_enabled=true and names the intended scenarios. It does not state when to prefer a different tool or define exclusions, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wechat_screenshotA
Read-onlyIdempotent

实时捕获当前小程序模拟器的界面截图。 默认支持截取长图,自动滚动并拼接。 output_path 可选,留空则自动保存到项目目录下 screenshots/ 文件夹。 返回 JSON: {success, data: {path, width, height, segments}, message}。

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint, idempotentHint, destructiveHint), the description reveals that the tool auto-scrolls and stitches long screenshots by default, that output_path can be omitted to save to screenshots/, and that the response is a JSON object with success, data.path/width/height/segments, and message. These behavioral details help the agent anticipate side effects and response shape. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short sentences, each adding new information: purpose, long-screenshot default, output_path default, return format. The most important action and defaults are front-loaded. No redundant or marketing language.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only screenshot tool with a rich schema and an output schema, the description covers the key defaults and return format. It does not mention prerequisites like the simulator being open or the meaning of 'segments', but these are minor given the existing schema and annotations. The description is sufficient for an agent to invoke the tool correctly in most cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The context signal reports 0% schema description coverage, so the description must compensate, but it only details output_path's default location and implicitly full_page's default. Parameters like overlap, auto_port, page_path, and scroll_top are not explained in the description, requiring the agent to inspect the nested $defs. The $defs do contain descriptions, which mitigates this, but the description itself adds little parametric meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: '实时捕获当前小程序模拟器的界面截图' (capture the current mini-program simulator interface screenshot in real-time). It further clarifies the long-screenshot default and references the output path and return JSON, leaving no doubt about the tool's function. This clearly distinguishes it from sibling tools like wechat_build or wechat_navigate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context that this is for capturing screenshots of the simulator and mentions default long-screenshot behavior. It does not, however, name any sibling tools or state when to prefer this over wechat_inspector or wechat_automator. A brief 'use this when you need a screenshot' would have been stronger, but the context is unambiguous enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool updatev0.9.18
    • Changedwechat_automator3 fields changed
      • changedInput schema / $defs / WechatAutomatorInput / properties / args_json / description
        Previous value: -"方法参数 JSON 数组,call_method/call_wx 时可选。"New value: +"JSON 数组,call_method/call_wx 的方法参数,或 evaluate(fn_source) 的函数入参;可选。"
      • changedInput schema / $defs / WechatAutomatorInput / properties / expression / description
        Previous value: -"JS 表达式,evaluate 时必填。"New value: +"单个 JS 表达式,evaluate 时使用;多语句请改用 fn_source。"
      • addedInput schema / $defs / WechatAutomatorInput / properties / fn_source
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "evaluate 时可用:完整函数源码字符串,例如 'function(){ return wx.getSystemInfoSync(); }' 或 '(a,b)=>a+b',在小程序 AppService 内以 page.evaluate(fn, ...args) 方式执行,入参来自 args_json。函数体可含任意多条语句,需显式 return。与 expression 二选一,同时给则以 fn_source 为准。",
        +  "title": "Fn Source"
        +}
  2. 7 tool updatesv0.9.16
    • First observedwechat_automator
    • First observedwechat_build
    • First observedwechat_file
    • First observedwechat_ide
    • First observedwechat_inspector
    • First observedwechat_navigate
    • First observedwechat_screenshot

TDQS

A3.8/5.0

Scored across 7 tools

Disambiguation4/5

每个工具名称都指向不同的功能域(自动化、构建、文件、IDE、日志、导航、截图),整体区分清晰。但wechat_inspector和wechat_navigate都涉及CDP日志采集,存在轻微重叠,不过描述中已明确各自侧重(通用日志 vs 页面跳转日志),因此仍可区分。

Naming Consistency4/5

所有工具都以'wechat_'前缀命名,模式统一。但后续部分既有名词(automator, file, ide, inspector, screenshot)也有动词(build, navigate),词性不统一,但整体可预测性较好。

Tool Count5/5

7个工具覆盖了小程序开发的主要环节:IDE管理、构建、自动化、日志、导航、截图、文件读取,每个工具都有明确职责,数量适中,没有冗余或不足。

Completeness4/5

工具集覆盖了从项目打开、登录、编译、上传、自动化交互、日志采集、截图到文件读取的完整开发闭环。但缺少文件写入或修改能力(仅有read),且没有项目配置编辑、真机预览等可选功能,存在小缺口,但核心工作流可完成。

Maintenance

ActivitySlowing
ResponsivenessWithin a week

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    An MCP server that enables AI assistants to interact with WeChat Mini Programs, allowing developers to publish versions, analyze package size, diagnose compilation errors, and manage projects via natural language.
    78 npm
    3
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Connects WeChat Mini Program tooling to MCP and automation workflows. Provides scripts for opening, previewing, and uploading projects, as well as automator smoke tests.
    1
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    Enables automated testing of WeChat mini-programs via Model Context Protocol, providing tools for connecting to WeChat Developer Tools, querying and interacting with page elements, making assertions, navigating, and debugging.
    20
    22 npm
    78
    MIT