xbrowser_controller
XBrowser Controller - Control profundo del navegador X
Comprensión completa de ingeniería inversa del navegador X (com.mmbox.xbrowser), capacidad de modificación de APK, y capacidad de control directo del navegador a través del servidor MCP integrado.
Dominio de 404 métodos puente nativos, capacidad de modificación de APK, 439 herramientas MCP, control directo del navegador X vía HTTP.
Características
Control directo del navegador X a través del servidor MCP HTTP
8 herramientas básicas: consulta de estado, información de pestañas, ejecución de JS, obtención de HTML, obtención de texto, enumeración de métodos puente, navegación, recarga
27 herramientas avanzadas encapsuladas: información del sistema, tema de UI, diálogos emergentes, portapapeles, búsqueda, gestión de UA, proxy, modo lectura, medios/TTS, gestión de descargas, gestión de archivos, marcadores, cuentas, VIP, autocompletado, políticas del sitio, privacidad, gestión de pestañas, gestos, eventos, escaneo QR, compartir, zoom, seguridad, scripts de usuario, herramientas de desarrollador, bloqueo de anuncios
404 métodos puente nativos de invocación directa
Soporte de dos métodos de conexión: conexión directa por LAN y túnel ADB
Archivo de definición de habilidades, integrable directamente en sistemas de Agente IA
Related MCP server: MCP Browser Server
Requisitos previos
APK mejorado del navegador X (con servidor MCP HTTP integrado, puerto 8765)
Python 3.8+
Conexión de red (LAN o ADB)
Inicio rápido
1. Instalar dependencias
pip install -r requirements.txt2. Iniciar el servidor MCP del navegador X
En la versión mejorada del navegador X, el navegador escucha automáticamente en el puerto 8765 tras iniciarse.
Confirmar que el servidor MCP está en ejecución:
curl -X POST http://127.0.0.1:8765/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"xbrowser_status","arguments":{}}}'3. Usar el cliente Python
from xbrowser_mcp_server import XBrowserClient
# 连接 X浏览器 MCP 服务器
client = XBrowserClient("http://127.0.0.1:8765/mcp")
# 查询状态
status = client.call_tool("xbrowser_status")
print(status)
# 导航到网页
client.call_tool("xbrowser_navigate", {"url": "https://www.baidu.com"})
# 获取页面内容
html = client.call_tool("xbrowser_get_html")
print(html)
# 执行 JavaScript
result = client.call_tool("xbrowser_eval_js", {"expression": "document.title"})
print(result)
# 获取 Cookie
cookies = client.call_tool("xbridge_GM_cookie_list", {"p1": "", "p2": "", "p3": "", "p4": ""})
print(cookies)
# TTS 语音朗读
client.call_tool("xbridge_TTS", {"p1": "你好,这是语音朗读测试"})4. Uso desde línea de comandos
# 查询状态
python xbrowser_mcp_server.py status
# 导航
python xbrowser_mcp_server.py navigate https://www.baidu.com
# 获取页面文本
python xbrowser_mcp_server.py text
# 执行JS
python xbrowser_mcp_server.py eval "document.title"Métodos de conexión
Conexión directa por LAN
POST http://192.168.1.5:8765/mcp
Content-Type: application/json
{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"xbrowser_status","arguments":{}}}Túnel ADB (si la LAN no funciona)
adb forward tcp:8765 tcp:8765
# 然后访问 http://127.0.0.1:8765/mcpLista de herramientas
I. Herramientas básicas (8)
Herramienta | Parámetros | Descripción |
xbrowser_status | ninguno | Devuelve {running, port, webview} |
xbrowser_tab_info | ninguno | Devuelve la pestaña actual {title, url, mbrowser} |
xbrowser_eval_js | expression | Ejecuta cualquier JavaScript |
xbrowser_get_html | ninguno | Devuelve el código fuente HTML de la página |
xbrowser_get_text | ninguno | Devuelve el texto visible de la página |
xbrowser_bridge_methods | ninguno | Enumera los nombres de los 404 métodos puente |
xbrowser_navigate | url | Navega a la URL especificada |
xbrowser_reload | ninguno | Recarga la página actual |
II. Herramientas avanzadas encapsuladas (27)
Cada herramienta distingue suboperaciones mediante el parámetro action, incluyendo: información del sistema, tema de UI, diálogos emergentes, portapapeles, búsqueda, gestión de UA, proxy, modo lectura, medios/TTS, gestión de descargas, gestión de archivos, marcadores, cuentas, VIP, autocompletado, políticas del sitio, privacidad, gestión de pestañas, gestos, eventos, escaneo QR, compartir, zoom, seguridad, scripts de usuario, herramientas de desarrollador, bloqueo de anuncios.
III. Herramientas de métodos puente (404)
Regla de nomenclatura: xbridge_<nombre del método>, los parámetros se pasan en orden como p1, p2, p3...
Métodos puente comunes disponibles:
xbridge_getVersionCode -> número de versión
xbridge_getBrowserInfoObj -> información del navegador
xbridge_inChina -> si está en China
xbridge_GM_cookie_list(p1,p2,p3,p4) -> lista las cookies (incluyendo httpOnly)
xbridge_getFaviconURI(p1) -> obtiene el icono del sitio web
xbridge_getElementRules(p1) -> obtiene las reglas de filtrado de anuncios
xbridge_getSniffMediaResource -> detecta recursos multimedia
xbridge_TTS(p1) -> lectura por voz del texto
Notas sobre la verificación de seguridad
Aproximadamente 1/4 de los métodos puente están protegidos por la verificación de seguridad X8.p(), que solo permite su invocación en las siguientes páginas:
Páginas de protocolo interno x:// (como x://settings)
Páginas de configuración file:///android_asset/
Dominio xbext.com
Solución: primero ejecutar xbrowser_navigate("x://settings") y luego invocar los métodos restringidos.
Conocimiento de modificación de APK
Cadena de herramientas
# 编译 Java
javac -cp /opt/android-sdk/platforms/android-34/android.jar -d out com/mmbox/xbrowser/XBrowserMcpServer.java
# 转换为 DEX
java -cp /opt/android-sdk/build-tools/35.0.0/lib/d8.jar com.android.tools.r8.D8 \
--output dex_out --lib /opt/android-sdk/platforms/android-34/android.jar \
out/com/mmbox/xbrowser/*.class
# 反编译 DEX
java -cp /usr/share/java/baksmali.jar:... org.jf.baksmali.Main \
disassemble -o smali_out dex_out/classes.dex
# 打包 APK
apktool b $DECODED_DIR -o output.apk
# 签名
java -jar /opt/android-sdk/build-tools/35.0.0/lib/apksigner.jar sign \
--ks /tmp/debug.keystore --ks-pass pass:android \
--out signed.apk unsigned.apk
# 安装
adb install -r signed.apkPuntos de modificación
Browser.smali -> inyectar en onCreate() getInstance() -> setContext() -> start()
Of.smali -> inyectar en el constructor getInstance() -> registerWebView(webView)
X8.smali -> añadir los métodos puente enableMcpServer(boolean) e isMcpServerEnabled()
assets/settings/general-setting.html -> inyectar la interfaz de interruptor MCP + JS
Problemas conocidos
Problema | Causa | Solución |
requests.post(json=...) falla | jsonGetString del servidor no soporta espacios | Usar data= para pasar JSON + separators |
Puerto 8765 ocupado | Residuo del antiguo Python MCP | pkill -f xbrowser_mcp y luego reiniciar |
Se corta la conexión directa por LAN | El puerto de depuración inalámbrica ha expirado | Reiniciar el navegador o restablecer el reenvío ADB |
Estructura del proyecto
xbrowser_controller/
├── README.md # 项目说明
├── LICENSE # MIT 许可证
├── xbrowser_mcp_server.py # MCP 服务器客户端核心代码
├── skills.json # 技能定义(8个预置工具)
├── requirements.txt # Python 依赖
└── .gitignoreDefinición de habilidades
skills.json contiene las definiciones completas de las 8 herramientas preconfiguradas, integrables directamente en sistemas de Agente IA:
Consultar el estado del navegador X
Navegación en el navegador X
Búsqueda en el navegador X
Leer el contenido de la página del navegador X
Obtener cookies del navegador X
Obtener información del navegador X
Ejecutar JS en el navegador X
Lectura por voz en el navegador X
Avisos
Esta herramienta se utiliza únicamente para investigación de seguridad legal y aprendizaje
La ingeniería inversa y la modificación de APK deben cumplir con las leyes y regulaciones aplicables
Cualquier consecuencia derivada del uso de esta herramienta es responsabilidad del usuario
Licencia
Licencia MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Stealth web browser for agents: search, fetch, click, download and type in persistent MCP sessions.
Official Browserless MCP server: browser automation, scraping, screenshots and PDFs for AI agents.
Web scraping, browser automation, screenshots and AI data extraction for AI agents via MCP.
MCP server to assist with JxBrowser development.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceMCP server for browser automation, exposing tools for tab management, navigation, CDP, action plans, and cleanup.1,098 npm414MIT
- AlicenseNot gradedqualityDmaintenanceA browser automation MCP server providing 30 tools for navigation, interaction, page information, state checks, tab management, and more, enabling natural language control of browsers via MCP-compatible clients.MIT
- AlicenseNot gradedqualityDmaintenanceStandalone browser automation MCP server supporting both BrowserOS and standard Chrome. Enables 16 MCP tools for browser control including navigation, interaction, and content extraction.23 npmMIT

sendblue-browserofficial
AlicenseNot gradedqualityDmaintenanceMCP server that wraps sendblue-browser-use's HTTP API, providing tools to control a stealth-patched Chromium browser with persistent sessions, navigation, screenshots, and script execution.3MIT