1. Conduid
  2. Other
  3. JS Reverse MCP
MCP server · Other

JS Reverse MCP

最近给甲方单位做渗透测试,发现他们很多web站点的登录参数都做了加密,为了提高工作效率,所以我写了个js逆向mcp配合着最近新出的Qoder效果不错。

Unclaimed other
39Low

Scored 4 days ago · breakdown

About JS Reverse MCP

JS Reverse MCP is an MCP server published by jenn619 in the Other category: 最近给甲方单位做渗透测试,发现他们很多web站点的登录参数都做了加密,为了提高工作效率,所以我写了个js逆向mcp配合着最近新出的Qoder效果不错。.

The repository has 20 stars and 3 forks, with the last commit 3 months ago. Recent commit activity is the strongest signal that reported issues will get attention.

Install

From source
git clone https://github.com/jenn619/JS-reverse-mcp

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Ask AI

✦

Ask AI about JS Reverse MCP

Powered by Claude · Grounded in docs

I know everything about JS Reverse MCP. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

Static checks derived from the repository yesterday. Heuristics on the source, not an audit.

  • ✓README presentThe repository ships documentation.
  • !License declaredNo license file. Legally you have no right to use it in a product.
  • !Tests presentNo tests found. Behaviour changes may go unnoticed between versions.
  • ✓Dependencies pinnedA lockfile pins dependency versions.
  • !No dynamic code executionSource scan found eval or shell execution. Review how tool inputs reach it before granting credentials.

1 check has not been run yet.

Releases

JS-reverse-mcp_v1.0.1JS-reverse-mcp_v1.0.1

README

JS 逆向 MCP 工具 (js-reverse-mcp)

Chrome 浏览器 JS 逆向分析 MCP 工具 —— 专用于 CTF / Web 安全场景中登录框加密逻辑的动态分析与还原

建议:可以用最近新出的Qoder启动,每天200次免费调用Qwen3.7-Max,运行前可以让Qcoder自动补齐项目所需的依赖,根据你本地环境自动修改配置文件。

一、项目简介

本项目是一个基于 MCP(Model Context Protocol) 协议的 JS 逆向分析工具集,通过 Chrome DevTools Protocol(CDP)动态分析目标网页中的 JavaScript 加密逻辑,自动识别加密算法、提取密钥,并生成可用的加密/解密脚本。

核心能力:

  • 基于 Puppeteer 控制 Chrome 浏览器,动态执行目标页面 JS
  • 利用 CDP 协议拦截网络请求、获取脚本源码、Hook 函数调用
  • 内置加密算法特征库,支持 AES/DES/RSA/MD5/SHA/SM2/SM4/Base64 等
  • 自动生成 Python 和 JavaScript 的加密/解密/暴力破解脚本
  • 通过 MCP 协议暴露 31 个标准化工具接口,支持与 AI 助手集成

二、技术栈

类别 技术 说明
语言 TypeScript 5.7 + Node.js ≥18 主开发语言
协议 @modelcontextprotocol/sdk v1.29 MCP 协议 SDK
浏览器 puppeteer-core v23 Chrome 自动化控制
AST 分析 acorn + acorn-walk JS 语法树解析与遍历
加密分析 crypto-js + node-forge 加密算法验证与还原
代码美化 js-beautify 混淆 JS 代码格式化
模板引擎 mustache 脚本生成模板
数据校验 zod v3.23 MCP 消息 Schema 校验

三、项目结构

js-reverse-mcp/
├── src/                          # 源码目录
│   ├── index.ts                  # 程序入口 - 注册所有工具模块,启动 stdio 传输
│   ├── server.ts                 # MCP Server 创建与配置
│   │
│   ├── browser/
│   │   └── manager.ts            # 浏览器单例管理器 - Puppeteer 生命周期管理
│   │
│   ├── tools/                    # MCP 工具模块(共 6 个模块,31 个工具)
│   │   ├── navigation.ts         # 浏览器导航工具(5 个工具)
│   │   ├── network.ts            # 网络拦截工具(6 个工具)
│   │   ├── source-analysis.ts    # JS 源码分析工具(6 个工具)
│   │   ├── runtime.ts            # 运行时分析工具(5 个工具)
│   │   ├── crypto-detect.ts      # 加密检测工具(5 个工具)
│   │   └── script-gen.ts         # 脚本生成工具(4 个工具)
│   │
│   ├── analysis/
│   │   └── crypto-patterns.ts    # 加密算法特征库 - 静态模式匹配 + 密文格式识别
│   │
│   ├── generators/
│   │   ├── python-template.ts    # Python 脚本模板生成器(AES/DES/RSA/MD5/自定义)
│   │   └── javascript-template.ts # JavaScript 脚本模板生成器
│   │
│   ├── storage/
│   │   └── request-store.ts      # 请求数据存储 - 内存 + 文件双层持久化
│   │
│   └── utils/
│       └── logger.ts             # 日志工具(所有日志走 stderr,不破坏 MCP stdio)
│
├── build/                        # 编译输出目录(tsc 生成)
├── output/                       # 生成的脚本输出目录
├── mcp-config.json               # MCP 配置文件示例
├── package.json                  # 项目依赖与脚本
└── tsconfig.json                 # TypeScript 编译配置

四、工具清单

4.1 浏览器导航工具(navigation.ts)— 5 个

工具名 功能 关键参数
browser_launch 启动 Chrome 浏览器实例 headless, chromePath, proxy, wsEndpoint
browser_close 关闭浏览器,释放资源 无
page_navigate 导航到指定 URL url, waitUntil
page_screenshot 截取页面截图(base64 返回) selector, fullPage
page_get_content 获取页面 HTML 或元素内容 selector

4.2 网络拦截工具(network.ts)— 6 个

工具名 功能 关键参数
network_enable_intercept 开启网络请求拦截 urlPatterns(URL 过滤模式列表)
network_disable_intercept 关闭网络拦截 无
network_get_requests 获取已拦截的请求列表摘要 method, urlPattern, loginOnly
network_get_request_detail 获取单个请求完整详情 requestId
network_find_login_request 智能定位登录请求 keywords
network_compare_requests 对比多次请求参数差异 requestIds(至少 2 个)

4.3 JS 源码分析工具(source-analysis.ts)— 6 个

工具名 功能 关键参数
js_get_all_scripts 获取页面所有 JS 脚本列表 无
js_get_script_source 获取脚本源码(自动美化) scriptId, beautify, maxLength
js_search_in_scripts 在脚本中搜索关键词/正则 keyword, isRegex, contextLines
js_get_function_body 提取指定函数的完整实现 functionName, scriptId
js_trace_call_chain 追踪函数调用链 functionName, depth
js_get_encryption_context 获取加密函数及其依赖上下文 functionName

4.4 运行时分析工具(runtime.ts)— 5 个

工具名 功能 关键参数
runtime_evaluate 在页面中执行 JS 代码 expression, awaitPromise
runtime_call_function 调用页面全局函数 functionName, args
runtime_get_global_vars 获取加密相关全局变量 pattern(正则过滤)
runtime_hook_function Hook 函数,记录调用参数和返回值 functionName(支持链式如 CryptoJS.AES.encrypt)
runtime_get_hook_logs 获取 Hook 调用日志 functionName, clear

4.5 加密检测工具(crypto-detect.ts)— 5 个

工具名 功能 关键参数
crypto_auto_detect 自动扫描检测加密算法 无
crypto_analyze_param 分析参数加密方式 paramName, sampleValues
crypto_identify_library 识别页面使用的加密库 无
crypto_extract_key 提取密钥/IV/盐值 algorithm
crypto_verify_algorithm 本地验证加密算法是否正确 algorithm, plaintext, expected, key, iv

4.6 脚本生成工具(script-gen.ts)— 4 个

工具名 功能 关键参数
generate_decrypt_script 生成解密脚本(Python/JS) language, algorithm, key, iv, publicKey 等
generate_encrypt_script 生成加密脚本 同上
generate_brute_script 生成暴力破解脚本 同上 + loginUrl, paramName
script_test_run 测试运行 JS 脚本 code, testInput

支持的算法类型: AES-CBC、AES-ECB、DES、3DES、RSA、MD5、SHA256、Base64、Custom


五、环境要求与安装

5.1 环境要求

  • Node.js ≥ 18.0.0
  • Google Chrome 浏览器(需安装在本机)

5.2 安装步骤

# 1. 克隆项目
git clone <repo-url>
cd js-reverse-mcp

# 2. 安装依赖
npm install

# 3. 编译 TypeScript
npm run build (注意:启动项目前检查下所需的依赖是否齐全)

5.3 环境变量

变量名 说明 默认值
CHROME_PATH Chrome 可执行文件路径 C:\Users\fangz\AppData\Local\Google\Chrome\Application\chrome.exe
OUTPUT_DIR 脚本输出目录 ./output
DEBUG 设为任意值开启调试日志 未设置(关闭)

六、使用方法

6.1 启动命令

# 正式运行(需先 build)
npm start
# 等价于: node build/index.js

# 开发调试(直接运行 TS 源码,无需 build)
npm run dev

# 构建项目
npm run build

# 使用 MCP Inspector 调试
npm run inspector

6.2 配置 MCP 客户端

在 AI 客户端(如 Cursor、Claude Desktop 等)的 MCP 配置文件中添加:

{
  "mcpServers": {
    "js-reverse": {
      "command": "node",
      "args": ["e:\\Qwen\\build\\index.js"],
      "env": {
        "CHROME_PATH": "C:\\Users\\fangz\\AppData\\Local\\Google\\Chrome\\Application\\chrome.exe",
        "OUTPUT_DIR": "e:\\Qwen\\output"
      }
    }
  }
}

配置完成后,AI 助手即可通过自然语言调用所有 31 个逆向工具。


七、实战逆向流程

以下是使用本工具对一个典型登录页面进行 JS 逆向的完整流程:

第 1 步:启动浏览器并导航

"帮我启动 Chrome 并导航到目标登录页"

调用 browser_launch → page_navigate → page_screenshot

第 2 步:开启网络拦截

"开启网络拦截,捕获所有请求"

调用 network_enable_intercept,然后在页面上手动执行一次登录操作。

第 3 步:定位登录请求

"帮我找到加密的登录请求"

调用 network_find_login_request,自动识别包含密码/加密参数的 POST 请求。

第 4 步:自动检测加密算法

"帮我检测页面使用了什么加密"

调用 crypto_auto_detect,扫描所有 JS 代码中的加密特征模式。

第 5 步:搜索加密代码

"在 JS 中搜索 encrypt|CryptoJS|password"

调用 js_search_in_scripts,定位加密函数的具体代码位置。

第 6 步:提取密钥和参数

"帮我提取 AES 的 key 和 iv"

调用 crypto_extract_key,从源码和 Runtime 中提取硬编码密钥。

第 7 步:验证加密算法

"用 AES-ECB 模式,key 为 xxx,验证加密结果"

调用 crypto_verify_algorithm,本地计算对比密文是否匹配。

第 8 步:生成脚本

"生成 Python 的 AES-ECB 解密脚本"

调用 generate_decrypt_script,自动保存到 output/ 目录。


八、实战案例

以下是对 https://XXXXXXX.edu.cn/admin/#/login 的逆向分析结果:

抓包结果

POST /api/venue_book/login/AdminLogin
{"user":"testuser","password":"y8d/dgERxCaiTGAod1+RiQ=="}

逆向定位的加密代码(app.js)

// 硬编码密钥
const M = CryptoJS.enc.Utf8.parse("0123456789ABCDEF");

// 加密函数
function j(e) {
  var t = CryptoJS.enc.Utf8.parse(JSON.stringify(e));
  var n = CryptoJS.AES.encrypt(t, M, {
    mode: CryptoJS.mode.ECB,
    padding: CryptoJS.pad.Pkcs7
  });
  return n.toString();
}

// 登录调用: c = j(password)

分析结论

项目 值
算法 AES-128-ECB
密钥 0123456789ABCDEF(硬编码 16 字节)
填充 PKCS7
编码 Base64
安全弱点 ECB 模式无 IV、密钥硬编码在前端

九、核心模块说明

9.1 浏览器管理器(browser/manager.ts)

单例模式管理 Puppeteer 浏览器生命周期:

  • 支持启动新实例或连接已有 Chrome(通过 wsEndpoint)
  • 自动创建 CDP(Chrome DevTools Protocol)会话
  • 默认禁用沙箱和跨域限制,方便逆向调试

9.2 请求存储(storage/request-store.ts)

内存 + 文件双层持久化:

  • 自动检测登录请求(基于 URL 关键词 + 请求体关键词)
  • 自动识别加密参数(Base64/Hex 特征检测)
  • 请求记录持久化到 output/.session/requests.json

9.3 加密特征库(analysis/crypto-patterns.ts)

内置 20+ 种加密模式匹配规则:

  • 对称加密: AES(CBC/ECB/PKCS7/Zero/NoPadding)、DES、3DES
  • 非对称加密: JSEncrypt RSA、RSAKey、node-forge RSA
  • 哈希算法: MD5、SHA1、SHA256、HMAC-SHA256
  • 编码格式: Base64、Hex
  • 国密算法: SM2、SM3、SM4
  • 密文格式识别器: 根据长度和编码格式推断可能算法
  • 密钥长度推断: 8→DES、16→AES-128/SM4、24→AES-192/3DES、32→AES-256

9.4 脚本生成器(generators/)

支持生成三种类型的脚本:

  • 加密/解密脚本: Python(pycryptodome)和 JavaScript(crypto-js)
  • 暴力破解脚本: 包含加密函数 + 自动化登录请求
  • 支持 AES、DES、3DES、RSA、MD5、自定义算法

9.5 日志工具(utils/logger.ts)

所有日志输出到 stderr(console.error),绝不使用 console.log,避免破坏 MCP stdio 协议通信。


十、完整依赖清单

10.1 直接依赖(dependencies)

包名 版本 说明
@modelcontextprotocol/sdk 1.29.0 MCP 协议 SDK(含 Hono/Express 服务端支持)
zod 3.25.76 TypeScript-first Schema 声明与校验库
puppeteer-core 23.11.1 Chrome 浏览器自动化控制(高优先级 CDP API)
js-beautify 1.15.4 JS/HTML/CSS 代码美化格式化
acorn 8.16.0 ECMAScript 语法解析器
acorn-walk 8.3.5 ECMAScript AST 遍历器
crypto-js 4.2.0 加密算法库(AES/DES/MD5/SHA/RSA 等)
node-forge 1.4.0 JS 加密实现(TLS/X.509/RSA/AES 等)
mustache 4.2.0 无逻辑 Mustache 模板引擎

10.2 开发依赖(devDependencies)

包名 版本 说明
typescript 5.9.3 TypeScript 编译器
tsx 4.22.4 TypeScript 直接执行工具(基于 esbuild)
@types/node 22.19.20 Node.js 类型定义
@types/crypto-js 4.2.2 crypto-js 类型定义
@types/js-beautify 1.14.3 js-beautify 类型定义
@types/node-forge 1.3.14 node-forge 类型定义
@types/mustache 4.2.6 mustache 类型定义
@types/yauzl 2.10.3 yauzl 类型定义

10.3 间接依赖(传递依赖)

MCP / 网络通信相关

包名 版本 说明
express 5.2.1 HTTP Web 框架(MCP SDK 内部使用)
hono 4.12.25 轻量 Web 框架(MCP SDK 可选传输)
@hono/node-server 1.19.14 Hono Node.js 适配器
ws 8.21.0 WebSocket 客户端/服务端
eventsource 2.0.2 SSE(Server-Sent Events)客户端
eventsource-parser 3.0.2 SSE 协议解析器
zod-to-json-schema 3.25.2 Zod Schema 转 JSON Schema
jose 6.2.3 JWT/JWS/JWE 实现(OAuth 支持)
pkce-challenge 5.0.1 PKCE 挑战对生成/验证
cors 2.8.5 HTTP CORS 中间件
body-parser 2.2.2 HTTP 请求体解析中间件
router 2.2.0 简易中间件路由
express-rate-limit 8.2.1 Express 请求限速

Puppeteer / 浏览器自动化相关

包名 版本 说明
chromium-bidi 0.11.0 WebDriver BiDi 协议实现(Puppeteer 内部)
@puppeteer/browsers 2.6.1 浏览器下载与启动工具
devtools-protocol 0.0.1452057 Chrome DevTools Protocol 类型定义
basic-ftp 5.3.1 FTP 客户端(浏览器下载)
extract-zip 2.0.1 ZIP 解压工具
yauzl 2.10.0 ZIP 文件解析库
progress 2.0.3 下载进度条
mitt 3.0.1 轻量事件发射器
typed-query-selector 2.12.2 类型化 querySelector

代理 / 网络相关

包名 版本 说明
proxy-agent 6.5.0 代理协议映射 Agent
http-proxy-agent 7.0.2 HTTP 代理 Agent
https-proxy-agent 7.0.6 HTTPS 代理 Agent
socks-proxy-agent 8.0.5 SOCKS 代理 Agent
socks 2.8.9 SOCKS v4/v4a/v5 客户端
pac-proxy-agent 7.2.0 PAC 文件代理 Agent
pac-resolver 7.0.1 PAC 文件解析器
proxy-from-env 1.1.0 从环境变量获取代理配置
netmask 2.1.1 IP 网段解析
ip-address 10.2.0 IPv4/IPv6 地址解析
smart-buffer 4.2.0 智能 Buffer 封装
agent-base 7.1.4 HTTP Agent 基类
data-uri-to-buffer 6.0.2 Data URI 转 Buffer
get-uri 6.0.5 URI 转可读流

构建工具

包名 版本 说明
esbuild 0.28.0 极速 JS 打包器(tsx 内部使用)
@esbuild/win32-x64 0.28.0 esbuild Windows 64 位二进制

工具函数 / 通用库

包名 版本 说明
debug 4.4.1 调试日志工具
ms 2.1.3 毫秒转换工具
semver 7.8.4 语义化版本解析
glob 10.4.5 Glob 模式匹配
minimatch 9.0.9 Glob 匹配器
minipass 7.1.3 最小 PassThrough 流实现
lru-cache 10.4.3 LRU 缓存
signal-exit 4.1.0 进程退出信号处理
once 1.4.0 函数单次执行
pump 3.0.4 管道流连接
wrappy 1.0.2 回调包装工具
which 2.0.2 可执行文件查找(类 Unix which)
path-key 3.1.1 跨平台 PATH 键获取
cross-spawn 7.0.6 跨平台 spawn
shebang-command 2.0.0 shebang 命令提取
shebang-regex 3.0.0 shebang 正则匹配
isexe 2.0.0 可执行文件检测
foreground-child 3.3.1 前台子进程管理
package-json-from-dist 1.0.1 从 dist 加载 package.json
path-scurry 1.11.1 高效路径遍历
jackspeak 3.4.3 严格参数解析器
require-from-string 2.0.2 从字符串加载模块
require-directory 2.1.1 递归加载目录模块

HTTP / Web 基础

包名 版本 说明
accepts 2.0.0 HTTP 内容协商
negotiator 1.0.0 HTTP 内容协商底层
content-type 1.0.5 Content-Type 解析
content-disposition 1.1.0 Content-Disposition 解析
type-is 2.1.0 请求类型推断
media-typer 1.1.0 RFC 6838 媒体类型解析
mime-types 3.0.2 MIME 类型工具
mime-db 1.54.0 MIME 类型数据库
cookie 0.7.2 Cookie 解析与序列化
cookie-signature 1.2.2 Cookie 签名
etag 1.8.1 ETag 生成
fresh 2.0.0 HTTP 缓存新鲜度检查
vary 1.1.2 Vary 头操作
send 1.2.1 静态文件发送
serve-static 2.2.1 静态文件服务
range-parser 1.2.1 Range 头解析
parseurl 1.3.3 URL 解析(带缓存)
encodeurl 2.0.0 URL 编码
escape-html 1.0.3 HTML 转义
on-finished 2.4.1 请求完成回调
ee-first 1.1.1 事件优先触发
unpipe 1.0.0 解除流管道
raw-body 3.0.2 原始请求体获取
bytes 3.1.2 字节字符串转换
statuses 2.0.2 HTTP 状态码工具
http-errors 2.0.1 HTTP 错误对象
toidentifier 1.0.1 字符串转 JS 标识符
depd 2.0.0 废弃警告工具
proxy-addr 2.0.7 代理地址判定
forwarded 0.2.0 Forwarded 头解析
ipaddr.js 1.9.1 IPv4/IPv6 操作库
merge-descriptors 2.0.0 属性描述符合并
object-inspect 1.13.4 对象字符串表示
path-to-regexp 8.4.2 Express 风格路径转正则
qs 6.15.2 查询字符串解析(支持嵌套)
iconv-lite 0.7.2 字符编码转换
safer-buffer 2.1.2 安全 Buffer polyfill

JS 解析 / AST 相关

包名 版本 说明
esprima 4.0.1 ECMAScript 解析器
escodegen 2.1.0 ECMAScript 代码生成
estraverse 5.3.0 ECMAScript AST 遍历
esutils 2.0.3 ECMAScript 工具函数
ast-types 0.13.4 Mozilla JS Parser API 实现
source-map 0.6.1 Source Map 生成与消费

加密 / 编码相关

包名 版本 说明
base64-js 1.5.1 纯 JS Base64 编解码
ieee754 1.2.1 IEEE754 浮点数读写
buffer 5.7.1 浏览器 Buffer API
buffer-crc32 0.2.13 CRC32 算法

数据校验 / Schema

包名 版本 说明
ajv 8.20.0 JSON Schema 校验器
ajv-formats 3.0.1 Ajv 格式校验扩展
json-schema-traverse 1.0.0 JSON Schema 遍历
json-schema-typed 8.0.2 JSON Schema TS 定义
fast-deep-equal 3.1.3 深度相等比较
fast-uri 3.1.0 快速 URI 解析

流处理 / 解压

包名 版本 说明
streamx 2.27.0 改进的 Node.js 流实现
tar-stream 3.2.0 流式 tar 解析/生成
tar-fs 3.1.2 tar 文件系统绑定
teex 1.0.1 可读流多路复用
text-decoder 1.2.7 流式文本解码器
b4a 1.8.1 Buffer/TypedArray 桥接
unbzip2-stream 1.4.3 bzip2 流式解压
end-of-stream 1.4.5 流结束检测
get-stream 5.2.0 流转换为字符串/Buffer
bare-stream 2.13.1 Bare 运行时流实现
through 2.3.8 简易流构造
fast-fifo 1.3.2 快速 FIFO 队列

终端 / CLI 相关

包名 版本 说明
yargs 17.7.2 命令行参数解析
yargs-parser 21.1.1 yargs 参数解析器
y18n 5.0.8 国际化库(yargs 使用)
cliui 8.0.1 CLI 多列输出
wrap-ansi 7.0.0 / 8.1.0 ANSI 终端文本换行
ansi-regex 6.2.2 ANSI 转义码正则
ansi-styles 6.2.3 ANSI 终端样式
color-convert 2.0.1 颜色格式转换
color-name 1.1.4 颜色名称映射
string-width 4.2.3 / 5.1.2 字符串显示宽度
strip-ansi 6.0.1 / 7.2.0 去除 ANSI 转义码
is-fullwidth-code-point 3.0.0 全角字符检测
eastasianwidth 0.2.0 东亚字符宽度
emoji-regex 10.4.0 Emoji 正则

配置 / INI / EditorConfig

包名 版本 说明
commander 10.0.1 Node.js CLI 命令框架
editorconfig 1.0.4 EditorConfig 解析
@one-ini/wasm 0.1.1 INI 文件 WASM 解析
ini 1.3.8 INI 编解码
config-chain 1.1.13 配置链管理
proto-list 1.2.4 原型链工具
nopt 7.2.1 Node 选项解析
abbrev 2.0.0 字符串缩写生成

对象 / 函数工具

包名 版本 说明
has-symbols 1.1.0 Symbol 支持检测
hasown 2.0.4 安全 hasOwnProperty
gopd 1.2.0 getOwnPropertyDescriptor
call-bind-apply-helpers 1.0.2 call/apply 辅助
call-bound 1.0.4 安全绑定调用
es-define-property 1.0.1 Object.defineProperty 安全版
es-errors 1.3.0 ES 错误类型
es-object-atoms 1.1.1 ES 对象原子操作
math-intrinsics 1.1.0 Math 内部函数
side-channel 1.1.1 侧信道存储(WeakMap)
side-channel-map 1.0.1 侧信道 Map 实现
side-channel-list 1.0.1 侧信道链表实现
side-channel-weakmap 1.0.2 侧信道 WeakMap 实现
dunder-proto 1.0.1 __proto__ 安全访问
get-intrinsic 1.3.0 JS 内置对象获取
get-proto 1.0.1 原型获取
object-assign 4.1.1 Object.assign polyfill
setprototypeof 1.2.0 setPrototypeOf polyfill
inherits 2.0.4 继承工具
function-bind 1.1.2 Function.prototype.bind

Bare 运行时(Puppeteer 可选依赖)

包名 版本 说明
bare-events 2.9.1 Bare 事件发射器
bare-fs 4.7.2 Bare 文件系统操作
bare-os 3.9.1 Bare 操作系统工具
bare-path 3.0.1 Bare 路径操作
bare-url 2.4.5 Bare URL 实现
events-universal 1.0.1 通用事件模块

其他

包名 版本 说明
balanced-match 1.0.2 平衡括号匹配
brace-expansion 2.1.1 大括号展开(sh/bash 风格)
tslib 2.8.1 TypeScript 运行时辅助库
undici-types 6.21.0 Undici 类型定义
js-cookie 3.0.8 轻量 Cookie 操作库
@tootallnate/quickjs-emscripten 0.23.0 QuickJS WASM 绑定
@isaacs/cliui 8.0.2 CLI 多列输出(isaacs 版)
@pkgjs/parseargs 0.11.0 util.parseArgs polyfill

十一、配置文件说明

mcp-config.json

{
  "mcpServers": {
    "js-reverse": {
      "command": "node",
      "args": ["e:\\Qwen\\build\\index.js"],
      "env": {
        "CHROME_PATH": "C:\\Users\\fangz\\AppData\\Local\\Google\\Chrome\\Application\\chrome.exe",
        "OUTPUT_DIR": "e:\\Qwen\\output"
      }
    }
  }
}

tsconfig.json

{
  "compilerOptions": {
    "target": "ES2022",
    "module": "Node16",
    "moduleResolution": "Node16",
    "outDir": "./build",
    "rootDir": "./src",
    "strict": true,
    "esModuleInterop": true,
    "declaration": true,
    "sourceMap": true
  }
}

十二、注意事项

  1. 首次使用必须调用 browser_launch:所有需要浏览器操作的工具都依赖浏览器实例,必须先启动
  2. Chrome 路径配置:确保 CHROME_PATH 环境变量指向正确的 Chrome 安装路径
  3. 网络拦截顺序:需先调用 network_enable_intercept,再在页面上进行操作
  4. 脚本源码缓存:js_get_all_scripts 会建立脚本缓存,后续的分析/搜索工具依赖此缓存
  5. 日志走 stderr:所有调试日志通过 console.error 输出,不会干扰 MCP stdio 通信
  6. 输出目录:生成的脚本和会话数据保存在 OUTPUT_DIR 指定的目录中

十三、许可证

本项目仅供学习和安全研究使用,请遵守相关法律法规。

十三、测试用例

README fetched from the repository yesterday. The original is authoritative.

Questions

About JS Reverse MCP

How do I install JS Reverse MCP?

No package has been published for this server, so install it from source: clone the repository and follow its README.

Is JS Reverse MCP safe to use with an AI agent?

Its trust score is 39 out of 100 (low). It passes 2 of the 5 static security checks run so far; the failures are listed above. It has no ConduID identity yet, so agent calls to it are not receipted.

Is JS Reverse MCP still maintained?

Yes — the last commit was 3 months ago. The repository has 20 stars and 3 forks.