Skip to main content
Glama
WaterTian

wechat-devtools-mcp

by WaterTian

微信开发者工具 MCP Server (v0.9.15)

PyPI version MCP Registry License: MIT English

微信开发者工具 CLI を MCP (Model Context Protocol) サービスとしてラップし、エディタ内の AI が微信 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 — 必要なパスの確認

以下の 2 つの絶対パスを事前に取得してください。後でエディタ設定に入力する必要があります:

パス

Windows の例

macOS の例

微信开发者工具 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 の 3 つの重要な違い:

  • command は絶対パス /opt/homebrew/bin/uvx を使用する必要があります(Claude Code が子プロセスを spawn する際、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/ に手動配置(Trae など .agents/skills/ から読み込むクライアント)

ミニプログラムのプロジェクトルートで実行:

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

微信开发者工具 CLI パス

—

はい

WECHAT_PROJECT_PATH

デフォルトのミニプログラムプロジェクト絶対パス

—

はい

WECHAT_CLI_TIMEOUT

CLI コマンドのタイムアウト時間(秒)

30

いいえ

NODE_PATH

Node.js 実行ファイルのパス

node

いいえ


❓ よくある質問

最も一般的な原因:微信开发者工具の「服务端口」が有効化されていません。 设置 → 安全 → 服务端口 に移動してオンにしてください。オンにした後、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 の最大の原因、現在は自己診断可能)と 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 の最初のステップに影響していた;同名ファイルが両方のルートに存在する場合は 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 の将来のメジャーバージョンによる破壊を防止;二重バージョンのインポートを _compat.py に統一(#9 #10)

0.9.11

mcp 2.0.0 への対応:公式 MCP Python SDK 2.0(2026-07-28 リリース)が mcp.server.fastmcp を削除(MCPServer に改名)したため、新規インストールユーザーが起動時にクラッシュする問題を修正。すべてのインポートを 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) で生存を確認、親プロセスが kill されたら 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 アクションがなく、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 ジャンプが機能しない問題を修正(callWxMethod の代わりに miniProgram.switchTab() を使用);compile 後の再接続安定性(冗長プロセスの除去 + 3 秒遅延 + WS ヘルスチェック);README の 5 項目のエージェント親和性の改善

バージョン

説明

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) が既存プロセスを自動的に kill

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