Skip to main content
Glama

XBrowser Controller - X浏览器深度制御スキル

X浏览器(com.mmbox.xbrowser)の完全なリバースエンジニアリング理解、APK 改造能力、および内蔵 MCP サーバーを介したブラウザの直接制御能力。

404 個のネイティブブリッジメソッドの掌握、APK 改造能力、439 個の MCP ツールを備え、HTTP 経由で X浏览器 を直接操作可能です。

機能特性

  • MCP HTTP サーバーを介して X浏览器 を直接制御

  • 8 個の基本ツール:状態確認、タブ情報、JS実行、HTML取得、テキスト取得、ブリッジメソッド列挙、ナビゲーション、リロード

  • 27 個の応用ラッパーツール:システム情報、UIテーマ、ポップアップ、クリップボード、検索、UA管理、プロキシ、リーダーモード、メディア/TTS、ダウンロード管理、ファイル管理、ブックマーク、アカウント、VIP、フォーム、サイトポリシー、プライバシー、タブ管理、ジェスチャー、イベント、QRスキャン、共有、ズーム、セキュリティ、ユーザースクリプト、開発者ツール、広告ブロック

  • 404 個のネイティブブリッジメソッドの直接呼び出し対応

  • LAN直結とADBのトンネルの2つの接続方式に対応

  • AIエージェントシステムに直接組み込み可能なスキル定義ファイル

Related MCP server: MCP Browser Server

前提条件

  1. X浏览器拡張版APK(内蔵 MCP HTTPサーバー、ポート8765)

  2. Python 3.8+

  3. ネットワーク接続(LAN または ADB)

クイックスタート

1. 依存関係のインストール

pip install -r requirements.txt

2. X浏览器 MCP サーバーの起動

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"

接続方法

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

ADBトンネル(LANが不通の場合)

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

ツール一覧

一、基本ツール(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個のブリッジメソッド名を列挙

xbrowser_navigate

url

指定した URL に移動

xbrowser_reload

なし

現在のページを再読み込み

二、高度なラッパーツール(27個)

各ツールは action パラメータでサブ操作を区別します。対応する機能:システム情報、UIテーマ、ポップアップ、クリップボード、検索、UA管理、プロキシ、リーダーモード、メディア/TTS、ダウンロード管理、ファイル管理、ブックマーク、アカウント、VIP、自動入力、サイトポリシー、プライバシー、タブ管理、ジェスチャー、イベント、QRスキャン、共有、ズーム、セキュリティ、ユーザースクリプト、開発者ツール、広告ブロック。

三、ブリッジメソッドツール(404個)

命名規則:xbridge_<メソッド名>。パラメータは順番に p1, p2, p3... を渡します。

利用可能な一般的なブリッジメソッド:

  • xbridge_getVersionCode -> バージョン番号

  • xbridge_getBrowserInfoObj -> ブラウザ情報

  • xbridge_inChina -> 中国かどうか

  • xbridge_GM_cookie_list(p1,p2,p3,p4) -> Cookie の一覧(httpOnly を含む)

  • xbridge_getFaviconURI(p1) -> サイトアイコンの取得

  • xbridge_getlementRules(p1) -> 要素の取得(広告 Bradley rule)

  • xbridge_getMediaResource -> メディアリソースの探索

  • xbridge_TTS(p1) -> テキストの音伝読み上げ

Hmm. Let me correct that part; I made an error above. Should be:

  • xbridge_getElementRules(p1) — > 広告フィルタールール取得

  • xbridge_getSniffMediaResource — > メディアリソースのスニッフィング

I will write correctly.

セキュリティ検証の説明

約4分の1のブリッジメソッドが 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 -> onCreate() に getInstance() -> setContext() -> start() を注入

  2. Of.smali -> コンストラクタに getInstance() -> registerWebView(webView) を注入

  3. X8.smali -> enableMcpServer(boolean) と isMcpServerEnabled() ブリッジメソッドを追加

  4. assets/settings/general-setting.html -> MCP スイッチ UI + JS を注入

既知の問題

問題

原因

解決策

requests.post(json=...) が失敗

サーバーの jsonGetString がスペースに対応していない

data= で JSON + separators を送る

ポート 8765 が占用中

旧 Python MCP プロセスが残留している

pkill -f xbrowser_mcp 後に再起動

LAN直結が切断

ワイヤレスデバッグポートが期限切れ

ブラウザを再起動 or 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浏览器の状態を確認する)

  • 导航 up X浏览器? (Correct this: The list items are already machine translated; I should not leave Chinese in final. Please note I'm writing final answer in Japanese only.)

注記

  • 本ツールは合法なセキュリティ研究と学習のみ使用に供します

  • リバースエンジニアリングおよび APK 改造は関連法規を遵守してください

  • 本ツールの使用により生じる一切の結果は使用者自身が責任を負います

ライセンス

MIT License

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