
JS Reverse MCP Server: Setup for Claude, Cursor and Other Apps
Lets Claude, Cursor and other assistants debug a web page's JavaScript in a real Chrome, with breakpoints, request tracing and WebSocket inspection.
This is a community server by zhizhuodemao. It runs on your computer, opens a visible Chrome that keeps your logins between sessions, and has an optional stealth mode for sites that detect automation.
It can run JavaScript in the pages you open, so use it only on sites you are allowed to test.
Good for
- Security researchers analyzing how a site's scripts sign or protect requests
- Developers debugging minified or obfuscated front-end code
- Anyone tracing which script sends a given request
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 js-reverse MCP
Claude Code
- 1
Copy this prompt.
Add the js-reverse MCP server to Claude Code. Run this command: claude mcp add js-reverse -- npx -y js-reverse-mcp 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
Lists or switches browser tabs
Lists the open pages or picks one as the target for later tools.
Try: “Which tabs are open?”
Read ·
select_pageOpens a URL in a new tab
Opens a separate browser page for a URL, reusing a blank start tab when there is one.
Try: “Open https://example.com in a new tab.”
Runs code ·
new_pageGoes to a URL, reloads, or moves through history
Navigates the selected page, which also triggers any breakpoints you set.
Try: “Reload the page and watch for the login request.”
Runs code ·
navigate_pageLists or picks an iframe
Lists the frames in the page or selects one, so later click and script tools act inside it.
Try: “Switch to the payment iframe.”
Read ·
select_frameTakes a screenshot of the page
Captures how the selected page looks, to check layout or the effect of a click.
Try: “Take a screenshot of the page.”
Read ·
take_screenshotClicks one element
Clicks a button, link or control chosen by CSS selector, in the selected frame.
Try: “Click the Sign in button.”
Write ·
click_elementRuns JavaScript in the page
Runs one JavaScript function against the page, its storage and globals, or a paused frame, and can process one local file.
Try: “Read the value of window.__token.”
Runs code ·
evaluate_scriptReads the page's console output
Returns console messages and uncaught errors captured for the page.
Try: “Show the console errors.”
Read ·
list_console_messagesLists the JavaScript loaded by the page
Lists external, inline and eval scripts in the current frame.
Try: “List all scripts loaded on this page.”
Read ·
list_scriptsSearches the page's code for text
Finds a function name, endpoint, string or pattern across loaded scripts, including minified ones.
Try: “Find where the sign function is defined.”
Read ·
search_in_sourcesReads a small part of a script
Returns a small region of source around a match or a paused location, without running or pausing the page.
Try: “Show the code around that match.”
Read ·
get_script_sourceSaves a whole script to a file
Saves one complete JavaScript or WASM source to your disk for inspection, for example a large minified bundle.
Try: “Save the main bundle to a file.”
Files ·
save_script_sourcePauses the page at a line of code
Sets a breakpoint where given code text appears, so you can see runtime values.
Try: “Pause where the token is computed.”
Write ·
set_breakpoint_on_textPauses when a request is about to be sent
Sets a breakpoint on a future XHR or fetch whose URL contains the text you give.
Try: “Pause when the page calls /api/login.”
Write ·
break_on_xhrLists active breakpoints
Returns the code and request breakpoints this session has set.
Try: “What breakpoints are set?”
Read ·
list_breakpointsRemoves a breakpoint
Removes one code or request breakpoint, or all of them after explicit confirmation.
Try: “Remove all breakpoints.”
Write ·
remove_breakpointShows where the page is paused
Returns the call stack, source locations and scopes after a breakpoint or pause stops execution.
Try: “Where is it paused and what are the variables?”
Read ·
get_paused_infoPauses or resumes the page
Pauses the page immediately or resumes it from a pause. It never toggles by itself.
Try: “Resume execution.”
Runs code ·
pause_or_resumeSteps through the code one operation
Advances one debugger step from a pause and shows the next source context.
Try: “Step into the next call.”
Runs code ·
stepLists captured web requests
Shows HTTP traffic for the page with headers, bodies, redirects and cookie-setting responses. It can also export a request to a file you name.
Try: “Show requests that set a cookie.”
Files ·
list_network_requestsShows which code sent a request
Traces the JavaScript that initiated a captured request, without pausing.
Try: “What code sent request 12?”
Read ·
get_request_initiatorClears the captured request log
Discards captured traffic for the page after you confirm, for a clean capture window.
Try: “Clear the network log, then I will click login.”
Delete ·
clear_network_requestsReads WebSocket connections and messages
Shows captured WebSocket connections and their frames.
Try: “Show the WebSocket messages.”
Read ·
get_websocket_messagesClears the site's cookies, cache and storage
Irreversibly clears browser state for the page after you confirm, to replay a login from scratch.
Try: “Clear site data and reload.”
Delete ·
clear_site_data
Read from the source code
Permissions
high risk · 6 things to watch
High risk
It can run JavaScript in any page you open, click, read cookies and storage, and clear a site's data for good. Use it only on sites you may test, and use the isolated option so it does not touch your real logins.
What it can do
- Read your data
- Create and change things
- Delete things
- Read-only mode
Watch out for
It runs JavaScript on pages you open
The script tool runs code in the page with access to its storage and globals. Do not open sites you are not allowed to test. github.com
Browser anti-detection is on by default
The README (in Chinese) says the browser hides automation signals by default: it avoids Runtime.enable, removes automation launch flags, uses a real viewport and a Google referer. The optional --cloak mode targets sites using Cloudflare Turnstile, DataDome or FingerprintJS. This can get past bot protection, so use it only on sites you own or have permission to test. github.com
The default profile keeps your logins
A persistent profile keeps cookies and local storage, so sites you sign in to stay signed in. Use the isolated option for a clean throwaway browser. github.com
Clearing site data cannot be undone
The clear-site-data tool wipes cookies, cache and storage for the page after confirmation. Confirm only on test sites. github.com
Stealth mode downloads a large binary
The cloak option downloads about 200MB of browser binary on first start. Use it only if you accept that. github.com
It saves files to your disk
Script and request data can be saved locally for review. Check the paths before approving. github.com
Security advisories
No published security advisories as of Nov 1, 2026.
Technical details
| Talks to | Any site you open |
|---|---|
| Sign-in and keys | No account. By default a persistent browser profile keeps cookies and local storage between sessions; the isolated option uses a temporary profile. |
Questions
Is JS Reverse MCP official?
No. It is a community project by zhizhuodemao and is not a product of Google or Chrome.
What is it used for?
Reverse engineering front-end JavaScript: finding which script sends a request, reading minified or obfuscated code, and watching values at breakpoints. The README says its anti-detection features exist so the agent can reach the target page, not to make it a general scraper.
What do I need to run it?
Node.js 20.19 or newer and a stable Chrome. There is no account or API key.
Can it keep me logged in to sites?
Yes. By default it keeps cookies and local storage between sessions. Use the isolated option for a fresh temporary profile each time.
What is the cloak option?
An option that swaps system Chrome for a stealth browser binary, for sites that block automation. It downloads about 200MB on first launch.
Is it safe to use on any site?
No. It runs code in the pages you open, so use it only on sites you own or are allowed to test.
Does it run locally?
Yes. It opens a visible Chrome on your computer over standard input and output.
Information
updated Nov 2, 2026
- Publisher
- Community
- Package
js-reverse-mcp- Registry
- npm
- Transport
- stdio
- Auth
- None
- Version
- 4.0.5
- License
- Apache-2.0
- Last commit
- Sep 3, 2026
- Open issues
- 4
Sources
Docs, issue trackers and discussions this page is built from. Issues, quotes and findings above link to their own source.
Show all 2Hide
- README.md · github.com
- js-reverse-mcp · npmjs.com