loading…
Search for a command to run...
loading…
Enables AI coding assistants to debug and analyze WeChat MiniApp JavaScript code via Chrome DevTools Protocol. Supports network interception, breakpoint debuggi
Enables AI coding assistants to debug and analyze WeChat MiniApp JavaScript code via Chrome DevTools Protocol. Supports network interception, breakpoint debugging, script analysis, and runtime inspection for reverse engineering purposes.
English | 中文
微信小程序逆向工程 MCP 服务器,让你的 AI 编码助手(如 Claude、Cursor、Antigravity)能够直接通过 Chrome DevTools Protocol (CDP) 调试和分析微信小程序(包括微信开发者工具或 PC 端微信小程序)中的 JavaScript 代码。
AppService(逻辑层)和 WebView(渲染层)目标之间无缝切换在使用本 MCP 之前,你需要先通过注入工具将微信小程序的 CDP 调试端口暴露出来。你可以根据你的操作系统和微信版本,选择以下开源工具之一来完成 Hook 和端口暴露(通常暴露于 62000 端口):
本项目通过 uvx 实现零配置的“开箱即用”。如果你还没安装 uv,请先根据你的系统执行以下命令安装:
macOS / Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh
Windows:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
无需把代码克隆到本地,你可以直接利用 uv 的能力,在 AI 助手的 MCP 配置文件中添加:
{
"mcpServers": {
"miniapp-cdp": {
"command": "uvx",
"args": ["--from", "miniapp-cdp", "miniapp-cdp-mcp"]
}
}
}
修改 ~/Library/Application Support/Claude/claude_desktop_config.json,加入上述配置。
进入 Cursor Settings -> Features -> MCP -> Add new MCP server:
commandminiapp-cdpuvx --from miniapp-cdp miniapp-cdp-mcp如果你想在本地修改或开发:
git clone https://github.com/yourusername/miniapp-cdp-py.git
cd miniapp-cdp-py
uv sync
然后在 MCP 配置中使用本地运行方式:
{
"mcpServers": {
"miniapp-cdp": {
"command": "uv",
"args": ["run", "run_mcp_server.py"],
"cwd": "/你的路径/miniapp-cdp-py"
}
}
}
| 工具 | 描述 |
|---|---|
list_targets |
列出调试器中所有可用的目标(AppService 线程、WebView 线程等) |
switch_target |
切换 CDP 连接到不同的目标线程进行调试上下文切换 |
| 工具 | 描述 |
|---|---|
list_network_requests |
列出小程序网络请求(支持分页),或获取单条详情 |
get_request_initiator |
获取发起网络请求的 JavaScript 调用栈 |
get_response_body |
获取网络请求的完整响应体 |
get_websocket_messages |
列出 WebSocket 连接或获取特定连接的消息详情 |
| 工具 | 描述 |
|---|---|
list_scripts |
列出当前页面加载的所有 JavaScript 脚本 |
get_script_source |
获取脚本源码片段,支持行范围或字符偏移 |
save_script_source |
保存完整脚本源码到本地文件(适用于提取整包或核心风控代码) |
search_in_sources |
在所有脚本中搜索字符串或正则表达式 |
| 工具 | 描述 |
|---|---|
set_breakpoint_on_text |
通过搜索代码文本自动设置断点(切勿直接对匿名函数声明下断点) |
break_on_xhr |
按 URL 模式设置 XHR/Fetch 断点 |
remove_breakpoints |
移除指定的断点,或通过 clear_all=True 瞬间清空所有断点环境 |
list_breakpoints |
列出所有活动断点 |
get_paused_info |
获取暂停状态、调用栈和作用域变量 |
resume_execution |
释放断点,恢复代码执行 |
step |
单步调试(over/into/out),返回位置和源码上下文 |
| 工具 | 描述 |
|---|---|
evaluate_script |
在当前上下文中执行 JavaScript 表达式(支持在断点暂停时执行) |
列出所有小程序目标,并切换到 AppService (逻辑层) 线程
在所有脚本中搜索包含 "encrypt" 的代码,并获取相关脚本的上下文源码
在加密函数的具体执行语句(如 return 处)设置断点
在小程序上点击触发网络请求,断点命中后,检查参数、调用栈以及密钥的生成逻辑
抓取最新发出的网络请求列表,并找出特定的加密请求(如带有 mina_edata 参数的请求),
随后获取该请求的发起者调用栈 (Initiator) 定位加密入口。
在项目的 examples/ 目录下,包含了一些利用本工具逆向得出的实战脚本(例如 vipshop_decrypt_demo.py),展示了如何通过 MCP 分析出小程序的复杂多层加密算法并在 Python 中完美还原。
此工具会将小程序的底层运行上下文暴露给 MCP 客户端,允许检查、调试和修改应用内存中的任何数据。请勿将此工具用于非法用途,仅限于个人学习、安全研究与合法授权的逆向分析。
本项目构建在 cdp-use 之上。cdp-use 提供了一个面向 Agent 场景进行高度优化和抽象的底层 WebSocket 交互层,极大地简化了原始 CDP 协议的通信复杂性。
MIT License
Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"miniapp-cdp-mcp": {
"command": "npx",
"args": []
}
}
}