微信小程序开发 MCP
https://github.com/yfmeii/weapp-dev-mcp
https://www.npmjs.com/package/@yfme/weapp-dev-mcp
起因是前几天微信开放社区说微信开发者工具 2.0 发布了,据说有增强 AI 协作能力的封装

但是事实是并没有找到任何暴露 MCP 服务的迹象,社区也没有人做出回复
那就只能自己动手了,小程序有一个自动化,是用来做自动化测试的,能通过编程的方式控制和读取运行状态下的小程序,也就是说设想中的完美开发方式,AI 完成编码后自己能走一遍交互能大大降低返工次数也能节省 AI 的使用成本
当然有很多现成的别人做过的 MCP,大多都是以 cli 形式控制的,但是这样就存在一个问题,部分工具的 MCP 有沙箱机制,会导致 MCP 无法调用工作目录以外的文件,所以我这里主要使用 websocket 控制
首先要打开微信开发者工具的自动化测试:
- 打开微信开发者工具
- 进入 设置 → 安全设置 → 服务端口
- 开启 "HTTP 调试" 和 "自动化测试"
配置:
{
"mcpServers": {
"weapp-dev": {
"command": "npx",
"args": [
"-y",
"-p", "@modelcontextprotocol/sdk@1.17.2",
"-p", "fastmcp@3.23.0",
"-p", "@yfme/weapp-dev-mcp",
"weapp-dev-mcp"
],
"env": {
"WEAPP_WS_ENDPOINT": "ws://localhost:9420"
}
}
}
}
启动微信开发者工具(macOS):
/Applications/wechatwebdevtools.app/Contents/MacOS/cli auto --project /path/to/your/project --auto-port 9420
其中:
--project参数指定小程序项目目录路径(请替换为实际的项目路径)--auto-port参数指定 WebSocket 服务端口(默认 9420)
提供工具:
应用工具(Application Tools)
mp_ensureConnection– 确保自动化会话就绪;可选择强制重连或覆盖连接设置mp_navigate– 在小程序内导航,支持navigateTo、redirectTo、reLaunch、switchTab或navigateBackmp_screenshot– 捕获屏幕截图并返回(或保存到磁盘)mp_callWx– 调用微信小程序 API 方法(如wx.showToast)mp_getLogs– 获取小程序控制台日志,可选择获取后清除
页面工具(Page Tools)
page_getElement– 通过选择器获取页面元素page_waitElement– 等待元素出现在页面上(⚠️ 不适用于自定义组件内部元素)page_waitTimeout– 等待指定的毫秒数page_getData– 获取当前页面的数据对象,可指定路径page_setData– 使用setData更新当前页面的数据page_callMethod– 调用当前页面实例上暴露的方法
元素工具(Element Tools)
element_tap– 通过 CSS 选择器点击 WXML 元素element_input– 向元素输入文本(适用于input和textarea组件)element_callMethod– 调用自定义组件实例的方法(需要 ID 选择器)element_getData– 获取自定义组件实例的渲染数据(需要 ID 选择器)element_setData– 设置自定义组件实例的渲染数据(需要 ID 选择器)element_getInnerElement– 获取元素内的元素(相当于element.$(selector))element_getInnerElements– 获取元素内的元素数组(相当于element.$$(selector))element_getSize– 获取元素大小(宽度和高度)element_getWxml– 获取元素 WXML(内部或外部)