$git clone https://github.com/zhizhuodemao/js-reverse-mcpEnglish | 中文
| 1 | # JS Reverse MCP |
| 2 | |
| 3 | [English](README_en.md) | 中文 |
| 4 | |
| 5 | AI-first / AI-native 的 JavaScript 逆向工程 MCP Server,让你的 AI 编码助手(如 Claude、Cursor、Copilot)能够像分析师一样持续调试、定位、保存和复盘网页中的 JavaScript 行为。 |
| 6 | |
| 7 | 它不是把 Chrome DevTools API 原样搬给模型,而是把脚本、断点、网络、WebSocket、浏览器状态和本地文件 I/O 重新组织成适合 AI Agent 连续推理和操作的工具。反检测是其中一部分能力:默认基于 [Patchright](https://github.com/Kaliiiiiiiiii-Vinyzu/patchright-nodejs) 协议层 stealth,对强反爬站点可选启用 [CloakBrowser](https://github.com/CloakHQ/CloakBrowser) 源码层指纹模式。 |
| 8 | |
| 9 | ## ☁️ 赞助 · Sponsored by Bloome |
| 10 | |
| 11 | <p align="center"> |
| 12 | <a href="https://bloome.im/app?ref=zhizhuodemao&utm_medium=github&utm_source=zhizhuodemao-js-reverse-mcp-ivor-202607"> |
| 13 | <img src="images/广告图片.png" alt="Bloome:Accelerating the world's transition to human-agent teams" width="100%"> |
| 14 | </a> |
| 15 | </p> |
| 16 | |
| 17 | Bloome 是一个 AI Agent IM 平台:不是你对着一个 bot 单打独斗,而是让多个 AI agent(Claude、ChatGPT、DeepSeek 等)和你待在同一个群聊里协作。 |
| 18 | |
| 19 | 把任务丢进对话,它们会自动分工——起草、交叉核对、补全细节,彼此挑错、互相补位,直到结果靠谱为止,并直接在对话里生成表格、文档和可视化看板。还能按计划 7×24 自动运行(比如每天定时整理报表发进频道),零本地配置、云端运行,网页和手机都能用;配好的 agent 一键分享给团队,无需各自部署。 |
| 20 | |
| 21 | 一句话:把"我 + 一个助手"升级成"我的团队 + 一群会协作的 agent"。 |
| 22 | |
| 23 | 👉 试试 [Bloome](https://bloome.im/app?ref=zhizhuodemao&utm_medium=github&utm_source=zhizhuodemao-js-reverse-mcp-ivor-202607) |
| 24 | |
| 25 | ## 功能特点 |
| 26 | |
| 27 | - **AI-native 工具设计**:工具粒度、输出边界和错误提示都围绕 Agent 决策设计,避免把模型推向无效下一步 |
| 28 | - **可复盘工作流**:脚本源码、网络原始数据、二进制结果都能导出到本地文件,再作为后续分析输入 |
| 29 | - **断点上下文执行**:暂停时可直接在 call frame 中求值,检查作用域变量,单步执行并返回源码上下文 |
| 30 | - **脚本分析**:列出所有加载的 JS,搜索代码,获取/保存源码,自动格式化大型压缩脚本 |
| 31 | - **网络与 WebSocket 分析**:请求调用栈、XHR 断点、Set-Cookie 识别、原始 body/header 导出、WebSocket 消息分组 |
| 32 | - **浏览器状态重放**:清理当前站点 cookies / cache / storage / sessionStorage,配合 reload 复现 cookie 和风控流程 |
| 33 | - **默认有头 + 持久化登录态**:看得到浏览器,cookies / localStorage 跨会话保留 |
| 34 | - **可选反检测层**:Patchright 协议层 stealth 默认启用;强反爬站点可加 `--cloak` 使用 CloakBrowser 二进制 |
| 35 | |
| 36 | ## 系统要求 |
| 37 | |
| 38 | - [Node.js](https://nodejs.org/) v20.19 或更新版本 |
| 39 | - [Chrome](https://www.google.com/chrome/) 稳定版 |
| 40 | |
| 41 | ## 快速开始(npx) |
| 42 | |
| 43 | 无需安装,直接在 MCP 客户端配置中添加: |
| 44 | |
| 45 | ```json |
| 46 | { |
| 47 | "mcpServers": { |
| 48 | "js-reverse": { |
| 49 | "command": "npx", |
| 50 | "args": ["js-reverse-mcp"] |
| 51 | } |
| 52 | } |
| 53 | } |
| 54 | ``` |
| 55 | |
| 56 | ### Claude Code |
| 57 | |
| 58 | ```bash |
| 59 | claude mcp add js-reverse npx js-reverse-mcp |
| 60 | ``` |
| 61 | |
| 62 | ### Codex |
| 63 | |
| 64 | ```bash |
| 65 | codex mcp add js-reverse -- npx js-reverse-mcp |
| 66 | ``` |
| 67 | |
| 68 | ### Cursor |
| 69 | |
| 70 | 进入 `Cursor Settings` -> `MCP` -> `New MCP Server`,使用上面的配置。 |
| 71 | |
| 72 | ### VS Code Copilot |
| 73 | |
| 74 | ```bash |
| 75 | code --add-mcp '{"name":"js-reverse","command":"npx","args":["js-reverse-mcp"]}' |
| 76 | ``` |
| 77 | |
| 78 | ## 本地安装(可选) |
| 79 | |
| 80 | ```bash |
| 81 | git clone https://github.com/zhizhuodemao/js-reverse-mcp.git |
| 82 | cd js-reverse-mcp |
| 83 | npm install |
| 84 | npm run build |
| 85 | ``` |
| 86 | |
| 87 | 然后在 MCP 配置中使用本地路径: |
| 88 | |
| 89 | ```json |
| 90 | { |
| 91 | "mcpServers": { |
| 92 | "js-reverse": { |
| 93 | "command": "node", |
| 94 | "args": ["/你的路径/js-reverse-mcp/build/src/index.js"] |
| 95 | } |
| 96 | } |
| 97 | } |
| 98 | ``` |
| 99 | |
| 100 | ## AI-first 设计 |
| 101 | |
| 102 | 这个项目的核心目标不是“能操作浏览器”,而是让 AI Agent 能稳定完成一轮真实 JS 逆向任务:打开页面、过风控、定位脚本、保存源码、设置断点、触发行为、检查运行时、导出网络材料、复现状态,然后继续推理。 |
| 103 | |
| 104 | 几个设计取向贯穿在代码里: |
| 105 | |
| 106 | - **工具是 Agent primitives,不是 DevTools 菜单映射**:`list_network_requests` 既能列索引,也能按 `reqid` 查详情,还能用 `outputFile` 导出精确材料;`evaluate_script` 既能在页面执行,也能在断点 call frame 执行,还能接收 `localFilePath` 输入。 |
| 107 | - **输出要能指导下一步**:列表输出保持短而可扫描;详情输出有边界;长结果提示导出;pending 请求会明确提示先恢复执行,避免 Agent 等一个永远不会完成的 response。 |
| 108 | - **本地文件是分析工作台**:`save_script_source`、`list_network_requests(..., outputFile)`、`evaluate_script(..., localFilePath)` 让 Agent 能在浏览器、网络和本地文件之间往返,而不是把大段代码或二进制数据塞进聊天上下文。 |
| 109 | - **状态可清理、流程可重放**:默认 profile 保留登录态;`--isolated` 提供一次性干净环境;`clear_site_data` 只清当前站点相关状态,用来反复复现 cookie 生成、风控初始化和请求链路。 |
| 110 | - **反检测服务于调试链路**:CDP 静默导航、真实视口、Google referer、Patchright 和 CloakBrowser 的目标都是让 Agent 能进入目标页面继续分析,而不是把项目变成一个泛用爬虫框架。 |
| 111 | |
| 112 | ## 反检测机制(支撑能力) |
| 113 | |
| 114 | 反检测是 js-reverse-mcp 的底层支撑能力之一。包装层(这个 MCP 自己)**零 JS 注入**、不做 `Object.defineProperty` hack(那本身就是检测信号)。所有反检测都在两个互不重叠的层: |
| 115 | |
| 116 | | 层 | 默认模式 | `--cloak` 模式 | |
| 117 | | ------------------------------ | --------------------------------------------------------------------------------------------------------------- | ----------------------- |