Skip to main content
Glama

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

  1. APK mejorado del navegador X (con servidor MCP HTTP integrado, puerto 8765)

  2. Python 3.8+

  3. Conexión de red (LAN o ADB)

Inicio rápido

1. Instalar dependencias

pip install -r requirements.txt

2. 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/mcp

Lista 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.apk

Puntos de modificación

  1. Browser.smali -> inyectar en onCreate() getInstance() -> setContext() -> start()

  2. Of.smali -> inyectar en el constructor getInstance() -> registerWebView(webView)

  3. X8.smali -> añadir los métodos puente enableMcpServer(boolean) e isMcpServerEnabled()

  4. 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 依赖
└── .gitignore

Definició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

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables 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
  • A
    license
    Not graded
    quality
    D
    maintenance
    A comprehensive browser automation MCP server using Playwright, offering 50+ tools for page control, element interaction, content extraction, and more across multiple browser engines.
    23
    1
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    A 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.

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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