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: InSite
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 installed
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 browser automation and web scraping by exposing Playwright tools through an HTTP-based MCP server. Users can navigate pages, interact with web elements, capture screenshots, and extract structured content using a persistent Chromium instance.MIT
- AlicenseNot gradedqualityDmaintenanceA comprehensive browser automation MCP server using Playwright, offering 50+ tools for page control, element interaction, content extraction, and more across multiple browser engines.231MIT
- AlicenseNot gradedqualityAmaintenanceMCP server for browser automation, exposing tools for tab management, navigation, CDP, action plans, and cleanup.645231MIT
- FlicenseNot 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.
Related MCP Connectors
Stealth web browser for agents: search, fetch, click and type through persistent sessions over MCP.
Access Kernel's cloud-based browsers and app actions via MCP (remote HTTP + OAuth).
Hosted real Google Chrome MCP with per-user persistent state. Navigate, click, type, screenshot.
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/xiaozhe7772222/xbrowser_controller'
If you have feedback or need assistance with the MCP directory API, please join our Discord server