JS Reverse MCP
让 AI 助手持续调试、捕获并复盘网页 JavaScript 行为。
- Star 数
- ★ 3k
- 最近更新
- 1 个月前
- License
- Apache-2.0
- 主语言
- TypeScript
- FA 评分
- 82/100 · 表现良好
30 秒速览
- 运行形态
- 可在哪里用
- 通用 · 跨平台Codex · Claude Code
- 费用
- 免费,无需付费服务
- 上手难度
- 低 · 几分钟可跑通
- 开始前需要
- 典型场景
- 安全研究或前端分析人员需要在压缩脚本中搜索加密、签名或传感器逻辑,并按代码文本设置断点。
- 不适合
- 需要无头或纯云端浏览器环境的团队
- 无法安装 Node.js 20.19+ 与稳定版 Chrome 的用户
- 在含敏感信息页面上使用、无法隔离浏览器的场景
- 源码审查
- 82/100 · 表现良好
这个 Agent 能做什么,适合哪些场景?
JS Reverse MCP 是一个面向 AI 编码助手的 JavaScript 逆向工程 MCP Server,通过有头 Chrome 提供脚本、断点、网络、WebSocket 和浏览器状态分析。它将 Chrome DevTools Protocol 与 Patchright 封装成 24 个适合 Agent 连续调用的工具,而不是直接暴露 DevTools 菜单或底层 API。服务默认使用系统 Google Chrome、可见窗口和持久化 profile,并以协议层 stealth 降低自动化特征;遭遇更强的指纹检测时,可选择 CloakBrowser 的源码层补丁模式。分析结果可直接返回,也可把脚本源码、请求 header/body 和二进制材料写入本地文件,供后续搜索、复算或验证。项目通过 npx 或本地 Node.js 构建运行,并明确提供 Claude Code、Codex、Cursor 与 VS Code Copilot 的 MCP 配置方式。
典型流程由 new_page 打开目标网页,再通过 list_scripts、search_in_sources、get_script_source 和 save_script_source 定位并保存 JavaScript。用户可用 set_breakpoint_on_text 或 break_on_xhr 设置断点;命中后由 get_paused_info 读取调用栈与作用域变量,使用 evaluate_script 在页面或断点 call frame 中执行代码,并通过 step、pause_or_resume 控制执行。网络侧由 list_network_requests 收集、查询和导出请求材料,get_request_initiator 返回 JavaScript 发起栈,get_websocket_messages 分析连接和消息模式。clear_site_data 可清理当前站点的 cookies、origin storage 与 sessionStorage,并可选择清理全局 HTTP cache,以便重放 cookie 或风控初始化流程。它还能选择 frame、点击可见元素、截图、读取控制台消息,并在 outputFile、filePath 或 localFilePath 参数启用时与宿主机文件往返。
- 安全研究或前端分析人员需要在压缩脚本中搜索加密、签名或传感器逻辑,并按代码文本设置断点。
- 开发者需要在页面交互触发后检查运行时参数、作用域变量、调用栈和对应源码上下文。
- 协议分析人员需要捕获 XHR/Fetch 请求的发起栈、header、body、响应内容或 Set-Cookie 信息。
- 处理实时网页协议的工程师需要列出 WebSocket 连接、识别消息模式并检查特定消息内容。
- 研究 cookie 或风控初始化链路的用户需要清理站点状态、刷新页面并重复导出关键请求材料。
- 遇到自动化检测的调试者需要先使用 Patchright stealth,再按需切换到 CloakBrowser 指纹补丁模式。
如何安装或部署这个 Agent?
运行环境需要 Node.js 20.19 或更新版本,以及 Google Chrome 稳定版。默认模式不要求 API 密钥。最短路径是在 MCP 客户端中直接通过 npx 启动,无需预先安装:
{
"mcpServers": {
"js-reverse": {
"command": "npx",
"args": ["js-reverse-mcp"]
}
}
}Claude Code 可直接注册服务:
claude mcp add js-reverse npx js-reverse-mcpCodex 可使用:
codex mcp add js-reverse -- npx js-reverse-mcp如需从源码运行:
git clone https://github.com/zhizhuodemao/js-reverse-mcp.git
cd js-reverse-mcp
npm install
npm run build然后把构建产物配置为 MCP 命令:
{
"mcpServers": {
"js-reverse": {
"command": "node",
"args": ["/你的路径/js-reverse-mcp/build/src/index.js"]
}
}
}强反爬场景如需 --cloak,建议先下载约 200MB 的可选浏览器二进制:
npx cloakbrowser install随后将 MCP 参数设置为 ["js-reverse-mcp", "--cloak"]。
如何使用这个 Agent?
启动 MCP 后,先让 new_page 打开目标 URL。由于首次导航会保持 CDP 静默,若要完整捕获网络流量,应先调用 list_network_requests 激活 collectors,再用 navigate_page(type="reload") 刷新,之后再次调用 list_network_requests。使用 reqid 查看关键请求详情,或用 outputFile 导出原始 header/body/query。脚本分析可依次调用 list_scripts、search_in_sources、set_breakpoint_on_text;触发页面行为并命中断点后,用 get_paused_info、evaluate_script 和 step 检查运行时。复现 cookie 或风控流程时,先调用 clear_site_data(confirm=true),刷新页面,再导出设置 cookie 或提交 sensor 的请求。生产或共享环境建议重复传入 --allowedRoots,把本地读写限制在专用工作目录。
这个 Agent 有哪些优点和局限?
- 24 个工具覆盖页面导航、脚本搜索、断点执行、网络请求、WebSocket、控制台和站点状态,能够组成完整的逆向调试闭环。
- 支持在暂停的 call frame 中求值、查看作用域并单步执行,比只做页面自动化更适合运行时分析。
- 长脚本、原始请求材料和二进制结果可保存到本地,避免把大型内容全部塞进模型上下文。
- 默认 Patchright 协议层 stealth 与可选 CloakBrowser 源码层指纹补丁分层实现,可按站点强度选择。
- 默认有头浏览器和持久化 profile 保留登录态,同时提供
--isolated作为一次性干净环境。
- 必须准备 Node.js 20.19+ 和 Chrome 稳定版;默认执行边界不是纯云端或无浏览器环境。
--cloak首次使用需要下载约 200MB 二进制,且使用无 Google 服务、Web Store 或同步功能的定制 Chromium。- 首次导航刻意不启用 Network/Debugger 域;完整捕获通常需要先激活 collectors 再刷新页面。
- 文件读写在未设置
--allowedRoots时不受目录限制,需要部署者主动收紧权限。 - 服务可以检查、调试和修改浏览器中的数据,不适合直接用于包含敏感信息且未隔离的页面。
这个 Agent 与同类方案有什么区别?
默认模式使用系统 Google Chrome 与 Patchright 协议层 stealth,保留 Web Store、扩展和同步能力;--cloak 改用独立 profile 和定制 Chromium,通过 C++ 源码层补丁覆盖更多指纹面,但没有 Google 服务或 Web Store,并带来约 200MB 的首次下载成本。项目建议仅在默认模式仍被指纹拦截时启用 CloakBrowser。
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| JS Reverse MCP 当前 | 82 · 表现良好 | MCP 服务器免费 | ★ 3k | 1 个月前 | TypeScript | Codex · Claude Code |
| bdg 浏览器调试 CLI | 68 · 存在缺口 | 命令行工具免费 | ★ 177 | 今天 | TypeScript | Codex · Claude Code |
| Chrome DevTools MCP | 79 · 存在缺口 | MCP 服务器免费 | ★ 54k | 今天 | TypeScript | Codex · Claude Code |
| REA:让 Agent 逆向一切 | 72 · 存在缺口 | 命令行工具免费 | ★ 327k | 今天 | TypeScript | Codex · Claude Code · Claude.ai |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
证据详细披露浏览器内容暴露、本地文件读写、持久化登录态、日志泄密风险、CloakBrowser 下载和网络评测数据流;allowedRoots 会解析真实路径并阻止符号链接及 file URL 越界,相关测试覆盖直接、符号链接和悬空链接逃逸。清理网络记录和站点数据要求显式确认,日志权限为 0600,远程带凭据评测要求 HTTPS。扣分在于 allowedRoots 默认关闭,本地读写因而不受限;默认 profile 保存 Cookie/localStorage;导航、点击和任意页面脚本执行等外部影响没有普遍确认层;清理数据不可恢复。CI 执行生产依赖审计并固定部分关键依赖、覆盖 tar,但仍有范围依赖且未提供锁文件、SBOM或依赖审计结果。作者、仓库、第三方项目和许可证有归属信息,但发布者身份未验证,也没有更明确的供应链身份材料。
README、package 脚本、CI 和所给测试在工具行为、Node 版本和发布流程上高度一致。测试显示并发 CDP 会话去重、失败后重试、失效会话分离、监听器回滚、断点恢复以及部分删除失败的诚实报告;暂停状态下无法完成的 Promise 也返回针对性错误,因此自洽性和失败消息证据充分。扣分在依赖可用性:运行依赖系统 Chrome,Cloak 模式首次可能下载约 200MB,且实际平台覆盖、下载服务可用性和离线降级未由所给文件完整证明。
文档明确面向 JS 逆向、断点调试、网络/WebSocket、Cookie与风控复现等场景,并分别给出默认、isolated、cloak 和外部 CDP endpoint 配置。24 个工具按边界分类,破坏性动作使用显式 action/confirm,严格单元素点击及 30 条离线路由契约体现较强触发精度。扣分在环境适配:虽列出 Node、Chrome和多个客户端配置,但所引用的 Cloak 平台细节及 CDP 专项文档未包含在证据中,无法确认全部平台和第三方浏览器适配。
README 的信息架构完整,包含安装、客户端配置、工具目录、工作流示例、配置、安全提示和故障排除;包名、命令名及 MCP 名称稳定一致。Apache-2.0 元数据与完整 LICENSE 相符。扣分在于已知限制主要散落在安全提示和故障排除中,未系统覆盖授权边界、站点政策或所有操作限制;有 4.0.1 版本、标签校验和自动生成发布说明,但没有提供独立变更日志;维护入口仅能从作者字段、issues URL和发布工作流推断,缺少支持政策、维护团队或响应承诺。
面向 Agent 的短列表、受限详情、源码上下文、原始材料文件导出和后续输入复用,使输出可直接支持连续分析;把页面、脚本、断点、网络、WebSocket和状态重放组合成单一 MCP,具有明显的边际价值。扣分在成本收益:文档披露了约 200MB 可选下载、持久 profile 和显式付费模型评测,但没有资源消耗、性能、成功率或相对替代方案的量化证据。
README 中若干安全和生命周期主张可由 package、CI及所给单元测试交叉支持,例如 presubmit、依赖审计、路径隔离、失败重试和断点恢复。扣分在于核心反检测、24 个工具的完整实现、路由评测数据和跨平台能力没有相应源代码或结果材料;证据主要来自同一仓库,缺乏独立佐证;文档虽区分默认行为和建议流程,但营销性能力陈述没有始终明确标为实测事实、设计意图或推断。
- 默认未配置 --allowedRoots 时,Agent 可不受目录限制地读取或写入宿主机文件;在专用工作目录中启用该选项。
- 默认 profile 会跨会话保留 Cookie 和 localStorage,并向 MCP 客户端暴露页面内容;不要用于含敏感信息的浏览器会话。
- evaluate_script、点击、导航和网络交互可能修改页面或远端状态;应在已授权目标上使用,并在高影响操作前增加人工确认。
- clear_site_data 及手动删除 profile 会不可逆地丢失登录态;先备份或使用 --isolated 复现实验。
- CloakBrowser 首次启动可能下载约 200MB;应预下载并独立核验二进制来源、平台支持及依赖审计状态。
- 反检测能力可能涉及目标站点条款、访问控制或法律限制;仓库材料未提供使用授权或合规保证。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
发布说明摘录
Full Changelog: https://github.com/zhizhuodemao/js-reverse-mcp/compare/v4.0.4...v4.0.5在 GitHub 查看 ↗ -
发布说明摘录
Full Changelog: https://github.com/zhizhuodemao/js-reverse-mcp/compare/v4.0.2...v4.0.3在 GitHub 查看 ↗ -
发布说明摘录
Full Changelog: https://github.com/zhizhuodemao/js-reverse-mcp/compare/v4.0.1...v4.0.2在 GitHub 查看 ↗
常见问题
需要 API 密钥或付费模型端点吗?
为什么第一次打开页面没有完整网络请求?
list_network_requests 激活 collectors,再通过 navigate_page(type="reload") 刷新,之后重新列出请求。什么时候应该启用 --cloak?
--cloak。排查残留状态时也可先尝试 --isolated。它会保留登录状态吗?
--isolated 使用临时 user-data-dir,关闭时清理;CloakBrowser 则使用与默认模式物理隔离的独立持久化 profile。如何限制它访问本地文件?
--allowedRoots 指定许可目录。启用后会解析真实路径、拒绝符号链接越界,并禁止 file:、view-source:file: 和 filesystem:file: 页面。