{"_id":"@sensen0326/wechat-devtools-mcp","name":"@sensen0326/wechat-devtools-mcp","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@sensen0326/wechat-devtools-mcp","version":"0.1.0","description":"Reusable MCP server for WeChat DevTools mini program automation and testing.","author":{"name":"xzs","email":"xuzhisen0326@163.com"},"license":"MIT","homepage":"https://github.com/sensen0326/wechat-devtools-mcp#readme","bugs":{"url":"https://github.com/sensen0326/wechat-devtools-mcp/issues"},"repository":{"type":"git","url":"git+https://github.com/sensen0326/wechat-devtools-mcp.git"},"publishConfig":{"access":"public"},"type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","bin":{"wechat-devtools-mcp":"dist/cli.js"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"scripts":{"build":"tsc -p tsconfig.json","check":"tsc --noEmit -p tsconfig.json","smoke":"node scripts/smoke.mjs","smoke:demo":"node scripts/smoke.mjs --projectPath demo/miniprogram --trustProject --inputSelector .input --tapSelector .button","test":"vitest run","test:watch":"vitest","prepack":"npm run build && npm test"},"keywords":["mcp","modelcontextprotocol","wechat","miniprogram","wechat-devtools","automation"],"engines":{"node":">=24.0.0"},"dependencies":{"@modelcontextprotocol/sdk":"^1.27.1","miniprogram-automator":"^0.12.1","zod":"^4.1.5"},"devDependencies":{"@types/node":"^24.0.0","typescript":"^5.8.3","vitest":"^3.2.4"},"gitHead":"1f80225e381f5a512be1abbe910a7dce95eac3d2","_id":"@sensen0326/wechat-devtools-mcp@0.1.0","_nodeVersion":"24.11.1","_npmVersion":"11.6.2","dist":{"integrity":"sha512-w4an+otDnrfOgpTOtFCOSIGWowzfRHsItuXXlywxEXfsh6dTxMBxoqLJz6pRVX2gMgC29IyYRRNdNbt3r+UjmA==","shasum":"1ffca413505fc0cd48bc8298e9b9c187387c68cb","tarball":"https://registry.npmjs.org/@sensen0326/wechat-devtools-mcp/-/wechat-devtools-mcp-0.1.0.tgz","fileCount":54,"unpackedSize":139700,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIGu0SVR9YmTPPb/RaHRw7afo7xw3kOQSqISTMyhSmSMQAiBOUPZhbfNxtJZMjZPMKCNxM2J+BnS4scg0erF4DBEZtA=="}]},"_npmUser":{"name":"sensen0326","email":"xuzhisen0326@163.com"},"directories":{},"maintainers":[{"name":"sensen0326","email":"xuzhisen0326@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/wechat-devtools-mcp_0.1.0_1773895026622_0.22482057824225432"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-19T04:37:06.505Z","0.1.0":"2026-03-19T04:37:06.778Z","modified":"2026-03-19T04:37:07.007Z"},"maintainers":[{"name":"sensen0326","email":"xuzhisen0326@163.com"}],"description":"Reusable MCP server for WeChat DevTools mini program automation and testing.","homepage":"https://github.com/sensen0326/wechat-devtools-mcp#readme","keywords":["mcp","modelcontextprotocol","wechat","miniprogram","wechat-devtools","automation"],"repository":{"type":"git","url":"git+https://github.com/sensen0326/wechat-devtools-mcp.git"},"author":{"name":"xzs","email":"xuzhisen0326@163.com"},"bugs":{"url":"https://github.com/sensen0326/wechat-devtools-mcp/issues"},"license":"MIT","readme":"# wechat-devtools-mcp\n\n一个可复用、可开源的微信开发者工具 MCP Server，用于连接微信开发者工具并执行小程序自动化调试与测试。\n\n`wechat-devtools-mcp` 用 `miniprogram-automator` 作为底层能力，把它包装成稳定的 MCP 工具面，便于 Codex 和其他 MCP 客户端直接调用。npm 包名为 `@sensen0326/wechat-devtools-mcp`。\n\n## 特性\n\n- 完整兼容 `weapp_dev` 风格的工具面。\n- 单个 MCP 进程内自动复用会话。\n- 支持显式 `sessionId`、会话列表、定向关闭和空闲回收。\n- 同时支持 `launch` 和 `connect` 两种接入方式。\n- 首版以 Windows 为官方支持平台。\n- 自带 mock 集成测试、CI 和 demo 小程序。\n\n## 安装\n\n```bash\nnpm install -g @sensen0326/wechat-devtools-mcp@latest\n```\n\n或直接运行：\n\n```bash\nnpx -y @sensen0326/wechat-devtools-mcp@latest\n```\n\n## 工具列表\n\n- `mp_ensureConnection`\n- `mp_listSessions`\n- `mp_closeSession`\n- `mp_navigate`\n- `mp_currentPage`\n- `mp_getLogs`\n- `mp_screenshot`\n- `mp_callWx`\n- `page_callMethod`\n- `page_getData`\n- `page_setData`\n- `page_getElement`\n- `page_getElements`\n- `page_waitElement`\n- `page_waitTimeout`\n- `element_callMethod`\n- `element_getAttributes`\n- `element_getBoundingClientRect`\n- `element_getData`\n- `element_getInnerElement`\n- `element_getInnerElements`\n- `element_getStyles`\n- `element_getWxml`\n- `element_input`\n- `element_scrollTo`\n- `element_setData`\n- `element_tap`\n\n## 连接参数\n\n所有工具都可以接收一个可选的 `connection` 对象，字段如下：\n\n- `account`\n- `args`\n- `autoClose`\n- `cliPath`\n- `cwd`\n- `mode`\n- `port`\n- `projectPath`\n- `sessionId`\n- `ticket`\n- `timeout`\n- `trustProject`\n- `wsEndpoint`\n\n`mode` 说明：\n\n- `auto`：优先复用缓存会话；没有缓存时优先用 `wsEndpoint`，其次用 `projectPath`。\n- `connect`：连接已打开且开启自动化的微信开发者工具实例。\n- `launch`：通过 CLI 打开指定小程序工程。\n\n当传入 `sessionId` 时，后续工具会直接复用该会话。服务默认会在 15 分钟后回收空闲会话；如果要关闭这一行为，可设置 `WEAPP_MCP_SESSION_IDLE_TIMEOUT_MS=0`。\n\n## 示例\n\n创建一个命名会话：\n\n```json\n{\n  \"name\": \"mp_ensureConnection\",\n  \"arguments\": {\n    \"connection\": {\n      \"mode\": \"launch\",\n      \"projectPath\": \"D:/code/wechat-devtools-mcp/demo/miniprogram\",\n      \"sessionId\": \"demo-session\",\n      \"trustProject\": true\n    }\n  }\n}\n```\n\n后续复用该会话：\n\n```json\n{\n  \"name\": \"page_getElement\",\n  \"arguments\": {\n    \"connection\": {\n      \"sessionId\": \"demo-session\"\n    },\n    \"selector\": \".button\",\n    \"withWxml\": true\n  }\n}\n```\n\n列出当前会话：\n\n```json\n{\n  \"name\": \"mp_listSessions\",\n  \"arguments\": {}\n}\n```\n\n## 客户端接入\n\nCodex、Claude Desktop 和通用 MCP 客户端的示例配置见 [docs/clients.md](./docs/clients.md)。\n\n## 本地开发\n\n```bash\nnpm install\nnpm run check\nnpm test\nnpm run build\n```\n\n如果要做真实烟测，先在微信开发者工具中打开 [demo/miniprogram](./demo/miniprogram)，再用 `projectPath` 调用 `mp_ensureConnection`。\n\n也可以直接跑本地 smoke 脚本：\n\n```bash\nnpm run smoke:demo -- --inputValue hello --inspectSelector .button --screenshotPath .tmp/smoke.png\n```\n\n如果已经有开启自动化的 DevTools 实例：\n\n```bash\nnpm run smoke -- --wsEndpoint ws://127.0.0.1:9420 --inspectSelector .button\n```\n\n## 许可\n\nMIT\n","readmeFilename":"README.zh-CN.md","_rev":"1-838f9536c4db06a3ac08ec4d100a2618"}