Skip to main content
Glama

XBrowser Controller — навык глубокого управления браузером X

Полное обратное проектирование браузера X (com.mmbox.xbrowser), возможности модификации APK и прямого управления браузером через встроенный MCP-сервер.

Владение 404 нативными bridge-методами, возможностями модификации APK, 439 инструментами MCP, прямое управление браузером X через HTTP.

Возможности

  • Прямое управление браузером X через MCP HTTP-сервер

  • 8 базовых инструментов: запрос статуса, информация о вкладке, выполнение JS, получение HTML, получение текста, перечисление bridge-методов, навигация, обновление

  • 27 расширенных инструментов: системная информация, тема UI, всплывающие окна, буфер обмена, поиск, управление UA, прокси, режим чтения, медиа/TTS, менеджер загрузок, файловый менеджер, закладки, аккаунты, VIP, автозаполнение, политики сайтов, конфиденциальность, управление вкладками, жесты, события, QR-сканирование, шеринг, масштабирование, безопасность, пользовательские скрипты, инструменты разработчика, блокировка рекламы

  • Прямой вызов 404 нативных bridge-методов

  • Поддержка двух способов подключения: прямое подключение по локальной сети и ADB-туннель

  • Файл определения навыка, возможна прямая интеграция в систему AI-агентов

Related MCP server: MCP Browser Server

Предварительные требования

  1. Улучшенная версия APK браузера X (со встроенным MCP HTTP-сервером, порт 8765)

  2. Python 3.8+

  3. Сетевое подключение (локальная сеть или ADB)

Быстрый старт

1. Установка зависимостей

pip install -r requirements.txt

2. Запуск MCP-сервера браузера X

В улучшенной версии браузера X сервер автоматически прослушивает порт 8765 после запуска браузера.

Проверка работы MCP-сервера:

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. Использование 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. Использование из командной строки

# 查询状态
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"

Способы подключения

Прямое подключение по локальной сети

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":{}}}

ADB-туннель (если локальная сеть недоступна)

adb forward tcp:8765 tcp:8765
# 然后访问 http://127.0.0.1:8765/mcp

Список инструментов

1. Базовые инструменты (8)

Инструмент

Параметр

Описание

xbrowser_status

нет

Возвращает {running, port, webview}

xbrowser_tab_info

нет

Возвращает {title, url, mbrowser} текущей вкладки

xbrowser_eval_js

expression

Выполнение произвольного JavaScript

xbrowser_get_html

нет

Возвращает HTML-исходник страницы

xbrowser_get_text

нет

Возвращает видимый текст страницы

xbrowser_bridge_methods

нет

Перечисляет все 404 имени bridge-методов

xbrowser_navigate

url

Переход по указанному URL

xbrowser_reload

нет

Обновить текущую страницу

2. Расширенные инструменты (27)

Каждый инструмент различает подоперации через параметр action, включая: системная информация, тема UI, всплывающие окна, буфер обмена, поиск, управление UA, прокси, режим чтения, медиа/TTS, менеджер загрузок, файловый менеджер, закладки, аккаунты, VIP, автозаполнение, политики сайтов, конфиденциальность, управление вкладками, жесты, события, QR-сканирование, шеринг, масштабирование, безопасность, пользовательские скрипты, инструменты разработчика, блокировка рекламы.

3. Инструменты bridge-методов (404)

Правило именования: xbridge_<имя_метода>, параметры передаются по порядку как p1, p2, p3...

Часто используемые bridge-методы:

  • xbridge_getVersionCode -> номер версии

  • xbridge_getBrowserInfoObj -> информация о браузере

  • xbridge_inChina -> находится ли в Китае

  • xbridge_GM_cookie_list(p1,p2,p3,p4) -> список Cookie (включая httpOnly)

  • xbridge_getFaviconURI(p1) -> получить иконку сайта

  • xbridge_getElementRules(p1) -> получить правила фильтрации рекламы

  • xbridge_getSniffMediaResource -> перехват медиаресурсов

  • xbridge_TTS(p1) -> озвучивание текста

Примечания по проверке безопасности

Примерно 1/4 bridge-методов защищена проверкой безопасности X8.p() и может вызываться только на следующих страницах:

  • Внутренние страницы протокола x:// (например, x://settings)

  • Страницы настроек file:///android_asset/

  • Домен xbext.com

Решение: сначала выполнить xbrowser_navigate("x://settings"), затем вызывать ограниченные методы.

Знания по модификации APK

Инструментарий

# 编译 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

Точки модификации

  1. Browser.smali -> внедрить getInstance() -> setContext() -> start() в onCreate()

  2. Of.smali -> внедрить getInstance() -> registerWebView(webView) в конструктор

  3. X8.smali -> добавить bridge-методы enableMcpServer(boolean) и isMcpServerEnabled()

  4. assets/settings/general-setting.html -> внедрить переключатель MCP UI + JS

Известные проблемы

Проблема

Причина

Решение

requests.post(json=...) не работает

сервер jsonGetString не поддерживает пробелы

использовать data= + разделители JSON

Порт 8765 занят

Остатки старого Python MCP

pkill -f xbrowser_mcp, затем перезапуск

Обрыв прямого подключения по ЛВС

Истёк срок действия порта беспроводной отладки

Перезапустить браузер или пересоздать ADB forward

Структура проекта

xbrowser_controller/
├── README.md                  # 项目说明
├── LICENSE                    # MIT 许可证
├── xbrowser_mcp_server.py     # MCP 服务器客户端核心代码
├── skills.json                # 技能定义(8个预置工具)
├── requirements.txt           # Python 依赖
└── .gitignore

Определение навыка

skills.json содержит полные определения 8 предустановленных инструментов, возможна прямая интеграция в систему AI-агентов:

  • Запрос статуса браузера X

  • Навигация в браузере X

  • Поиск в браузере X

  • Чтение содержимого страницы браузера X

  • Получение Cookie браузера X

  • Получение информации о браузере X

  • Выполнение JS в браузере X

  • Озвучивание в браузере X

Примечания

  • Данный инструмент предназначен только для законных исследований и обучения

  • При обратном проектировании и модификации APK соблюдайте соответствующие законы и нормативные акты

  • Ответственность за любые последствия использования данного инструмента несёт пользователь

Лицензия

Лицензия MIT

Maintenance

ActivityStale
ResponsivenessNo recent community issues

Related MCP Connectors

Related MCP Servers

  • A
    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.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Standalone browser automation MCP server supporting both BrowserOS and standard Chrome. Enables 16 MCP tools for browser control including navigation, interaction, and content extraction.
    23 npm
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP 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.
    3
    MIT