js-reverse-mcp

MGJZzzz/js-reverse-mcp
1 Stars 160 次浏览 更新于 2026-08-23

JS Reverse MCP 是一个用于网页中 JavaScript 逆向工程的服务器,允许像 Claude、Cursor 和 Copilot 这样的 AI 编码助手调试和分析 JavaScript 代码。它提供了脚本分析、断点调试、函数追踪、执行控制、运行时检查、网络分析和事件监控等功能。

MCP 服务配置

复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用

{
  "mcpServers": {
    "js-reverse": {
      "args": [
        "/你的路径/js-reverse-mcp/build/src/index.js",
        "--browser-url=http://127.0.0.1:9222"
      ],
      "command": "node"
    }
  }
}

服务介绍

JS Reverse MCP

JavaScript 逆向工程 MCP 服务器,让你的 AI 编码助手(如 Claude、Cursor、Copilot)能够调试和分析网页中的 JavaScript 代码。

功能特点

  • 脚本分析: 列出所有加载的 JS 脚本,搜索代码,获取源码
  • 断点调试: 设置/移除断点,支持条件断点,支持在压缩代码中精确定位
  • 函数追踪: Hook 任意函数(包括模块内部函数),监控调用和返回值
  • 执行控制: 暂停/恢复执行,单步调试(step over/into/out)
  • 运行时检查: 在断点处求值表达式,检查作用域变量
  • 网络分析: 查看请求发起的调用栈,设置 XHR 断点
  • 事件监控: 监控 DOM 事件,检查存储数据

系统要求

本地安装

# 克隆仓库
git clone https://github.com/zhizhuodemao/js-reverse-mcp.git
cd js-reverse-mcp

# 安装依赖
npm install

# 构建项目
npm run build

MCP 客户端配置

在你的 MCP 客户端配置文件中添加:

{
  "mcpServers": {
    "js-reverse": {
      "command": "node",
      "args": ["/你的路径/js-reverse-mcp/build/src/index.js"]
    }
  }
}

Claude Code

claude mcp add js-reverse node /你的路径/js-reverse-mcp/build/src/index.js

Cursor

进入 Cursor Settings -> MCP -> New MCP Server,使用上面的配置。

VS Code Copilot

code --add-mcp '{"name":"js-reverse","command":"node","args":["/你的路径/js-reverse-mcp/build/src/index.js"]}'

工具列表

脚本分析

工具 描述
list_scripts 列出页面中所有加载的 JavaScript 脚本
get_script_source 获取脚本源码,支持行范围或字符偏移(适用于压缩文件)
find_in_script 在脚本中查找文本,返回精确的行号和列号
search_in_sources 在所有脚本中搜索字符串或正则表达式

断点管理

工具 描述
set_breakpoint 在指定 URL 和行号设置断点
set_breakpoint_on_text 通过搜索代码文本自动设置断点(适用于压缩代码)
remove_breakpoint 移除断点
list_breakpoints 列出所有活动断点

调试控制

工具 描述
get_paused_info 获取暂停状态、调用栈和作用域变量
resume 恢复执行
pause 暂停执行
step_over 单步跳过
step_into 单步进入
step_out 单步跳出
evaluate_on_callframe 在暂停的调用帧上下文中求值表达式

函数 Hook

工具 描述
hook_function Hook 全局函数或对象方法,记录调用和返回值
unhook_function 移除函数 Hook
list_hooks 列出所有活动的 Hook
trace_function 追踪任意函数调用(包括模块内部函数),使用条件断点实现

网络调试

工具 描述
get_request_initiator 获取网络请求的 JavaScript 调用栈
break_on_xhr 设置 XHR/Fetch 断点
remove_xhr_breakpoint 移除 XHR 断点

检查工具

工具 描述
inspect_object 深度检查 JavaScript 对象结构
get_storage 获取 cookies、localStorage、sessionStorage
monitor_events 监控元素或 window 上的 DOM 事件
stop_monitor 停止事件监控

页面导航

工具 描述
list_pages 列出浏览器中打开的页面
select_page 选择一个页面作为调试上下文
new_page 创建新页面并导航到 URL
navigate_page 导航当前页面

其他工具

工具 描述
take_screenshot 截取页面截图
take_snapshot 获取页面 DOM 快照
evaluate_script 在页面中执行 JavaScript
list_console_messages 获取控制台消息
list_network_requests 列出网络请求
get_network_request 获取请求详情和响应内容

使用示例

基本流程

  1. 选择页面
列出所有页面并选择要调试的页面
  1. 查找目标函数
搜索包含 "encrypt" 的代码
  1. 设置断点
在加密函数上设置断点
  1. 触发并分析
触发操作,在断点处检查参数和调用栈

Hook 加密函数

Hook fetch 函数,记录所有 API 调用的参数和返回值

追踪模块内部函数

使用 trace_function 追踪 webpack 打包的内部函数 "encryptData"

配置选项

选项 描述
--browserUrl, -u 连接到运行中的 Chrome 实例
--wsEndpoint, -w WebSocket 端点连接
--headless 无头模式运行(默认: false)
--executablePath, -e 自定义 Chrome 路径
--isolated 使用临时用户数据目录
--channel Chrome 通道: stable, canary, beta, dev
--viewport 初始视口大小,如 1280x720

示例配置

{
  "mcpServers": {
    "js-reverse": {
      "command": "node",
      "args": [
        "/你的路径/js-reverse-mcp/build/src/index.js",
        "--headless=false",
        "--isolated=true"
      ]
    }
  }
}

连接到已运行的 Chrome

  1. 启动 Chrome(需要关闭所有 Chrome 窗口后重新启动):

macOS

/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222 --user-data-dir=/tmp/chrome-debug

Windows

"C:\Program Files\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9222 --user-data-dir="%TEMP%\chrome-debug"
  1. 配置 MCP 连接:
{
  "mcpServers": {
    "js-reverse": {
      "command": "node",
      "args": [
        "/你的路径/js-reverse-mcp/build/src/index.js",
        "--browser-url=http://127.0.0.1:9222"
      ]
    }
  }
}

安全提示

此工具会将浏览器内容暴露给 MCP 客户端,允许检查、调试和修改浏览器中的任何数据。请勿在包含敏感信息的页面上使用。

许可证

Apache-2.0

相关 MCP 服务