MCP Hub
Back to servers

JS Reverse MCP

JS Reverse MCP is a comprehensive toolset for reverse engineering and debugging JavaScript in real-time. It enables AI coding assistants to conduct runtime inspection, function hooking, and breakpoint debugging directly within web browsers.

Stars
67
Forks
6
Tools
36
Updated
Dec 23, 2025
Validated
Jan 20, 2026

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_functionHook 全局函数或对象方法,记录调用和返回值
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, -wWebSocket 端点连接
--headless无头模式运行(默认: false)
--executablePath, -e自定义 Chrome 路径
--isolated使用临时用户数据目录
--channelChrome 通道: 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

Reviews

No reviews yet

Sign in to write a review