开发与工程 javascript-reverse-engineeringchrome-devtools-protocolbrowser-debuggingpatchrightwebsocket-analysisnetwork-inspectionanti-detectionmcp-server

JS Reverse MCP

让 AI 助手持续调试和复盘网页 JavaScript 行为。

FollowAgents 评估 · FARS-2.1
推荐
82/ 100 五分制 4.1 / 5
1 2 3 4 5 6
1信任安全21 / 29 · 3.6/5

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

2可靠稳定12 / 14 · 4.3/5

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

3适用触发16 / 18 · 4.4/5

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

4规范维护16 / 18 · 4.4/5

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

5有效结果12 / 13 · 4.6/5

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

6证据核验5 / 8 · 3.1/5

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

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

这个 Agent 能做什么,适合哪些场景?

JS Reverse MCP 是面向 AI 编码助手的 JavaScript 逆向工程 MCP Server,通过有头 Chrome 提供页面、脚本、断点、网络、WebSocket 和浏览器状态分析能力。它默认使用系统 Google Chrome、Patchright 协议层 stealth 和持久化 profile,也可通过 `--isolated` 启动临时环境,或通过 `--cloak` 切换到 CloakBrowser 定制 Chromium。服务公开 24 个面向连续 Agent 工作流设计的 MCP 工具,可查找和保存脚本、在 call frame 中求值、单步调试、导出原始请求材料并清理站点状态。长脚本、网络正文和二进制结果可以写入本地文件,再由后续分析读取,避免把全部材料塞入对话上下文。它适合需要交互式网页调试、风控流程复现或协议分析的开发者,但会向 MCP 客户端暴露浏览器内容,并可能授予宿主机文件读写能力。

典型流程从 new_page 打开目标页开始,再通过 list_scriptssearch_in_sourcesget_script_sourcesave_script_source 定位并保存 JavaScript。用户可以用 set_breakpoint_on_textbreak_on_xhr 设置断点,通过 get_paused_info 检查调用栈与作用域变量,并用 evaluate_script 在页面或断点 call frame 中执行代码,随后使用 steppause_or_resume 控制执行。网络侧由 list_network_requests 收集、查询并导出 header、body 和 query 等材料,get_request_initiator 返回 JavaScript 调用栈,get_websocket_messages 分析连接和消息模式。clear_site_data 可清理当前站点的 cookies、origin storage 与 sessionStorage,并可选择清理全局 HTTP cache,以便刷新后重放 cookie 或风控初始化流程。服务还支持页面和 frame 选择、元素点击、截图、控制台消息检查,以及通过 localFilePathoutputFilefilePath 在浏览器分析与本地文件之间传递材料。

  1. 安全研究员或前端工程师需要在压缩脚本中搜索加密函数,并按代码文本设置断点检查运行时参数。
  2. 协议分析人员需要列出 WebSocket 连接、归纳消息模式,并查看特定消息的内容。
  3. 调试风控或 cookie 初始化流程的开发者,需要清理站点状态、刷新页面并导出关键请求与响应材料。
  4. AI 编码助手用户需要把大型 JavaScript、WASM 或二进制网络结果保存到本地,再分阶段分析。
  5. 面对 Cloudflare Turnstile、DataDome 或 FingerprintJS 防护的研究人员,需要在默认 Patchright 模式不足时尝试可选 CloakBrowser 指纹模式。
  6. 使用 AdsPower、BitBrowser 或独立 Chrome 实例的团队,需要通过 --browserUrl 接入能响应 /json/version 的 CDP HTTP endpoint。

这个 Agent 有哪些优点和局限?

优点
  • 24 个工具按 Agent 连续决策重新组织,而不是简单照搬 Chrome DevTools 菜单;列表、详情、长结果导出和 pending 请求均有明确处理边界。
  • 断点命中后可直接在 call frame 中求值、检查作用域、单步执行并返回源码上下文,覆盖真实运行时逆向流程。
  • 脚本源码、网络原始数据和二进制结果可导出到本地文件,并通过 evaluate_script(..., localFilePath) 再次送入页面上下文。
  • 默认提供有头 Chrome、持久化登录态和 Patchright 协议层 stealth,同时保留 --isolated--cloak 两种不同的排障路径。
  • 网络分析覆盖请求调用栈、XHR/Fetch 断点、Set-Cookie 识别、原始 header/body 导出和 WebSocket 消息分析。
局限
  • 必须运行 Node.js 20.19+ 和浏览器;默认模式还依赖已安装的 Google Chrome,不是纯云端或无浏览器库。
  • --cloak 首次使用需要下载约 200MB 的定制浏览器,并且该浏览器没有 Google 服务、Web Store 或扩展同步。
  • 工具可读取页面敏感信息并修改浏览器数据;未配置 --allowedRoots 时,本地文件访问范围不受限制。
  • 导航阶段刻意不立即启用 Network 和 Debugger 域;要捕获完整初始请求,通常需要先激活 collectors 再刷新。
  • --browserUrl 只接受可响应 /json/version 的 CDP HTTP endpoint,不能直接使用 AdsPower 或 BitBrowser 的厂商私有 Local API。

如何安装或部署这个 Agent?

准备 Node.js 20.19 或更新版本、Google Chrome 稳定版及支持 MCP 的客户端。无需预装包时,可在 MCP 配置中加入:
{
"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,进入 js-reverse-mcp 后执行 npm installnpm run build,再以 node /你的路径/js-reverse-mcp/build/src/index.js 作为 MCP 命令。使用 --cloak 前建议先运行 npx cloakbrowser install 下载约 200MB 的浏览器二进制;README 未要求 API 凭据。

如何使用这个 Agent?

启动 MCP 后,先调用 new_page 打开目标 URL。由于导航阶段默认保持 CDP 静默,如需完整网络捕获,应先调用 list_network_requests 激活 collectors,再执行 navigate_page(type="reload"),之后重新调用 list_network_requests 并对关键 reqid 使用 outputFile 导出材料。脚本分析可依次使用 list_scriptssearch_in_sourcesset_breakpoint_on_text,触发页面行为后以 get_paused_infoevaluate_scriptstep 检查执行现场。重放 cookie 或风控流程时,先运行 clear_site_data(confirm=true),刷新后定位设置 cookie 或提交 sensor 的请求,再导出 request body、response headers 或 response body。涉及本地文件时,建议重复传入 --allowedRoots 将读写权限限制在专用工作目录。

这个 Agent 与同类方案有什么区别?

相较于把 Chrome DevTools API 原样暴露给模型,该项目将脚本、断点、网络、WebSocket、状态和本地文件操作组合成面向连续推理的 MCP primitives。默认 Patchright 模式使用系统 Google Chrome,保留 Web Store、扩展和同步;可选 --cloak 模式改用带 C++ 源码级指纹 patch 的 CloakBrowser,但不提供 Google 服务或 Web Store。维护者明确将反检测定位为调试链路的支撑能力,而不是把项目做成通用爬虫框架。

常见问题

需要 API key 或付费模型服务吗?
运行 MCP Server 本身未记录 API key 要求。只有维护者选择执行显式 opt-in 的真实模型路由评测时,才可能需要 OpenAI-compatible Chat Completions endpoint、模型名和 API key,并可能产生费用。
什么时候应该启用 --cloak
应先使用默认 Patchright 模式;若怀疑持久化状态污染,可先试 --isolated。只有协议层 stealth 仍无法通过目标站点的指纹检查时,才建议启用 --cloak
登录状态会保留吗?
默认 profile 会跨会话保留 cookies 和 localStorage。--isolated 使用临时 user-data-dir,关闭时自动清理;CloakBrowser 使用与默认模式物理隔离的独立 profile。
怎样限制本地文件权限?
启动时使用一个或多个 --allowedRoots 指定可读写目录。启用后,服务解析真实路径、拒绝符号链接越界,并阻止 file:view-source:file:filesystem:file: 页面。
为什么首次打开页面后缺少部分网络请求?
项目在导航阶段保持 CDP 静默。先调用 list_network_requests 激活 collectors,再用 navigate_page(type="reload") 刷新,即可捕获更完整的请求序列。

对比同类 Agent

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

相关 Agents