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: InSite

前提条件

  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

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