mcpField
J
jshookmcp

jshookmcp

本地服务
vmoranv.github.io安全2.1k3 天前更新

关于 jshookmcp

jshookmcp 是面向 AI Agent 的 MCP 服务,用于 JavaScript 及更广泛的前端逆向分析。它通过可搜索的工具配置、会话恢复及浏览器、网络、WASM 和原生分析能力,让大型工具目录更易管理。

主要功能

  1. 01搜索优先的工具配置
  2. 02基于 CDP 的浏览器自动化
  3. 03网络与 WebSocket 拦截
  4. 04JavaScript 和 WASM 分析
  5. 05进程与二进制插桩
  6. 06可扩展的插件与工作流

适用场景

  1. 01分析并反混淆压缩后的 JavaScript
  2. 02捕获并重放 OAuth 网络流程
  3. 03反汇编并插桩 WASM 例程
  4. 04筛查 APK 并检查运行中的进程

MCP 相关

通过 stdio 和 Streamable HTTP 向 MCP 客户端提供逆向分析工具。搜索、工作流和完整配置用于控制启用的工具范围;HTTP 会话可在重新连接后恢复状态。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"vmoranv-jshookmcp": {
"command": "npx",
"args": [
"-y",
"@jshookmcp/jshook"
]
}
}
}
启动命令npx -y @jshookmcp/jshook

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@jshookmcp/jshook0.4.2

工具

8

收录的工具列表 · 更新于 2 周前

参数类型必填说明
querystring是调用前,请将意图提炼为 2–5 个关键概念:要执行什么操作、针对什么目标、属于哪个功能域。只传入提炼后的关键词,不要传入原始用户请求。
top_knumber否要返回的最大结果数(默认值:10,最大值:30)
auto_activateboolean否自动激活找到的工具,使其可立即调用。设为 false 则仅搜索而不激活(默认值:true)

详细介绍

@jshookmcp/jshook

@jshookmcp/jshook

License: AGPLv3 Node.js 22.22.2+ TypeScript MCP pnpm

面向 AI Agent 的搜索优先、具备配置档案感知能力的逆向工程工作区。

挂钩页面、捕获网络流量、反混淆打包文件、反汇编 WASM、为进程插桩——并由一个 MCP 服务将整个攻击面尽在掌握,同时避免模型被各种架构定义淹没。

English · 中文

Stars Forks Latest Release License

Node.js 22.22.2+ TypeScript strict MCP current

有何不同 · 功能概览 · 使用场景 · 亮点 · 传输方式 · 工具注册表 · 架构 · 构建

文档 · 快速入门 · 配置 · 工具参考


## jshook 的不同之处

大多数用于 JS 分析的 MCP 服务只提供少数手工编写的工具,或封装单一浏览器引擎。jshook 更像是一个前端逆向工程操作系统——36 个自动发现的域、一个优先搜索的元工具(可控制 Token 成本),以及能够在页面损坏和会话中断后恢复运行状态的机制:

  • 优先搜索,感知配置。 search 配置加载约 3K Token 的工具元数据;full 配置会公开全部 735 个工具,约占 109K Token(测量于 2026-10-10——该数值会随工具数量变化,因此目录增长时请重新测量)。随着任务推进,Agent 会在这些配置间切换——从 search 到 workflow 再到 full——而不是从第一轮开始就被各种架构定义淹没。
  • 运行状态恢复与会话隔离。 可流式传输的 HTTP 会话会在重新连接后恢复已激活的域、浏览器连接状态和覆盖率状态;每个客户端的浏览器端状态彼此隔离,因此两个 Agent 不会互相干扰对方的 CDP 会话。
  • 全栈浏览器自动化。 通过 CDP 使用 Chromium 和 Camoufox 并具备反检测能力,提供显式输入的 CAPTCHA 求解器(不内置页面/功能探测)、按需生成的自签名 HTTPS 拦截 CA,以及 HTTP/2 帧构建。
  • 真正的逆向工程,而非字符串搜索。 通过 wabt 进行 WASM 反汇编(wasm2wat / wasm-decompile / wasm-objdump)、Frida/Ghidra/IDA 桥接、本机 FFI 扫描、硬件断点、PE 内省、GraphQL/Burp Suite 代理桥接,以及 AST 转换——而不是把一次正则调用包装成工具。
  • 动态扩展能力。 热重载插件、声明式工作流和自动发现功能,让服务无需重新部署也能持续扩展。

能力概览

快速了解其中包含的内容。每一行都链接到下方的详细能力概览。

领域亮点
工具配置search(约 3K 个 token,BM25 + 混合向量排序)· workflow(组合脚本)· full(全部 735 个工具)
浏览器自动化Chromium 和 Camoufox · 通过 CDP 附加到现有目标 · 反检测预设 · 需明确输入的 CAPTCHA 求解器 · 弹窗、下载、权限和协议拦截器
网络拦截HTTP/1.1 + HTTP/2 帧构建 · 自动生成 CA 的 MITM 代理 · WebSocket 捕获 · GraphQL 内省辅助工具 · Burp Suite 桥接
JS Hook 与分析LLM 驱动的反混淆 · 加密例程检测 · AST 理解 · 源映射重建 · 脚本/脚本片段提取与重放
WASM 逆向工程wabt 反汇编 / C 转译(wasm2wat / wasm-decompile / wasm-objdump / wasm2c)· Binaryen wasm-opt · 纯 TS 区段解析器 · 导入/导出列表 · 按区段分组提取字符串并恢复名称区段 · 函数级二进制差异比对 · 混淆检测 · 函数级和基本块级插桩
进程与内存取证原生 FFI 扫描 · 交叉引用图 · 硬件断点 · PE 内省 · 实时进程附加 · 带内存区域保护的内存读写
二进制插桩Frida 桥接 · Ghidra 和 IDA 桥接 · 系统调用 Hook · TLS keylog 和会话工具 · Mojo IPC 分析
Android 和 APK 分析APK 静态初筛 · 清单转储与查询 · apktool 解码 / 构建 · jadx 反编译与代码搜索 · DEX 扫描 · 原生库列表 · APK 签名 · unidbg 仿真 · 运行时 DEX 转储
原生运行时用于外来架构样本的原生模拟器 · 平台内省 · Mojo IPC · Dart Inspector · 用于设备端流量的 ADB 桥接
编码与转换URL/Base64/Hex/JWT/Protobuf 编码器 · AST 转换 · 流式解码管道
协作支持进度显示、取消和异步模式的后台任务队列 · 多 Agent 协作 · 覆盖率报告
Schema 优先的元工具describe_tool · 带参数验证的 call_tool · coverage_report · search_tools
可插拔扩展注册表热重载插件 · 声明式工作流 · 自动发现领域

使用场景

场景操作涉及的领域
快速浏览缩小后的代码包search_tools → deobfuscate → search_in_scripts → understand_codecore
逆向分析 CAPTCHA 挑战驱动 Camoufox 页面 → 截图 → 通过明确输入求解 → 重放browser、canvas
捕获并重放 OAuth 流程proxy_start(自动生成 CA)→ network_get_requests → graphql_introspect → graphql_replayproxy、network、graphql
逆向分析 WASM 加密例程wasm_dump → wasm_disassemble → generate_hooks → memory_breakpointwasm、binary-instrument、memory
初筛可疑 APKapk_static_triage → apk_manifest_dump → jadx_decompile → dex_scan_filebinary-instrument
恢复意外中断的浏览器会话重新连接 Streamable HTTP → 恢复已激活的领域和浏览器状态browser、coordination
审计 Node 进程中的凭据process_list → memory_scan_filtered → binary_strings_extractprocess、memory、binary-instrument
构建自定义工作流list_extension_workflows → run_extension_workflowworkflow、extension-registry
Hook 实时进程中的函数frida_spawn → frida_attach_interceptor → frida_run_script → frida_enumerate_functionsbinary-instrument

快速开始

无需全局安装——添加到 MCP 客户端配置即可使用。

Claude Desktop / Cursor(claude_desktop_config.json):

{
  "mcpServers": {
    "jshook": {
      "command": "npx",
      "args": ["-y", "@jshookmcp/jshook@latest"],
      "env": {
        "MCP_TOOL_PROFILE": "search",
        "npm_config_omit": "optional"
      }
    }
  }
}

(Windows:如果找不到 npx,请使用 npx.cmd 的绝对路径。)

此轻量配置会跳过可选的 ONNX、Z3、Binaryen、Camoufox 和 Playwright 软件包。需要这些完整配置文件的运行时组件时,请移除 npm_config_omit。

多个 Agent 共享一个守护进程

默认的 stdio 配置会为每个 MCP 主机启动一个完整的 jshook 进程。若要共享嵌入模型、浏览器运行时和缓存,请启动一个本地 Streamable HTTP 守护进程:

pnpm build
pnpm daemon

所有传输默认都启用向量搜索——使用轻量级静态模型,其目录嵌入会持久化到磁盘,按需延迟加载,并在空闲时释放。词法搜索足够时,设置 SEARCH_VECTOR_ENABLED=false。

然后使用 HTTP/URL 服务配置,将每个 MCP 客户端指向 http://127.0.0.1:3000/mcp。每个客户端都会获得独立的 MCP 会话和响应路由,而重量级运行时资源则留在同一个进程中。请保留默认的环回绑定;若要将端点暴露给 localhost 以外的网络,请先设置 MCP_AUTH_TOKEN。

根据任务需要升级配置文件
{
  "env": {
    "MCP_TOOL_PROFILE": "search"     // start here, ~3K tokens of metadata
  }
}

开始串联复合脚本后,将 MCP_TOOL_PROFILE 切换为 workflow;需要所有工具时,则切换为 full。可随时通过 coverage_report 查看当前启用的工具集。


亮点

  • 配置文件阶梯。 从 search(约 3K 个 token 的元数据)开始;串联复合脚本时升级到 workflow;只有确实需要所有工具时才升级到 full。可随时通过 coverage_report 查看当前启用的工具。
  • 元工具。 describe_tool 返回 JSON Schema;call_tool 会在调用前验证参数;每个工具都带有 readOnlyHint / destructiveHint / idempotentHint / openWorldHint。
  • 浏览器自动化。 通过 CDP 使用 Chromium 和 Camoufox、连接到现有目标、反检测预设、弹窗/下载/权限拦截器、显式输入的 CAPTCHA 求解器、在三个文档阶段注入 JS/CSS,以及跨重新连接持久化覆盖率。
  • 网络拦截。 自动生成的 HTTPS 拦截 CA、HTTP/1.1 + HTTP/2 帧构建、WebSocket 捕获、GraphQL 助手、Burp Suite 桥接——全部集成在同一 MCP 工具界面中。
  • 逆向工程。 wabt WASM 反汇编(wasm2wat / wasm-decompile / wasm-objdump)和 Binaryen wasm-opt、Frida/Ghidra/IDA 桥接、硬件断点、原生 FFI 扫描、PE 内省、系统调用挂钩、AST 转换、源映射重建。
  • 会话恢复。 Streamable HTTP 传输会在重新连接后恢复已激活的域、浏览器连接状态和覆盖率状态;浏览器端状态按客户端隔离。
  • 插件和工作流。 放入一个目录,即可获得一个域。编写 YAML 流水线,即可将其作为一个工具运行。注册表会自动发现插件。

传输与部署

该服务开箱即支持两种传输方式。

传输方式适用场景说明
stdioClaude Desktop、Cursor 及其他单主机客户端的默认方式每个 MCP 主机运行一个完整进程;建议使用轻量配置文件
Streamable HTTP多个 Agent 共享嵌入模型、浏览器运行时和缓存默认绑定到环回地址;若要对外暴露,请先设置 MCP_AUTH_TOKEN

两种传输方式提供相同的工具界面。coverage_report 会显示每个会话中已激活的域——长时间运行的会话会在重新连接后恢复浏览器连接状态、覆盖率状态和工具激活状态。

生产环境部署请参阅安全与生产指南。


近期运行时说明

  • HTTP 传输现在可多路复用彼此独立的 MCP 会话,并在重新连接后恢复运行时状态。
  • proxy_start 会在需要时自动生成本地 HTTPS 拦截 CA。
  • 浏览器 CAPTCHA 求解现在由显式输入驱动:按需传入 taskKind、siteKey、imageBase64、callbackName 和 responseSelector。不会使用内置的小组件/页面特征探测。

注册表快照

以下内置功能由运行时注册表生成,并在 CI 中检查。

  • 软件包版本:0.4.2
  • 内置工具:735
  • 领域:adb-bridge、binary-instrument、browser、canvas、coordination、core、cross-domain、dart-inspector、debugger、encoding、exploit-dev、extension-registry、graphql、instrumentation、maintenance、memory、mojo-ipc、native-bridge、native-emulator、network、platform、process、protocol-analysis、proxy、session、sourcemap、streaming、syscall-hook、tasks、tls-inspector、trace、transform、v8-inspector、wasm、webgpu、workflow
  • 注意:此快照由运行时注册表生成;请勿手动修改计数。

查看完整工具参考 ↗


架构

  • 运行时注册表 — 通过 manifest.ts 自动发现领域;只需创建一个文件即可添加领域。
  • 延迟初始化 — 处理程序在首次调用时实例化,而非启动时实例化。
  • BM25 + 向量搜索 — search_tools 元工具采用混合排序和自适应权重。
  • MCP ToolAnnotations — 每个工具都带有 readOnlyHint / destructiveHint / idempotentHint / openWorldHint。
  • 配置档位 — search(约 3K 个令牌)→ workflow(组合脚本)→ full(全部 735 个工具)。
  • 传输对称性 — stdio 和 Streamable HTTP 提供相同的功能;会话在各客户端之间相互隔离。

有关权威说明,请参阅架构指南和配置参考。


从源代码构建

要求:Node.js 22.22.2+、pnpm 10.x。

pnpm install
pnpm build
pnpm start           # run the built server from dist/
pnpm dev             # run from source under tsx watch
pnpm check           # drift guards (metadata + openapi + domain + event contracts) + lint + format check + typecheck + unit tests
pnpm test            # Vitest unit suites
pnpm test:e2e        # end-to-end browser/tooling suites
pnpm daemon          # run the Streamable HTTP daemon after build

原生辅助程序通过 pnpm build 打包;首次运行时,服务可能会根据配置档位下载可选运行时(ONNX、Z3、Binaryen、Camoufox、Playwright)。


项目统计


许可证

AGPLv3。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。