Skip to main content
Glama
WaterTian

wechat-devtools-mcp

by WaterTian

WeChat DevTools MCP Server (v0.9.15)

PyPI version MCP Registry License: MIT English

Kapselt die CLI der WeChat-Entwicklertools als MCP (Model Context Protocol) Dienst, sodass KI in Editoren direkt WeChat-CLI-Befehle aufrufen kann und so ein geschlossener Kreislauf für Entwicklung, Test, Debugging und Automatisierung von Mini-Programmen entsteht.

[!IMPORTANT] Dieses Projekt verwendet eine „Schlankes MCP + Umfangreiches Skill"-Architektur: Der MCP Server bietet 7 aggregierte APIs, das zugehörige wechat-devtools Skill liefert SOP-Abläufe, Parameter-Schnellreferenz und Best Practices. Beide müssen zusammen verwendet werden – ohne das Skill kann die KI Mini-Programme nicht nach dem korrekten Ablauf bedienen.

Veröffentlicht im offiziellen MCP Registry, unterstützt plattformübergreifende (Windows / macOS) Ein-Klick-Installation.


🌐 Englische Dokumentation →


🚀 Installation und Schnellstart

Schritt 1 — MCP Server installieren

Empfohlen wird uv, das Python-Abhängigkeiten automatisch verwaltet und eine isolierte Ausführungsumgebung bereitstellt.

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

[!WARNING] Falls zuvor eine ältere Version über pip install installiert wurde, deinstallieren Sie diese bitte zuerst, um Versionskonflikte zu vermeiden:

pip uninstall wechat-devtools-mcp

Der Pfad von pip install (z. B. Python313/Scripts/) kann Vorrang vor dem Pfad von uv tool install (~/.local/bin/) haben, sodass tatsächlich die alte Version ausgeführt wird. Sie können die aktuelle Version über das von wechat_ide(action='status') zurückgegebene Feld mcp_version bestätigen.

[!WARNING] Versionskompatibilität: ≥0.9.11 unterstützt sowohl mcp 1.x als auch 2.x (Abhängigkeitsdeklaration mcp[cli]>=1.9,<3). ≤0.9.10 ist nicht mit mcp ≥2.0 kompatibel (bei neuer Installation erscheint ModuleNotFoundError: mcp.server.fastmcp, siehe #9) – Benutzer mit festgepinnter Version sollten auf ≥0.9.11 aktualisieren oder bei der Installation --with "mcp<2" anhängen.

[!TIP]

  • Tatsächlich ausgeführte Version anzeigen (≥0.9.13):

    wechat-devtools-mcp --version    # 零依赖打印实际安装版本;uvx 复用已装环境不自拉最新,此命令可直接确认
    uv tool list | grep wechat       # 离线确认已安装版本
  • Tool aktualisieren: Wenn der Editor den MCP-Dienst ausführt, muss der Prozess zuerst beendet werden, bevor aktualisiert wird:

    # 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-Ein-Klick-Aktualisierung:

    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

Schritt 2 — Dienstport der Entwicklertools aktivieren

[!WARNING] Muss manuell aktiviert werden, sonst kann die KI keine Befehle senden.

Vorgehen: Entwicklertools → Einstellungen → Sicherheitseinstellungen → Dienstport → Aktivieren

💡 Der Port-Status kann über wechat_ide(action='status') überprüft werden – wenn eine Verbindungsfehlermeldung zurückgegeben wird, ist der Dienstport noch nicht aktiviert.

Schritt 3 — Erforderliche Pfade bestätigen

Bitte ermitteln Sie im Voraus die folgenden beiden absoluten Pfade, die später in die Editor-Konfiguration eingetragen werden müssen:

Pfad

Windows-Beispiel

macOS-Beispiel

CLI der WeChat-Entwicklertools

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

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

Stammverzeichnis des Mini-Programm-Projekts

D:\MyProjects\mini-app

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

macOS-Benutzer: In der JSON-Konfiguration müssen Schrägstriche (/) nicht escaped werden; Windows-Benutzer müssen \ als \\ schreiben.

Schritt 4 — Editor-Konfiguration

claude_desktop_config.json oder mcp_config.json (Antigravity) ändern:

{
  "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 bearbeiten:

{
  "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 (global) oder .codex/config.toml (projektbezogen) bearbeiten:

[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"

Kann auch schnell über die CLI hinzugefügt werden:

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

In der MCP-Konsole einen neuen Server hinzufügen:

  • Name: wechat-devtools

  • Typ: command

  • Befehl: uvx wechat-devtools-mcp

  • Umgebungsvariablen: WECHAT_DEVTOOLS_CLI und WECHAT_PROJECT_PATH wie oben hinzufügen

Unter Windows müssen Backslashes in Pfaden escaped werden (\\).

Wenn Sie Claude Code im Mini-Programm-Repository verwenden, können Sie eine projektbezogene .mcp.json anlegen (folgt automatisch dem Repository, gilt für Mitwirkende).

Windows — .mcp.json im Repository-Stammverzeichnis:

{
  "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 im Repository-Stammverzeichnis:

{
  "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"
      }
    }
  }
}

Drei wesentliche Unterschiede unter macOS:

  • command muss den absoluten Pfad /opt/homebrew/bin/uvx verwenden (die PATH-Variable von Claude Code enthält beim Spawnen von Unterprozessen kein Homebrew)

  • env.PATH muss explizit injiziert werden (besonders wichtig, wenn gleichzeitig npx-basierte MCPs wie cloudbase / chrome-devtools konfiguriert sind, sonst findet npx über #!/usr/bin/env node kein Node)

  • NODE_PATH sollte explizit angegeben werden, als doppelte Absicherung beim Start als Daemon

Wenn mehrere MCPs gleichzeitig konfiguriert sind (cloudbase / chrome-devtools usw.), behandeln Sie bei jedem Server command-absoluten Pfad und env.PATH nach demselben Muster.

Trae v1.3.0+ unterstützt MCP. KI-Panel → Einstellungen oben rechts → MCP → Hinzufügen → Manuelle Konfiguration, folgendes JSON einfügen und speichern.

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"
      }
    }
  }
}

Die Konfigurationsdatei kann auch direkt bearbeitet werden:

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

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

[!IMPORTANT] Im Chatfeld muss der Agent „Builder with MCP" ausgewählt werden – normale Agenten rufen keine MCP-Tools auf. Es wird empfohlen, zusätzlich das wechat-devtools Skill (Schritt 5) zu installieren, damit die KI die Aufrufe in der SOP-Reihenfolge ausführt.

Schritt 5 — Skill installieren (erforderlich)

[!IMPORTANT] Dieses MCP muss zusammen mit dem wechat-devtools Skill verwendet werden. Das Skill enthält alle SOP-Abläufe, Parameter-Schnellreferenzen und Fehlerbehebungsanleitungen, die die KI für die Bedienung von Mini-Programmen benötigt. Ohne installiertes Skill kann die KI nur nackte APIs aufrufen und keine standardisierten Test- und Debugging-Abläufe automatisch ausführen.

Methode 1: npx skills add (für Claude Code-Benutzer)

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

Wird nach ~/.claude/skills/ geladen, Claude Code lädt es automatisch.

Methode 2: Manuell in .agents/skills/ ablegen (für Clients, die auf .agents/skills/ basieren, z. B. Trae)

Im Stammverzeichnis des Mini-Programm-Projekts ausführen:

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

Verzeichnisstruktur nach Abschluss:

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

[!TIP] Trae-Benutzer: Stellen Sie sicher, dass der Schalter Einstellungen → Skills und Befehle → .agents-Skills-Verzeichnis aktivieren eingeschaltet ist (standardmäßig aktiviert). Nach dem Speichern aktualisieren, dann erscheint wechat-devtools unter „Skills → Projekt"-Tab.


Related MCP server: weapp-agent-mcp

🛠️ Toolbox-Übersicht

Der MCP Server bietet 7 aggregierte Tools, die den gesamten Lebenszyklus von Mini-Programmen abdecken:

Tool

Funktion

Unterstützte actions

wechat_ide

IDE-Lebenszyklusverwaltung

open login is_login close quit status

wechat_build

Build und Veröffentlichung

compile preview upload build_npm cache_clean

wechat_automator

Automatisierte Interaktion

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

wechat_inspector

Laufzeit-Log-Erfassung

console cdp

wechat_screenshot

UI-Screenshots (Langbild-Zusammensetzung)

—

wechat_navigate

Seitenwechsel und CDP-Log-Erfassung

—

wechat_file

Projektdatei-Lesen

project_info list_pages read_page read_file

Für Cloud-Funktionen und Cloud-Datenbankverwaltung verwenden Sie bitte CloudBase MCP (manageFunctions / readNoSqlDatabaseContent usw.) – funktionsumfangreicher und ohne IDE-Abhängigkeit. wechat_cloud ist seit v0.9.5 deaktiviert.

Vollständige Tool-Parameterbeschreibungen finden Sie in MCP_DOC.md


🧠 Skill-Inhalte im Detail

Das Skill ermöglicht es der KI, nach Erhalt natürlicher Sprachbefehle automatisch standardisierte Abläufe zuzuordnen und auszuführen:

Ihre Aussage

Von der KI ausgeführter Ablauf

„Prüfe alle Seiten auf Fehler"

SOP D — Seitenübergreifende Inspektion

„Klicke den Login-Button, Screenshot zur Ansicht"

SOP B — UI-Debugging

„Seite ist weiß, hilf mir bei der Fehlersuche"

SOP C — Fehlerbehebung

„Mocke die Zahlungsschnittstelle, teste den Zahlungsablauf"

SOP E — Mock-Integrationstest

„Teste die Detailseite, wie heißt der Parameter?"

SOP G — Unterseiten-Test

„Vergleiche, ob die Punkte auf allen Seiten übereinstimmen"

SOP I — Seitenübergreifende Datenvalidierung

Das Skill enthält

  • 9 SOP-Abläufe — Initialisierung, UI-Debugging, Fehlerbehebung, Seitenübergreifende Inspektion, Mock-Integrationstest, Netzwerk-Debugging und UI-Adaption, Unterseiten-Test, Seitenübergreifende Datenvalidierung, Paralleler Datenvergleich

  • Fähigkeits-Zuordnungswörterbuch — Schnellindex für 7 aggregierte Tools × alle actions

  • CDP-Schrittweise Fehlersuche-Strategie — concise → full in zwei Phasen, zur Kontrolle des Token-Verbrauchs

  • Vollständige Parameterreferenz — Pflicht-/optionale Parameter, Rückgabebeispiele und gängige Vorlagen für jede action

  • Fehlerbehebungs-Handbuch — Häufige Fehlercodes und Behebungsmethoden

Installationsmethode siehe Schritt 5 — Skill installieren


💡 Umgebungsvariablen

Variablenname

Beschreibung

Standardwert

Erforderlich

WECHAT_DEVTOOLS_CLI

Pfad zur CLI der WeChat-Entwicklertools

—

Ja

WECHAT_PROJECT_PATH

Absoluter Pfad des Standard-Mini-Programm-Projekts

—

Ja

WECHAT_CLI_TIMEOUT

Timeout für CLI-Befehle (Sekunden)

30

Nein

NODE_PATH

Pfad zur Node.js-Ausführungsdatei

node

Nein


❓ Häufige Fragen

Häufigste Ursache: Der „Dienstport" der WeChat-Entwicklertools ist nicht aktiviert. Gehen Sie zu Einstellungen → Sicherheit → Dienstport und aktivieren Sie ihn. Nach der Aktivierung ist kein Neustart der IDE erforderlich – die KI kann die Verbindung sofort wiederherstellen.

Wenn die Entwicklertools manuell geöffnet wurden, lauschen sie möglicherweise nicht auf dem Debug-Port. Schließen Sie die Entwicklertools und lassen Sie die KI wechat_ide(action='open', cdp_enabled=True) ausführen, um im Debug-Modus zu starten.

Der MCP-Dienst im Editor läuft noch. Siehe die Upgrade-Hinweise unter Schritt 1 – der Prozess muss zuerst beendet werden, bevor aktualisiert wird.

Möglicherweise hat die über pip install installierte alte Version höhere Priorität. Führen Sie pip uninstall wechat-devtools-mcp aus, um die alte Version zu entfernen, und bestätigen Sie dann über wechat_ide(action='status'), dass das Feld mcp_version die neueste Version anzeigt.

Stellen Sie sicher, dass in der env-Konfiguration des Editors WECHAT_DEVTOOLS_CLI mit dem absoluten Pfad ausgefüllt ist:

  • Windows: Doppelte Backslashes verwenden (z. B. C:\\...\\cli.bat)

  • macOS: Standardpfad /Applications/wechatwebdevtools.app/Contents/MacOS/cli, Schrägstriche müssen nicht escaped werden

GUI-Clients (z. B. Claude Desktop) haben beim Starten von MCP möglicherweise kein /opt/homebrew/bin in der PATH-Variable. Seit MCP v0.9.6 wird automatisch der Homebrew-Standardpfad versucht; falls dies weiterhin fehlschlägt, kann in env explizit gesetzt werden:

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

📋 Versionsverlauf

版本

说明

0.9.15

Anpassung an DevTools 2.x (Electron) + Behebung des dauerhaft fehlgeschlagenen CDP-Sammelns: DevTools 2.x verwendet nun Electron (1.06.x Stable ist weiterhin NW.js, duale Kompatibilität ohne Austausch). Der macOS-Startpfad erkennt die Laufzeit automatisch anhand des Vorhandenseins von Resources/package.nw, der Einstieg liest CFBundleExecutable aus der Info.plist, der Kill-Modus verwendet den .app-Bundle-Pfad – der alte Modus konnte den Electron-Prozess nicht finden, wodurch wechat_ide(action='open') mit Standardparametern auf macOS völlig unbrauchbar war; 2.x erkennt das CLI-Flag --project nicht mehr, stattdessen wird zuerst ein Prozess mit CDP gestartet und das Projekt dann über die CLI geöffnet, wobei gewartet wird, bis sowohl der CDP- als auch der IDE-Dienstport bereit sind, bevor fortgefahren wird (andernfalls startet die CLI eine weitere Instanz ohne CDP, was zu einem falschen Erfolg führt, bei dem „das Projekt geöffnet ist, aber CDP nicht verbunden werden kann"). Behebung, dass wechat_inspector(action='cdp') seit v0.9.0 konstant 0 Einträge zurückgibt – der Daemon legt das Ergebnis in data ab, während der Inspector das nicht existierende logs liest; das am häufigsten verwendete Fehlersuchwerkzeug war 8 Nebenversionen lang still ausgefallen. Das Daemon-Stream-Limit wurde von den asyncio-Standard 64 KiB auf 16 MiB angehoben (bei 2.x wurden in 6 Sekunden real 634 KiB gesammelt; bei Überschreitung wurden alle Ergebnisse still verworfen). Die CDP-Rauschfilterung wurde an die 2.x-Target-Struktur angepasst, neu hinzugekommene IDE-Shell-Seiten und devtools://-Seiten, die durch type=webview durchrutschten, werden entfernt (real 734 Einträge → 206 Einträge). Die IDE-Port-Erkennung liest nun die von der IDE abgelegte .ide-Datei (hartkodierte Kandidatenports waren unter 2.x völlig daneben); status hat nun service_port_enabled (die häufigste Ursache für CLI_TIMEOUT, jetzt selbst diagnostizierbar) und ide_port; wechat_ide / wechat_build haben den neuen Parameter cdp_port (9222 wird oft von Chrome belegt)

0.9.14

Behebung des Dateilese-Pfads + Behebung des wirkungslosen Parameters: wechat_file read_page/read_file verwenden nun dieselbe Logik wie list_pages (zuerst nach miniprogramRoot aus project.config.json auflösen, dann auf das Projektverzeichnis zurückfallen) – zuvor führte pages/xxx/index aus list_pages in Cloud-Entwicklungsprojekten bei read_page zwangsläufig zu „Seitendatei nicht gefunden", wovon Schritt 1 des SOP G betroffen war; wenn dieselbe Datei unter beiden Wurzeln existiert, wird neu also_found_at wahrheitsgemäß angezeigt, project.config.json nimmt fest die maßgebliche Kopie aus der Projektwurzel; read_page gibt resolved_base zurück, read_file gibt resolved_path zurück. wechat_inspector(action='cdp') erhält die Durchreichung von cdp_port (zuvor war dieser Parameter wirkungslos und verband immer mit 9222). subprocess.CREATE_NO_WINDOW wird durchgängig mit getattr abgesichert, um die AttributeError-Gefahr auf Nicht-Windows-Plattformen zu beseitigen

0.9.13

--version-Frühabbruch + Dokumentationskorrekturen: wechat-devtools-mcp --version / -V gibt die installierte Version ohne Abhängigkeiten aus und beendet sich direkt (uvx wiederverwendet die bereits installierte Umgebung und zieht nicht selbst die neueste Version; ein einziger Befehl bestätigt die tatsächliche Version); Dokumentationskorrekturen: 5-spaltige Fehlausrichtung der navigate-Parametertabelle, Menüname Einstellungen -> Sicherheitseinstellungen, mcp_version-Beispiel entversioniert; wechat_ide result_output und wechat_navigate timeout nachgetragen (seit v0.6.0 nicht in der Dokumentation); SKILL.md Schritt 1 enthält eine neue Selbstprüfzeile für die Konsistenz von Skill/MCP-Version

0.9.12

Handshake-Rückgabepaketversion + Abhängigkeitsobergrenze: Unter mcp 2.x wird serverInfo.version bei initialize von einer leeren Zeichenkette auf die Paketversion geändert (unter 1.x wird weiterhin die SDK-Version gemeldet, das SDK bietet keinen Parameter zur Überschreibung); die Abhängigkeit erhält eine Obergrenze mcp[cli]>=1.9,<3, um künftige große mcp-Versionen mit Bruch zu verhindern; die Importe für beide Versionen werden in _compat.py vereinheitlicht (#9 #10)

0.9.11

Kompatibilität mit mcp 2.0.0: Das offizielle MCP Python SDK 2.0 (veröffentlicht am 2026-07-28) entfernt mcp.server.fastmcp (umbenannt in MCPServer), wodurch Neuinstallationen beim Start sofort abstürzten; alle Importe sind nun mit 1.x/2.x dual kompatibel; die Abhängigkeit ist explizit mcp[cli]>=1.9 (#8)

0.9.10

Behebung des stillen Fehlschlags von page_path: screenshot.js überprüft nach der Navigation, ob der Seitenpfad übereinstimmt; fehlt das Suffix /index oder existiert die Seite nicht, wird ein klarer Fehler zurückgegeben, statt still die alte Seite aufzunehmen; node_bridge.py behebt den Verlust von Daemon-Handler-Fehlermeldungen (#5)

0.9.9

Behebung des Mini-Programm-Neustarts nach Screenshot: screenshot.js navigiert bei Nicht-TabBar-Seiten nicht mehr per reLaunch (zerstört den gesamten Seitenstapel), sondern per navigateTo (nicht-destruktives Pushen), wodurch das Zurücksetzen des Simulators nach Screenshots unter macOS behoben wird (#4)

0.9.8

Behebung der Automator-Verbindungsstabilität: Der currentPage()-Health-Check in daemon.js verwendet nun Polling mit Wiederholung (5 × 3s+1.5s bei neuen Verbindungen) und verwirft etablierte WebSocket-Verbindungen nicht mehr wegen langsamer Seitenladung; _action_start verwendet nun _run_cli zur synchronen Erkennung des CLI-Rückgabecodes, sodass CLI-Fehler sofort bemerkt werden (#3)

0.9.7

Behebung verwaister Daemon-Prozesse: daemon.js erhält einen Parent-Process-Watchdog, der alle 5 Sekunden process.kill(ppid, 0) zur Lebendprüfung ausführt; wird der Elternprozess beendet, werden WS-Verbindungen automatisch bereinigt und der Prozess beendet (#2)

0.9.6

macOS-Anpassung: cdp_enabled=true-Modus startet plattformübergreifend (NW.js-Hauptprogramm wechatdevtools + package.nw-Einstieg + pkill-Bereinigung); der Standard-CLI-Pfad wird plattformabhängig zurückgegeben; die Node.js-Erkennung ergänzt Homebrew/nvm-Kandidatenpfade; README enthält macOS-Pfadbeispiele

0.9.5

Behebung eines latenten Bugs, der den Compile-Health-Check dauerhaft fehlschlagen ließ (ui_debug.js hat keine page_stack-Aktion, seit v0.9.0 meldete automator_verified fälschlich false); compile stuft fatale Muster wie EACCES/EADDRINUSE/#initialize-error auf fail herab, um „falschen Erfolg mit Veröffentlichung des alten Bundles" zu verhindern; preview löst relative Pfade automatisch auf + mtime-Frischeprüfung; wechat_automator(action='start') auf TCP+WS-Doppelverifikation + präzises Warten mit retry_after_ms aufgewertet; vor compile wird bei veraltetem miniprogram_npm eine Warnung ausgegeben; bei kurzer duration fängt der Inspector Ausnahmen mit Warnung ab; das Tool wechat_cloud ist deaktiviert (CloudBase MCP verwenden)

0.9.4

Behebung, dass switchTab-Sprünge nicht wirkten (ersetzt callWxMethod durch miniProgram.switchTab()); Wiederverbindungsstabilität nach compile (redundante Prozesse entfernt + 3s Verzögerung + WS-Health-Check); 5 Agentenfreundlichkeitsverbesserungen im README

Version

Beschreibung

0.9.3

status um mcp_version-Feld zur Versionsbestätigung erweitert; beim Start wird die Versionsnummer an stderr ausgegeben; README um Hinweise zur Behebung von pip/uv-Versionskonflikten ergänzt

0.9.2

Timeout nach compile bei navigate behoben: Daemon-Verbindungs-Healthcheck um 3s-Timeout-Schutz erweitert; nach compile werden alte Cache-Verbindungen automatisch invalidiert und neu verbunden; navigate currentPage-Polling erhält bei jedem Aufruf ein separates 2s-Timeout; Unterscheidung der Fehlercodes HEALTH_CHECK_TIMEOUT und CONNECTION_ERROR

0.9.1

AttributeError-Absturz bei cdp_enabled=true behoben; neue Erfassung von WXML-Laufzeitfehlern (nach compile erfasst CDP automatisch Warnungen wie template not found)

0.9.0

Persistente Node-Daemon-Architektur: Ein einzelner Daemon-Prozess bleibt dauerhaft aktiv, Kommunikation über NDJSON-Protokoll, WS-Verbindungen werden pro Port wiederverwendet; ein einzelnes daemon.bundle.js ersetzt 8 separate Bundles; Tool-Aufruf-Latenz von 500ms+ auf ~3ms reduziert; nach compile stellt der Daemon die Verbindung automatisch ohne Unterbrechung wieder her

0.8.0

Automatische Wiederverbindung zum Automator nach compile; navigate erkennt TabBar-Seiten automatisch und nutzt switchTab; screenshot um full_page/scroll_top/page_path-Parameter und Viewport-Screenshot-Modus erweitert; page_data um expected_path-Polling gegen alte Daten erweitert; dynamische Schrittweite bei langen Bildern behebt Inhaltslücken; node_bridge vereinheitlicht Verbindungsabbruch-Retry + 500ms-Aufrufintervall; start-Port-Verifizierung auf 20 Versuche erhöht

0.7.0

Fehlerbehebung im Variablenbereich von navigate (currentPageTimeout); evaluate unterstützt Deklarationsanweisungen (const/let/var-Fallback); call_method gibt den aktuellen Seitenpfad zurück; automator start-Port-Polling-Verifizierung ersetzt blindes Warten; SKILL.md um Effizienzprinzipien, Wiederherstellungsstufen, Seitenwechselmethoden und 6 Fehlereinträge erweitert

0.6.0

navigate unterstützt query-Parameter (reLaunch-Timeout-Fallback); CDP-Startgeräuschfilterung (console.assert/__route__/ide:// Entrauschung + WXML-Fehlerschutz); compile-Rückgabewerte in drei Kategorien + Automator-Ungültigkeitshinweis; navigate currentPage-Polling mit Retry; Timeout konfigurierbar

0.5.1

wechat_ide(action='open') um CDP-Start-Healthcheck erweitert: automatische Erfassung von 5 Sekunden CDP-Logs zur Erkennung schwerwiegender Fehler in der Startphase; bei Fehlern wird direkt ein Fehlschlag zurückgegeben, um Folgeoperationen zu verhindern

0.5.0

Skill-SOP umfassend optimiert: neue SOP I/J; AppID-Prüfung und path-Validierung hinzugefügt; CDP-Geräuschfilterung; Fehlerbehebung beim Fuzzy-Matching der Screenshot-Zusammenfügung

0.4.1

Screenshot-Zusammenfügung für lange Seiten neu geschrieben: feste Bereichserkennung, DPR-Adaption, dynamische Überlappungsberechnung

0.4.0

CDP-Log-Verbesserungen, automatische Verifizierung von Cloud-Funktionsbereitstellungen, intelligente navigate-Diagnose, neue SOP G/H

0.3.0

Großes Refactoring: 44 Tools zu 8 APIs zusammengefasst; CDP-Log v2; neue SKILL.md-Wissensdatenbank

0.2.6

README um OpenAI-Codex-Konfigurationshinweise ergänzt

0.2.5

Konfigurationshinweise für Kiro-Editor hinzugefügt

0.2.4

Fehlerbehebung beim Screenshot-Scroll-Zusammenfügen: sharp → jimp

0.2.3

Paketoptimierung: scripts/-Quellcode ausgeschlossen, nur dist/-Build-Artefakte behalten

0.2.2

Node.js-Skript auf Bundle-only-Modus umgestellt

0.2.1

Versionsupdate und Dokumentationsverbesserung

0.2.0

navigate nutzt jetzt CDP-High-Definition-Log-Erfassung

0.1.9

UTF-8-Kodierungsfehler behoben

0.1.8

UnicodeDecodeError bei chinesischen Pfaden unter Windows behoben

0.1.7

Neue core/full-Toolset-Voreinstellungen; neue MCP_DOC.md

0.1.6

wechat_open(cdp_enabled=true) beendet vorhandene Prozesse automatisch

0.1.5

Windows-stdio-Blockierungsproblem behoben

0.1.4

CDP-Log, Screenshot, Automatisierung und weitere Funktionen hinzugefügt

0.1.3

Erste Version


Referenzdokumentation


Lizenz

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