
jshook MCP Server: JavaScript Reverse Engineering Toolkit
Lets your assistant take apart websites and programs: capture traffic, unpack scripts, read WASM and inspect processes.
jshook is a toolkit for security researchers and reverse engineers. It lets Claude, Cursor and other assistants drive a browser, capture network traffic, unpack obfuscated JavaScript, read WebAssembly and inspect running processes. The project is community-made and runs on your machine.
It starts with 8 helper tools that find and switch on the rest, so the assistant is not flooded with hundreds of tool descriptions. The 0.4.3 README counts 735 tools in the full catalog (the main branch says 736). Some can change or inject code into other programs, and there is no read-only mode, so use it only on systems you are allowed to test.
Good for
- Security researchers analysing web apps and malware
- Reverse engineers working on JavaScript, WASM or Android apps
- Developers debugging how a site talks to its servers
Works in
12 should work
Tap an app to see how to set it up and any known problems.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Client does not support this transport.
Client does not support this transport.
Install jshookmcp MCP
Claude Code
- 1
Copy this prompt.
Add the jshookmcp MCP server to Claude Code. Run this command: claude mcp add jshookmcp -- npx -y @jshookmcp/jshook Then check that it loaded and tell me if I need to sign in or restart.
- 2
Paste it into Claude Code. It shows the change and asks before running it.
Requires Node.js.
Built from the package data we hold. Not yet tested by us.
Tools
Finds the right tool for a job from the full catalog
Searches the whole tool catalog by keywords and, by default, switches on the tools it finds so the assistant can use them right away.
Try: “Find a tool that can list the network requests this page made.”
Read ·
search_toolsSuggests which tools to use for a task, step by step
Takes a plain description of a task and returns recommended tools, the order to switch them on, and example arguments.
Try: “Which tools do I need to unpack this minified script?”
Read ·
route_toolShows what a tool does and what it needs
Returns the details and input format of one named tool so the assistant can see its parameters before calling it.
Try: “Describe the proxy_start tool.”
Read ·
describe_toolSwitches on specific tools by name
Adds the named tools to the session so the assistant can call them. A preview mode shows what would be switched on or dropped without changing anything.
Try: “Switch on the WASM disassembly tools.”
Read ·
activate_toolsSwitches tools back off to save space
Removes tools you added earlier so they stop taking up room in the assistant context. It does not touch the base set.
Try: “Turn off the tools we no longer need.”
Read ·
deactivate_toolsSwitches on a whole group of tools at once
Registers every tool in one area, such as network or debugger. It costs far more context than picking a few tools, and the tools switch off by themselves after 30 minutes unless you change that.
Try: “Turn on the network tools for 60 minutes.”
Read ·
activate_domainRuns an already switched-on tool by name
Runs a tool that is active in the session, for apps that did not refresh their tool list. It does not switch on tools that are off, but whatever the tool does, it does.
Try: “Run network_get_requests for the current page.”
Runs code ·
call_toolLists which tools have and have not been used
Reports which tools were called in this session and which known tools were not. It loads every tool group first so the list covers the full catalog.
Try: “Show me which tools we have used so far.”
Read ·
coverage_reportStarts a local web proxy that can read HTTPS traffic
On demand: starts a local HTTP and HTTPS proxy and creates a local certificate authority for decrypting traffic if none exists. Install that certificate only on devices you own.
Try: “Start the proxy and capture requests from my test phone.”
Runs code ·
proxy_startTurns a WebAssembly file into readable text
On demand: runs the wabt tool wasm2wat on a .wasm file and returns its text form so the assistant can read what the module does.
Try: “Disassemble the WASM file we just dumped.”
Runs code ·
wasm_disassembleRewrites bytes inside a running program
On demand: writes bytes into another process memory at an address you give, and keeps the original bytes so the patch can be undone. The memory domain also holds tools that scan memory and, on Windows with an extra setting, inject code.
Try: “Patch the check at this address in the target process.”
Runs code ·
memory_patch_bytes
Read from the source code
Permissions
high risk · 6 things to watch · 2 advisories
High risk
The assistant can run a browser, a traffic proxy and tools that read and rewrite other running programs, with no read-only mode. Run it in a throwaway virtual machine or on a test machine, and only against targets you may analyse.
What it can do
- Read your data
- Create and change things
- Delete things
- Read-only mode
Watch out for
It can patch and inject code into other programs
Memory tools such as memory_patch_bytes write into running processes, and the docs say the injection tools need JSHOOK_INJECTION_ENABLE=1 on Windows. Leave that setting off unless you need it. github.com
call_tool runs whatever tool is switched on
The 8 starting tools are harmless, but they switch on the rest and call_tool runs them. Watch what the assistant activates, and prefer a disposable machine. github.com
The proxy creates a certificate that can read HTTPS
proxy_start generates a local certificate authority when none exists. Trust it only on test devices, and remove it when you finish. github.com
The browser can click, type and run scripts on live pages
Browser tools attach to Chromium or Camoufox and can act on pages you are signed in to. Use a separate browser profile. github.com
It downloads helpers the first time it runs
The README says optional runtimes such as ONNX, Z3, Binaryen, Camoufox and Playwright, and a search model, may download on first run. Use the lighter setup from the README to skip the optional ones. github.com
Shared HTTP mode needs a token off localhost
The optional shared server binds to 127.0.0.1 by default. Set MCP_AUTH_TOKEN before you expose it beyond your machine. github.com
Security advisories
2 known advisories, all fixed in a newer version.
Technical details
| Turning on read-only | No read-only mode is documented. Tools carry read-only and destructive hints, but the catalog includes tools that write to other processes. |
|---|---|
| Talks to | Any site the browser or proxy opens. Hugging Face on first search (a small search model is downloaded) |
| Sign-in and keys | No account or API key. It writes working files, such as captured data, screenshots, the interception certificate and the search cache, under your machine, in folders you can change. |
Questions
Is the jshook MCP server official?
No. It is a community project by vmoranv and is not made by any browser, app or security vendor it works with.
How many tools does it have?
The 0.4.3 README counts 735 tools in the full catalog (the main branch says 736), and the page lists only part of them. In the default search setup the assistant sees 8 helper tools and switches on the rest as needed.
Is jshook safe to use?
Only on systems you are allowed to test. It can drive a browser, intercept HTTPS traffic and, with an extra setting on Windows, inject code into other programs. There is no read-only mode.
What do search, workflow and full mean?
They are tool sets you pick with the MCP_TOOL_PROFILE setting. Search starts with the 8 helpers, workflow adds ready-made multi-step tools, and full loads all of them at once, which uses a lot more of the assistant context.
Does it need an API key?
No. The core tools need no account. Only the optional automatic CAPTCHA solving takes a provider key.
Can I use it in a shared setup for several agents?
Yes. The README describes a local server you start yourself that several assistants connect to. It listens on 127.0.0.1 by default, and you should set a token before exposing it further.
What license is it under?
AGPL-3.0, per the npm package. If you build it into a service you offer to others, the license has conditions, so read it first.
Information
updated Nov 2, 2026
- Publisher
- Community
- Package
@jshookmcp/jshook- Registry
- npm
- Transport
- stdio
- Version
- 0.4.2
- License
- AGPL-3.0
- Last commit
- Oct 31, 2026
- Open issues
- 0
- Listed in
- Official MCP registry
Sources
Docs, issue trackers and discussions this page is built from. Issues, quotes and findings above link to their own source.
Show all 7Hide
- github.com · github.com
- www.npmjs.com · npmjs.com
- github.com · github.com
- github.com · github.com
- github.com · github.com
- github.com · github.com
- github.com · github.com