JS Reverse MCP
JS Reverse MCP
English | Chino
Servidor MCP de ingeniería inversa de JavaScript, AI-first / AI-native, que permite a tu asistente de codificación con IA (como Claude, Cursor, Copilot) depurar, localizar, guardar y revisar continuamente el comportamiento de JavaScript en páginas web, como un analista.
No se limita a trasladar la API de Chrome DevTools directamente al modelo, sino que reorganiza scripts, puntos de interrupción, red, WebSocket, estado del navegador y E/S de archivos locales en herramientas adecuadas para que un Agente de IA razone y opere de forma continua. La anti-detección es una de sus capacidades: de forma predeterminada utiliza el Patchright fork, recompilado y publicado específicamente para este MCP y mantenido de forma independiente, para proporcionar stealth a nivel de protocolo; para sitios con fuerte anti-rastreo, puede habilitarse opcionalmente el modo de huella digital a nivel de código fuente de CloakBrowser.
☁️ Patrocinio · Sponsored by IPWO
El proxy residencial de IPWO admite configuraciones de proxy flexibles; los desarrolladores pueden elegir el entorno de red correspondiente según la tarea, para acceso web, pruebas de solicitudes, análisis de contenido regionalizado y flujos de trabajo automatizados.
Para proyectos que implican ingeniería inversa de JS, depuración de navegador y análisis de red web, el proxy residencial también puede ser una opción complementaria de entorno de red, ayudando a los desarrolladores a satisfacer de forma más flexible las necesidades de acceso y pruebas en diferentes regiones.
👉 Entrada de prueba gratuita, código de descuento del 10 %: 0204
Related MCP server: Chrome DevTools MCP
☁️ Patrocinio · Sponsored by Infistar.cc 无限星河
js-reverse-mcp × Infistar.cc 无限星河|API para todos los modelos · impulsa de forma estable la depuración asistida por IA
¡Gracias a Infistar.cc 无限星河 por patrocinar y proporcionar soporte de servicios de modelos para js-reverse-mcp!
⚡ Soporta de forma estable tareas de depuración complejas: ofrece canales empresariales de alta concurrencia y redundancia multinodo, con precios desde 1/10 del canal oficial, reduciendo límites de frecuencia, errores 429 y problemas de desconexión en tareas largas.
🧠 Un solo API Key para acceder a los principales modelos: admite modelos como ChatGPT, Claude, Gemini, Kimi, GLM, DeepSeek, y es compatible con herramientas de programación de IA como Claude Code, Codex, Cursor.
🔎 Impulsa la depuración autorizada y la investigación de seguridad: apto para tareas de varios pasos como búsqueda de scripts, análisis de puntos de interrupción, seguimiento de solicitudes de red, inspección de la pila de llamadas y comprensión de la lógica del código.
📦 Beneficio exclusivo para usuarios del proyecto: regístrate a través del enlace de promoción exclusivo y completa la primera llamada para recibir un crédito de prueba equivalente a 5 USD / un descuento exclusivo en la primera recarga.
Posicionamiento: soporte de configuración de API de modelos para Claude Code / Codex.
Características
Diseño de herramientas AI-native: la granularidad de las herramientas, los límites de salida y los mensajes de error están diseñados en torno a las decisiones del Agente, evitando llevar al modelo a un siguiente paso inútil.
Flujo de trabajo revisable: el código fuente de los scripts, los datos brutos de red y los resultados binarios pueden exportarse a archivos locales y utilizarse como entrada para análisis posteriores.
Ejecución en contexto de punto de interrupción: al pausar, se puede evaluar directamente en el call frame, inspeccionar variables de ámbito, ejecutar paso a paso y devolver el contexto del código fuente.
Análisis de scripts: lista todos los JS cargados, busca código, obtiene/guarda código fuente y formatea automáticamente scripts grandes y minificados.
Análisis de red y WebSocket: pilas de llamadas de solicitudes, puntos de interrupción XHR, identificación de Set-Cookie, exportación de body/header brutos y agrupación de mensajes WebSocket.
Reproducción del estado del navegador: limpia cookies / caché / storage / sessionStorage del sitio actual, y con reload reproduce el flujo de cookies y control de riesgos.
Con interfaz (headed) por defecto + estado de sesión persistente: el navegador es visible y las cookies / localStorage se conservan entre sesiones.
Núcleo Patchright dedicado: por defecto depende de un fork de Patchright mantenido de forma independiente por este proyecto, corrigiendo continuamente las características de implementación compartida conocidas del upstream.
Capa anti-detección opcional: el stealth a nivel de protocolo del Patchright dedicado está habilitado por defecto; para sitios con fuerte anti-rastreo se puede añadir
--cloakpara usar el binario de CloakBrowser.
Fork dedicado de Patchright
js-reverse-mcp ya no depende directamente del paquete de distribución público de Patchright, sino que utiliza @zhizhuodemao/patchright, compilado y publicado específicamente para este MCP. Este fork se mantiene de forma continua en un repositorio independiente y evoluciona junto con las muestras de detección reales de este MCP.
Ya no depende directamente del paquete de distribución público de Patchright.
Realiza ajustes a nivel de protocolo y recompilaciones/publicaciones para las características de implementación compartida del upstream ya confirmadas.
Los ajustes de anti-detección no dependen de la inyección de JS a nivel de página.
Conserva las capacidades originales como evaluate, locator y control de página.
El fork se mantiene continuamente en el repositorio dedicado a este MCP.
La documentación pública solo explica los límites de diseño y no detalla las muestras de detección internas ni los detalles de implementación. El objetivo del fork dedicado es reducir las características de implementación compartida confirmadas, no prometer que la automatización del navegador sea absolutamente indetectable.
Requisitos del sistema
Inicio rápido (npx)
Sin necesidad de instalar, añade directamente en la configuración del cliente MCP:
{
"mcpServers": {
"js-reverse": {
"command": "npx",
"args": ["js-reverse-mcp"]
}
}
}Claude Code
claude mcp add js-reverse npx js-reverse-mcpSi aún no tienes una API de modelos disponible, o necesitas configurar una dirección de API personalizada, consulta: Tutorial de configuración de API de modelos de terceros para Claude Code / Codex.
Codex
codex mcp add js-reverse -- npx js-reverse-mcpSi aún no tienes una API de modelos disponible, o necesitas configurar una dirección de API personalizada, consulta: Tutorial de configuración de API de modelos de terceros para Claude Code / Codex.
Cursor
Ve a Cursor Settings -> MCP -> New MCP Server y usa la configuración anterior.
VS Code Copilot
code --add-mcp '{"name":"js-reverse","command":"npx","args":["js-reverse-mcp"]}'Instalación local (opcional)
git clone https://github.com/zhizhuodemao/js-reverse-mcp.git
cd js-reverse-mcp
npm install
npm run buildLuego usa la ruta local en la configuración de MCP:
{
"mcpServers": {
"js-reverse": {
"command": "node",
"args": ["/你的路径/js-reverse-mcp/build/src/index.js"]
}
}
}Diseño AI-first
El objetivo central de este proyecto no es «poder operar el navegador», sino permitir que un Agente de IA complete de forma estable una ronda real de tareas de ingeniería inversa de JS: abrir la página, pasar el control de riesgos, localizar scripts, guardar el código fuente, establecer puntos de interrupción, disparar comportamientos, inspeccionar el runtime, exportar materiales de red, reproducir estados y seguir razonando.
Varias orientaciones de diseño están presentes en todo el código:
Las herramientas son primitivas del Agente, no un mapeo de menús de DevTools:
list_network_requestspuede listar índices, consultar detalles porreqidy exportar materiales precisos conoutputFile;evaluate_scriptpuede ejecutarse en la página o en el call frame de un punto de interrupción, y también aceptar la entradalocalFilePath.La salida debe guiar el siguiente paso: las salidas de lista se mantienen cortas y escaneables; las salidas de detalle tienen límites; los resultados largos sugieren exportarlos; las solicitudes pendientes indican claramente que se reanude la ejecución primero, evitando que el Agente espere una response que nunca se completa.
Los archivos locales son la mesa de trabajo de análisis:
save_script_source,list_network_requests(..., outputFile)yevaluate_script(..., localFilePath)permiten que el Agente vaya y venga entre el navegador, la red y los archivos locales, en lugar de meter grandes bloques de código o datos binarios en el contexto del chat.Estado limpiable, flujo reproducible: el profile predeterminado conserva el estado de sesión;
--isolatedofrece un entorno limpio de un solo uso;clear_site_datalimpia solo el estado relacionado con el sitio actual, para reproducir repetidamente la generación de cookies, la inicialización del control de riesgos y la cadena de solicitudes.La anti-detección sirve al flujo de depuración: la navegación silenciosa por CDP, la ventana gráfica real, el referer de Google, el fork dedicado de Patchright y CloakBrowser tienen como objetivo que el Agente pueda entrar en la página objetivo y continuar el análisis, no convertir el proyecto en un marco genérico de rastreo.
Mecanismo de anti-detección (capacidad de soporte)
La anti-detección es una de las capacidades de soporte subyacentes de js-reverse-mcp. La capa de envoltura (el propio MCP) tiene cero inyección de JS y no hace hacks de Object.defineProperty (eso en sí mismo es una señal de detección). Toda la anti-detección reside en dos capas que no se solapan:
Capa | Modo predeterminado | Modo |
Capa de protocolo (CDP) | Fork dedicado de Patchright: no llama a | Igual |
Capa de código fuente (parche binario C++) | Ninguna: usa directamente el Google Chrome del sistema | Binario de CloakBrowser (parche de huella digital a nivel de código fuente según la plataforma, que cubre |
Directorio de profile |
|
|
Navegador real | Tu Google Chrome instalado (con Web Store, extensiones, sync) | Compilación personalizada de Chromium (sin servicios de Google, sin Web Store) |
Además, varias medidas a nivel de navegación (activas en ambos modos):
Navegación silenciosa por CDP — al cargar la página no se activan
Network.enable/Debugger.enable; la recopilación de solicitudes/consola solo pasa por los listeners de Playwright, hasta que alguna herramienta necesite CDP explícitamente.Google Referer —
new_pageincluye por defectoreferer: https://www.google.com/Ventana gráfica real — desactiva la ventana gráfica falsa predeterminada de 1280×720 de Playwright y el navegador muestra el tamaño real de la pantalla.
Cuándo activar --cloak: úsalo solo cuando lo anterior no sea suficiente y el sitio te bloquee por huella digital. Consulta docs/cloak.md.
Lista de herramientas (24)
Página y navegación
Herramienta | Descripción |
| Lista las páginas abiertas o selecciona el contexto de depuración por índice |
| Crea una nueva página y navega a una URL |
| Navega, retrocede, avanza o recarga la página |
| Lista todos los frames (iframes) o selecciona el contexto de ejecución |
| Coincidencia estricta y clic en un único elemento visible en el frame actual |
| Captura una captura de pantalla de la página |
Análisis de scripts
Herramienta | Descripción |
| Lista todos los scripts de JavaScript cargados en la página |
| Obtiene fragmentos del código fuente del script, con soporte para rangos de líneas o desplazamientos de caracteres |
| Guarda el código fuente completo del script en un archivo local (adecuado para archivos grandes/minificados/WASM) |
| Busca cadenas o expresiones regulares en todos los scripts |
Puntos de interrupción y control de ejecución
Herramienta | Descripción |
| Establece automáticamente un punto de interrupción buscando el texto del código (adecuado para código minificado) |
| Establece puntos de interrupción de XHR/Fetch según el patrón de URL |
| Elimina puntos de interrupción por ID, URL o todos con una acción explícita |
| Lista todos los puntos de interrupción activos |
| Obtiene el estado de pausa, la pila de llamadas y las variables de ámbito |
| Pausa o reanuda la ejecución con una acción explícita |
| Depuración paso a paso (over/into/out), devuelve la posición y el contexto del código fuente |
Red y WebSocket
Herramienta | Descripción |
| Lista solicitudes de red, consulta detalles o exporta materiales brutos como header/body/query |
| Tras confirmación explícita, vacía las solicitudes recopiladas y la caché de body de la página actual |
| Obtiene la pila de llamadas de JavaScript de la solicitud de red |
| Lista conexiones WebSocket, analiza patrones de mensajes u obtiene detalles de mensajes |
Estado del navegador
Herramienta | Descripción |
| Limpia las cookies, el origin storage y el sessionStorage relacionados con el sitio actual; puede elegir explícitamente limpiar la caché HTTP global |
Herramientas de inspección
Herramienta | Descripción |
| Ejecuta JavaScript en la página o en el contexto de un punto de interrupción; admite el mundo principal, guardar resultados y leer un archivo de entrada local |
| Lista los mensajes de consola u obtiene el detalle de uno por msgid |
Ejemplos de uso
Flujo básico de ingeniería inversa de JS
Abrir la página objetivo
打开 https://example.com 并列出所有加载的 JS 脚本Buscar la función objetivo
在所有脚本中搜索包含 "encrypt" 的代码Establecer un punto de interrupción
在加密函数入口处设置断点Disparar y analizar
在页面上触发操作,断点命中后检查参数、调用栈和作用域变量Análisis de protocolo WebSocket
列出 WebSocket 连接,分析消息模式,查看特定类型的消息内容Flujo de captura completo recomendado por el Agente
Como la fase de navegación mantiene deliberadamente el CDP en silencio, al entrar por primera vez en la página objetivo no se abren inmediatamente los dominios Network / Debugger. El flujo recomendado es primero pasar el control de riesgos y luego refrescar para capturar:
1. new_page 打开目标页
2. 调用 list_network_requests 激活 collectors
3. navigate_page(type="reload") 刷新页面
4. 再次 list_network_requests 查看完整请求
5. 对关键 reqid 使用 outputFile 导出原始材料Flujo de reproducción de cookies / control de riesgos
1. clear_site_data(confirm=true) 清理当前站点状态
2. navigate_page(type="reload") 重新触发初始化
3. list_network_requests 找到设置 cookie 或提交 sensor 的请求
4. 导出 requestBody / responseHeaders / responseBody
5. 用 evaluate_script + localFilePath 在页面上下文中复算或验证Opciones de configuración
La CLI se mantiene minimalista; todos los flags son opcionales. En el 99 % de los casos, los valores predeterminados son suficientes. Cuando se involucran archivos locales, se recomienda usar --allowedRoots para limitar los directorios que el Agente puede leer y escribir.
Opción | Descripción | Valor predeterminado |
| Cambia al binario sigiloso de CloakBrowser (sustituye al Chrome del sistema). Activa el parche de huella digital a nivel de código fuente en C++ según la plataforma. En el primer inicio descarga automáticamente el binario de ~200MB; la identidad de huella se persiste por profile. Consulta docs/cloak.md. |
|
| Usa un user-data-dir temporal (cookies/localStorage no se conservan; se limpia automáticamente al cerrar) |
|
| Se conecta a una instancia de Chrome ya en ejecución (endpoint CDP HTTP, por ejemplo | – |
| Escribe un registro de depuración del MCP en un archivo normal con permisos | – |
| Se puede especificar repetidamente para indicar los directorios locales que el Agente puede leer y escribir; resuelve rutas reales y rechaza cruces fuera del directorio mediante enlaces simbólicos. Al habilitarse, desactiva las páginas de navegador | – |
Ejemplos de configuración
Predeterminado: Chrome del sistema + estado de sesión persistente (recomendado para la gran mayoría de escenarios de depuración):
{
"mcpServers": {
"js-reverse": {
"command": "npx",
"args": ["js-reverse-mcp"]
}
}
}--cloak: sitios con fuerte anti-rastreo (protección Cloudflare Turnstile / DataDome / FingerprintJS):
Muy recomendable: descarga previamente el binario (una sola vez, ~30–60 segundos). Si no haces este paso, al iniciar por primera vez el MCP con
--cloak, se descargarán silenciosamente ~200MB y parecerá que el MCP se ha quedado congelado:npx cloakbrowser install
(El paquete cloakbrowser ya se instala junto con optionalDependencies; este comando solo activa la lógica de descarga de binarios incorporada, con barra de progreso)
{
"mcpServers": {
"js-reverse-cloak": {
"command": "npx",
"args": ["js-reverse-mcp", "--cloak"]
}
}
}Dos instancias en paralelo: los profiles de dos instancias MCP están físicamente aislados; cambia según el sitio objetivo:
{
"mcpServers": {
"js-reverse": {
"command": "npx",
"args": ["js-reverse-mcp"]
},
"js-reverse-cloak": {
"command": "npx",
"args": ["js-reverse-mcp", "--cloak"]
}
}
}--isolated: un profile nuevo en cada ejecución (no conserva cookies/localStorage):
{
"mcpServers": {
"js-reverse": {
"command": "npx",
"args": ["js-reverse-mcp", "--isolated"]
}
}
}Conexión a un Chrome ya en ejecución / navegador de huella digital de terceros
--browserUrl solo acepta endpoints CDP (endpoints HTTP que responden a /json/version), no acepta Local API privadas de los fabricantes. Cómo obtener el puerto CDP en escenarios como Chrome local, AdsPower, BitBrowser, etc., consulta el documento dedicado:
📖 docs/cdp-endpoint.md: cómo obtener el puerto de depuración CDP
Ruta más corta (Chrome local):
# 先关掉所有 Chrome 窗口,然后
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome \
--remote-debugging-port=9222 --user-data-dir=/tmp/chrome-debug{
"mcpServers": {
"js-reverse": {
"command": "npx",
"args": ["js-reverse-mcp", "--browserUrl", "http://127.0.0.1:9222"]
}
}
}El puerto CDP de los navegadores de huella digital (AdsPower, BitBrowser, etc.) cambia aleatoriamente en cada inicio; es necesario iniciar el navegador a través de la Local API del fabricante y luego extraerlo. Los pasos y scripts de ejemplo están en el documento anterior.
Solución de problemas
Bloqueado por sistemas anti-rastreo
Si el acceso a ciertos sitios es bloqueado (por ejemplo, Zhihu devuelve 40362, bucle infinito de desafío de Cloudflare):
Prueba primero
--isolated— usa un profile nuevo para descartar la contaminación por estado residual:
"args": ["js-reverse-mcp", "--isolated"]Si aún no funciona, activa
--cloak— habilita el parche de huella digital a nivel de código fuente según la plataforma:
"args": ["js-reverse-mcp", "--cloak"]Por último, considera limpiar manualmente el profile persistente (se perderá el estado de sesión):
rm -rf ~/.cache/chrome-devtools-mcp/chrome-profileCuándo conviene activar --cloak y cuándo no, consulta docs/cloak.md.
Evaluación de enrutamiento del Agente (mantenedores)
npm run eval:routing:validate valida sin conexión los 30 contratos de selección de herramientas entre el tools/list real del MCP, las instrucciones del servidor y evals/tool-routing.json; este comando no accede a endpoints de modelos y está incluido en el presubmit.
La evaluación con modelos reales es explícitamente opt-in, llama uno a uno a los endpoints de Chat Completions compatibles con OpenAI y puede generar costes:
MCP_ROUTING_EVAL_ENDPOINT=https://api.example.com/v1/chat/completions \
MCP_ROUTING_EVAL_MODEL=model-name \
MCP_ROUTING_EVAL_API_KEY=secret \
npm run eval:routingMCP_ROUTING_EVAL_API_KEY puede omitirse para endpoints locales sin autenticación; los endpoints remotos con credenciales deben usar HTTPS, y HTTP solo está permitido en loopback. MCP_ROUTING_EVAL_TIMEOUT_MS puede usarse para ajustar el tiempo de espera de cada solicitud. Por defecto se exige un 100 % de aprobación; al comparar entre modelos, se puede usar MCP_ROUTING_EVAL_MIN_PASS_RATE para establecer un umbral en (0, 1]. La evaluación no imprime API keys, endpoints ni el cuerpo de las respuestas de error de los endpoints.
Advertencia de seguridad
Esta herramienta expone el contenido del navegador al cliente MCP, lo que permite inspeccionar, depurar y modificar cualquier dato del navegador. No la uses en páginas que contengan información sensible.
evaluate_script.localFilePath y los distintos outputFile/filePath harán que el proceso MCP lea o escriba archivos del host. En entornos de producción o compartidos se debe utilizar uno o varios --allowedRoots para acotar el acceso a un directorio de trabajo dedicado; si no se configura, el alcance del acceso no tiene límites. Con --allowedRoots habilitado, también se rechazarán las páginas de navegador file:, view-source:file: y filesystem:file:, para evitar que se eludan los límites de directorio mediante la navegación del navegador; si se necesita depurar páginas locales, solo se puede dejar esta opción sin configurar en sesiones que acepten explícitamente el riesgo de exponer archivos locales.
Licencia
Apache-2.0
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to debug frontend applications by providing direct access to browser DevTools, React state, DOM inspection, and runtime debugging capabilities. Bridges the gap between AI and complex web applications for autonomous debugging and issue resolution.1MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI coding assistants to control and inspect a live Chrome browser through Chrome DevTools. Provides browser automation, performance analysis, debugging capabilities, and network request monitoring.2,211,10449,751Apache 2.0
- AlicenseAqualityCmaintenanceEnables AI assistants to debug JavaScript and TypeScript applications by connecting to Chrome DevTools Protocol-compatible debuggers, allowing them to set breakpoints, step through code, inspect variables, and evaluate expressions with full source map support.18142Apache 2.0
- AlicenseNot gradedqualityDmaintenanceProvides comprehensive Chrome browser debugging capabilities including DOM inspection, network monitoring, console logs, JavaScript execution, breakpoint debugging, and screenshot capture for AI-assisted frontend development.4MIT
Related MCP Connectors
Live browser debugging for AI assistants — DOM, console, network via MCP.
AI-powered browser automation — navigate, click, fill forms, and extract data from any website.
Give AI coding agents access to your Vynix visual feedback, bug reports, and AI diagnosis.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/zhizhuodemao/js-reverse-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server