JS Reverse MCP

让 AI 助手持续调试、捕获并复盘网页 JavaScript 行为。

Star 数
★ 3k
最近更新
1 个月前
License
Apache-2.0
主语言
TypeScript

30 秒速览

运行形态
MCP 服务器命令行工具
可在哪里用
通用 · 跨平台Codex · Claude Code
费用
免费,无需付费服务
上手难度
低 · 几分钟可跑通
开始前需要
Node.js 20.19 或更高版本Google Chrome 稳定版Shell / 命令行网络访问本地文件系统MCP Server
典型场景
安全研究或前端分析人员需要在压缩脚本中搜索加密、签名或传感器逻辑,并按代码文本设置断点。
不适合
  • 需要无头或纯云端浏览器环境的团队
  • 无法安装 Node.js 20.19+ 与稳定版 Chrome 的用户
  • 在含敏感信息页面上使用、无法隔离浏览器的场景

这个 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 参数启用时与宿主机文件往返。

  1. 安全研究或前端分析人员需要在压缩脚本中搜索加密、签名或传感器逻辑,并按代码文本设置断点。
  2. 开发者需要在页面交互触发后检查运行时参数、作用域变量、调用栈和对应源码上下文。
  3. 协议分析人员需要捕获 XHR/Fetch 请求的发起栈、header、body、响应内容或 Set-Cookie 信息。
  4. 处理实时网页协议的工程师需要列出 WebSocket 连接、识别消息模式并检查特定消息内容。
  5. 研究 cookie 或风控初始化链路的用户需要清理站点状态、刷新页面并重复导出关键请求材料。
  6. 遇到自动化检测的调试者需要先使用 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-mcp

Codex 可使用:

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?

FollowAgents 源码审查 · FARS-2.1
表现良好
82/ 100 五分制 4.1 / 5
本评测基于 2026年8月14日 的源码;此后该项目发布了 3 个正式版本,尚未复审。分数与结论只代表评测时的版本。 最近版本 ↓
信任安全 21/29
可靠稳定 12/14
适用触发 16/18
规范维护 16/18
有效结果 12/13
证据核验 5/8
查看各维度的扣分理由
信任安全21 / 29 · 3.6/5

证据详细披露浏览器内容暴露、本地文件读写、持久化登录态、日志泄密风险、CloakBrowser 下载和网络评测数据流;allowedRoots 会解析真实路径并阻止符号链接及 file URL 越界,相关测试覆盖直接、符号链接和悬空链接逃逸。清理网络记录和站点数据要求显式确认,日志权限为 0600,远程带凭据评测要求 HTTPS。扣分在于 allowedRoots 默认关闭,本地读写因而不受限;默认 profile 保存 Cookie/localStorage;导航、点击和任意页面脚本执行等外部影响没有普遍确认层;清理数据不可恢复。CI 执行生产依赖审计并固定部分关键依赖、覆盖 tar,但仍有范围依赖且未提供锁文件、SBOM或依赖审计结果。作者、仓库、第三方项目和许可证有归属信息,但发布者身份未验证,也没有更明确的供应链身份材料。

可靠稳定12 / 14 · 4.3/5

README、package 脚本、CI 和所给测试在工具行为、Node 版本和发布流程上高度一致。测试显示并发 CDP 会话去重、失败后重试、失效会话分离、监听器回滚、断点恢复以及部分删除失败的诚实报告;暂停状态下无法完成的 Promise 也返回针对性错误,因此自洽性和失败消息证据充分。扣分在依赖可用性:运行依赖系统 Chrome,Cloak 模式首次可能下载约 200MB,且实际平台覆盖、下载服务可用性和离线降级未由所给文件完整证明。

适用触发16 / 18 · 4.4/5

文档明确面向 JS 逆向、断点调试、网络/WebSocket、Cookie与风控复现等场景,并分别给出默认、isolated、cloak 和外部 CDP endpoint 配置。24 个工具按边界分类,破坏性动作使用显式 action/confirm,严格单元素点击及 30 条离线路由契约体现较强触发精度。扣分在环境适配:虽列出 Node、Chrome和多个客户端配置,但所引用的 Cloak 平台细节及 CDP 专项文档未包含在证据中,无法确认全部平台和第三方浏览器适配。

规范维护16 / 18 · 4.4/5

README 的信息架构完整,包含安装、客户端配置、工具目录、工作流示例、配置、安全提示和故障排除;包名、命令名及 MCP 名称稳定一致。Apache-2.0 元数据与完整 LICENSE 相符。扣分在于已知限制主要散落在安全提示和故障排除中,未系统覆盖授权边界、站点政策或所有操作限制;有 4.0.1 版本、标签校验和自动生成发布说明,但没有提供独立变更日志;维护入口仅能从作者字段、issues URL和发布工作流推断,缺少支持政策、维护团队或响应承诺。

有效结果12 / 13 · 4.6/5

面向 Agent 的短列表、受限详情、源码上下文、原始材料文件导出和后续输入复用,使输出可直接支持连续分析;把页面、脚本、断点、网络、WebSocket和状态重放组合成单一 MCP,具有明显的边际价值。扣分在成本收益:文档披露了约 200MB 可选下载、持久 profile 和显式付费模型评测,但没有资源消耗、性能、成功率或相对替代方案的量化证据。

证据核验5 / 8 · 3.1/5

README 中若干安全和生命周期主张可由 package、CI及所给单元测试交叉支持,例如 presubmit、依赖审计、路径隔离、失败重试和断点恢复。扣分在于核心反检测、24 个工具的完整实现、路由评测数据和跨平台能力没有相应源代码或结果材料;证据主要来自同一仓库,缺乏独立佐证;文档虽区分默认行为和建议流程,但营销性能力陈述没有始终明确标为实测事实、设计意图或推断。

风险与缓解建议
  • 默认未配置 --allowedRoots 时,Agent 可不受目录限制地读取或写入宿主机文件;在专用工作目录中启用该选项。
  • 默认 profile 会跨会话保留 Cookie 和 localStorage,并向 MCP 客户端暴露页面内容;不要用于含敏感信息的浏览器会话。
  • evaluate_script、点击、导航和网络交互可能修改页面或远端状态;应在已授权目标上使用,并在高影响操作前增加人工确认。
  • clear_site_data 及手动删除 profile 会不可逆地丢失登录态;先备份或使用 --isolated 复现实验。
  • CloakBrowser 首次启动可能下载约 200MB;应预下载并独立核验二进制来源、平台支持及依赖审计状态。
  • 反检测能力可能涉及目标站点条款、访问控制或法律限制;仓库材料未提供使用授权或合规保证。
证据充分度:低 评估于 2026年8月14日 审查版本 f45172a7b2a8 评估后仓库已有新提交,评分可能未覆盖最新改动
查看完整评分方法 →

最近版本

来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。

  1. v4.0.5
    发布说明摘录
    Full Changelog: https://github.com/zhizhuodemao/js-reverse-mcp/compare/v4.0.4...v4.0.5
    在 GitHub 查看 ↗
  2. v4.0.3
    发布说明摘录
    Full Changelog: https://github.com/zhizhuodemao/js-reverse-mcp/compare/v4.0.2...v4.0.3
    在 GitHub 查看 ↗
  3. v4.0.2
    发布说明摘录
    Full Changelog: https://github.com/zhizhuodemao/js-reverse-mcp/compare/v4.0.1...v4.0.2
    在 GitHub 查看 ↗

常见问题

需要 API 密钥或付费模型端点吗?
正常运行 MCP Server 未记录任何 API 密钥要求。只有维护者主动运行真实模型路由评测时,才可能需要配置 OpenAI-compatible Chat Completions 端点、模型名和 API key,并可能产生费用。
为什么第一次打开页面没有完整网络请求?
导航阶段会保持 CDP 静默。先调用 list_network_requests 激活 collectors,再通过 navigate_page(type="reload") 刷新,之后重新列出请求。
什么时候应该启用 --cloak?
先使用默认 Patchright 模式;如果仍被 Cloudflare Turnstile、DataDome、FingerprintJS 等指纹防护拦截,再启用 --cloak。排查残留状态时也可先尝试 --isolated。
它会保留登录状态吗?
默认 profile 会跨会话保留 cookies 和 localStorage。--isolated 使用临时 user-data-dir,关闭时清理;CloakBrowser 则使用与默认模式物理隔离的独立持久化 profile。
如何限制它访问本地文件?
通过一个或多个 --allowedRoots 指定许可目录。启用后会解析真实路径、拒绝符号链接越界,并禁止 file:、view-source:file: 和 filesystem:file: 页面。
在 GitHub 查看 ↗ 安装 ↓

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents