Server data from the Official MCP Registry
MCP server for JavaScript reverse engineering and browser debugging.
MCP server for JavaScript reverse engineering and browser debugging.
Valid MCP server (1 strong, 1 medium validity signals). 3 known CVEs in dependencies (0 critical, 3 high severity) ⚠️ Package registry links to a different repository than scanned source. Imported from the Official MCP Registry. Trust signals: 4 highly-trusted packages. 1 finding(s) downgraded by scanner intelligence.
4 files analyzed · 4 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
This plugin requests these system permissions. Most are normal for its category.
Add this to your MCP configuration file:
{
"mcpServers": {
"io-github-yuanhuakk-js-reverse-mcp": {
"args": [
"-y",
"@yuanhuakk/js-reverse-mcp"
],
"command": "npx"
}
}
}From the project's GitHub README.
English | 中文
A JavaScript reverse engineering MCP server that enables AI coding assistants (Claude, Cursor, Copilot) to debug and analyze JavaScript code in web pages.
Built on the Patchright anti-detection engine with multi-layered anti-bot bypass capabilities, allowing it to work on sites with bot detection such as Zhihu and Google.
No installation required. Add to your MCP client configuration:
{
"mcpServers": {
"js-reverse": {
"command": "npx",
"args": ["js-reverse-mcp"]
}
}
}
claude mcp add js-reverse npx js-reverse-mcp
codex mcp add js-reverse -- npx js-reverse-mcp
Go to Cursor Settings -> MCP -> New MCP Server, and use the configuration above.
code --add-mcp '{"name":"js-reverse","command":"npx","args":["js-reverse-mcp"]}'
git clone https://github.com/zhizhuodemao/js-reverse-mcp.git
cd js-reverse-mcp
npm install
npm run build
Then use local path in your MCP configuration:
{
"mcpServers": {
"js-reverse": {
"command": "node",
"args": ["/path/to/js-reverse-mcp/build/src/index.js"]
}
}
}
js-reverse-mcp includes multi-layered anti-detection measures to work on sites with bot detection:
| Layer | Description |
|---|---|
| Patchright Engine | C++ level anti-detection patches, removes navigator.webdriver, avoids Runtime.enable leaks |
| 60+ Stealth Args | Removes automation signatures, bypasses headless detection, GPU/network/behavior fingerprint spoofing |
| Harmful Args Removal | Excludes --enable-automation and 4 other default Playwright arguments |
| Silent CDP Navigation | Navigation tools don't activate CDP domains, captures requests only through Playwright-level listeners, preventing anti-bot scripts from detecting debugging protocol activity |
| Google Referer Spoofing | All navigations automatically include referer: https://www.google.com/ |
| Persistent Login State | Uses persistent user-data-dir by default, login state preserved across sessions |
| Tool | Description |
|---|---|
select_page | List open pages, or select one by index as debugging context |
new_page | Create a new page and navigate to URL |
navigate_page | Navigate, go back, forward, or reload |
select_frame | List all frames (iframes), or select one as execution context |
take_screenshot | Take a page screenshot |
| Tool | Description |
|---|---|
list_scripts | List all JavaScript scripts loaded in the page |
get_script_source | Get script source snippet by line range or character offset |
save_script_source | Save full script source to a local file (for large/minified/WASM files) |
search_in_sources | Search for strings or regex patterns across all scripts |
| Tool | Description |
|---|---|
set_breakpoint_on_text | Set breakpoint by searching code text (works with minified code) |
break_on_xhr | Set XHR/Fetch breakpoint by URL pattern |
remove_breakpoint | Remove breakpoint(s) by ID, URL, or all; auto-resumes |
list_breakpoints | List all active breakpoints |
get_paused_info | Get paused state, call stack and scope variables |
pause_or_resume | Toggle pause/resume execution |
step | Step over, into, or out with source context in response |
| Tool | Description |
|---|---|
trace_function | Trace any function call (including bundled internals) via logpoints |
inject_before_load | Inject or remove a script that runs before page load |
| Tool | Description |
|---|---|
list_network_requests | List network requests, or get one by reqid |
get_request_initiator | Get JavaScript call stack for a network request |
get_websocket_messages | List WebSocket connections, analyze messages, or get message details |
| Tool | Description |
|---|---|
evaluate_script | Execute JavaScript in the page (supports paused context, main world, and saving results/binary data to file) |
list_console_messages | List console messages, or get one by msgid |
Open https://example.com and list all loaded JS scripts
Search all scripts for code containing "encrypt"
Set a breakpoint at the entry of the encryption function
Trigger an action on the page, then inspect arguments, call stack and scope variables when the breakpoint hits
Use trace_function to trace the webpack-bundled internal function "encryptData",
view arguments of each call without setting breakpoints
List WebSocket connections, analyze message patterns, view messages of specific types
| Option | Description | Default |
|---|---|---|
--browserUrl, -u | Connect to a running Chrome instance | - |
--wsEndpoint, -w | WebSocket endpoint connection | - |
--headless | Run in headless mode | false |
--executablePath, -e | Custom Chrome executable path | - |
--isolated | Use temporary user data directory (fresh each time) | false |
--channel | Chrome channel: stable, canary, beta, dev | stable |
--viewport | Initial viewport size, e.g. 1280x720 | real size |
--hideCanvas | Enable Canvas fingerprint noise | false |
--blockWebrtc | Block WebRTC to prevent real IP leaks | false |
--disableWebgl | Disable WebGL to prevent GPU fingerprinting | false |
--noStealth | Disable stealth launch arguments (for debugging) | false |
--proxyServer | Proxy server configuration | - |
--logFile | Debug log file path | - |
Enhanced anti-detection (Canvas noise + WebRTC blocking):
{
"mcpServers": {
"js-reverse": {
"command": "npx",
"args": [
"js-reverse-mcp",
"--hideCanvas",
"--blockWebrtc"
]
}
}
}
Isolated mode (no persistent login, fresh profile each time):
{
"mcpServers": {
"js-reverse": {
"command": "npx",
"args": [
"js-reverse-mcp",
"--isolated"
]
}
}
}
macOS
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222 --user-data-dir=/tmp/chrome-debug
Windows
"C:\Program Files\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9222 --user-data-dir="%TEMP%\chrome-debug"
{
"mcpServers": {
"js-reverse": {
"command": "npx",
"args": [
"js-reverse-mcp",
"--browser-url=http://127.0.0.1:9222"
]
}
}
}
If you are blocked when visiting certain sites (e.g. Zhihu returning error 40362):
~/.cache/chrome-devtools-mcp/chrome-profile directory--isolated flag--hideCanvas flagThis tool exposes browser content to MCP clients, allowing inspection, debugging, and modification of any data in the browser. Do not use it on pages containing sensitive information.
Apache-2.0
Be the first to review this server!
by Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
by Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
by mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.
by Microsoft · Content & Media
Convert files (PDF, Word, Excel, images, audio) to Markdown for LLM consumption
by mcp-marketplace · Developer Tools
Scaffold, build, and publish TypeScript MCP servers to npm — conversationally
by mcp-marketplace · Finance
Free stock data and market news for any MCP-compatible AI assistant.