npm @jshookmcp/jshookstdioAGPL-3.0updated 9d ago
An MCP server that gives AI agents 600+ tools across 34 domains for JavaScript analysis and security research — browser automation, CDP debugging, network interception, JS hooks, LLM-powered code analysis, process/memory forensics, WASM reverse engineering, source-map reconstruction, AST transforms, and composite workflows in a single server.
¿Qué puedes hacer con jshookmcp?
@jshookmcp/jshook
English | 中文
An MCP server that gives AI agents 600+ tools across 34 domains for JavaScript analysis and security research — browser automation, CDP debugging, network interception, JS hooks, LLM-powered code analysis, process/memory forensics, WASM reverse engineering, source-map reconstruction, AST transforms, and composite workflows in a single server.
Quick Links
🚀 Quick Start
No global install needed — add to your MCP client config and you're ready:
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: use npx.cmd absolute path if npx is not found)
This lightweight configuration skips optional ONNX, Z3, Binaryen, Camoufox, and Playwright
packages. Remove npm_config_omit when those full-profile runtimes are required.
Share one daemon across multiple agents
The default stdio configuration starts one full jshook process per MCP host. To share the embedding model, browser runtime, and caches, start one local Streamable HTTP daemon:
pnpm build
pnpm daemon
Vector search defaults to off for per-client stdio processes and on (lazy-loaded) for the shared
HTTP daemon. Set SEARCH_VECTOR_ENABLED=false when lexical search is sufficient.
Then point every MCP client at http://127.0.0.1:3000/mcp using its HTTP/URL server
configuration. Each client receives its own MCP session and response route while heavyweight
runtime resources remain in one process. Keep the default loopback bind; set MCP_AUTH_TOKEN
before exposing the endpoint beyond localhost.
🌟 Highlights
- 🤖 AI-Driven Analysis — LLM-powered deobfuscation, crypto detection, AST comprehension
- ⚡ Search-First Context Efficiency —
searchprofile ≈ 3K tokens vsfull≈ 40K+ tokens - 🎯 Progressive Tiers —
search→workflow→full, activate on demand - 🌐 Full-Stack Browser Automation — Chromium/Camoufox + CDP + anti-detection + CAPTCHA handling
- 🔁 Runtime Recovery and Session Isolation — HTTP sessions restore activated domains, browser attach state, coverage state, and isolate browser-side session state per client
- 🧭 Schema-First Meta Tools —
describe_tool, validatedcall_tool, andcoverage_reportreduce parameter errors and make tool coverage visible - 📡 Network Interception — HTTP/2 frame building, MiTM capture, GraphQL, Burp Suite bridge
- 🛠️ Reverse Engineering Toolchain — WASM disassembly, binary analysis, Frida, Ghidra/IDA bridges
- 🧰 Process & Memory Forensics — Native FFI scanning, hardware breakpoints, PE introspection
- 🧩 Dynamic Extensibility — Hot-reload plugins, declarative workflows, auto-discovered domains
Recent Runtime Notes
- HTTP transport now multiplexes independent MCP sessions and restores runtime state after reconnects.
proxy_startauto-generates a local HTTPS interception CA when needed.- Browser CAPTCHA solving is now explicit-input driven: pass
taskKind,siteKey,imageBase64,callbackName, andresponseSelectoras needed. Built-in widget/page signature probing is intentionally not used.
Architecture
- Runtime Registry — Domains auto-discovered via
manifest.ts; add a domain by creating one file - Lazy Initialization — Handlers instantiated on first call, not at startup
- BM25 + Vector Search —
search_toolsmeta-tool with hybrid ranking and adaptive weights - MCP ToolAnnotations — Every tool carries
readOnlyHint/destructiveHint/idempotentHint/openWorldHint
Registry Snapshot
The built-in surface below is generated from the runtime registry and checked in CI.
- Package version:
0.3.5 - Built-in Tools:
716 - Domains:
adb-bridge,binary-instrument,boringssl-inspector,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,sourcemap,streaming,syscall-hook,tasks,trace,transform,v8-inspector,wasm,webgpu,workflow - Note: this snapshot is generated from the runtime registry; do not edit the counts by hand.
Project Stats
Instalación
Añade jshookmcp a tu cliente. Elige el que uses.
claude mcp add jshook -- npx -y @jshookmcp/jshookcodex mcp add jshook -- npx -y @jshookmcp/jshookamp mcp add jshook -- npx -y @jshookmcp/jshook{
"mcpServers": {
"jshook": {
"command": "npx",
"args": [
"-y",
"@jshookmcp/jshook"
]
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"jshook": {
"command": "npx",
"args": [
"-y",
"@jshookmcp/jshook"
]
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
code --add-mcp '{"name":"jshook","command":"npx","args":["-y","@jshookmcp/jshook"]}'Or add the block manually to `.vscode/mcp.json` under `servers`.
{
"mcpServers": {
"jshook": {
"command": "npx",
"args": [
"-y",
"@jshookmcp/jshook"
]
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
{
"mcpServers": {
"jshook": {
"command": "npx",
"args": [
"-y",
"@jshookmcp/jshook"
]
}
}
}Add to `cline_mcp_settings.json` via the MCP Servers panel.
{
"mcpServers": {
"jshook": {
"command": "npx",
"args": [
"-y",
"@jshookmcp/jshook"
]
}
}
}Add to `~/.gemini/settings.json`.
{
"mcpServers": {
"jshook": {
"type": "local",
"command": "npx",
"args": [
"-y",
"@jshookmcp/jshook"
],
"tools": [
"*"
]
}
}
}Add to `~/.copilot/mcp-config.json`, or run `/mcp add` inside the CLI.
{
"context_servers": {
"jshook": {
"command": {
"path": "npx",
"args": [
"-y",
"@jshookmcp/jshook"
]
}
}
}
}Add to your Zed `settings.json`.
npx -y @jshookmcp/jshookRun `goose configure`, choose **Add Extension → Command-line Extension**, and paste this command.
Puntuación
39 / 100
Incompleta
- Documentación25/25
- Mantenimiento19/25
- Confianza13/20
- Capacidad0/15
- Instalación12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 2 days ago
- Has a release history
- Repository is not archived
- Licensed AGPL-3.0
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 0 tool(s) documented
- Provides prompt templates
- Provides resources
- 12 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint — no local install
Historial de versiones
| Versiones | Publicada |
|---|---|
| 0.3.0Última | 3 may 2026 |