firefox-browser-control
Firefox Browser Control for Codex
Codex から、すでに開いている Firefox のセッションを操作できます。このプラグインは、非プライベートなタブを一覧表示して整理したり、ネイティブのタブグループを作成したり、タブを安全に開く、アクティブ化する、移動する、閉じるといった操作を実行できます。
Firefox 拡張機能とそのブリッジはローカルで実行され、TCP リスナー、テレメトリ、広告、拡張機能による直接のネットワークリクエストは一切ありません。ユーザーが要求したブラウザデータは、そのユーザーが設定した Codex 環境に渡されます。プライバシーポリシー を参照してください。
できること
Firefox コンパニオン拡張機能が接続されているか確認する。
タブとネイティブのタブグループを一覧表示する。
選択したタブをグループ化する、または URL/タイトルの一致でタブをグループ化する。
タブのグループ解除、開く、アクティブ化、移動、閉じるを実行する。
ページコンテンツの読み取り、要素のクリック、フォームへの入力、プライベートウィンドウの検査、HTTP(S) 以外の URL への移動は、意図的に実行できません。
プロンプトの例:
“Firefox で開いている Gmail のタブをグループ化して。”
“開いている Firefox のタブを一覧表示して。”
“プロジェクトのドキュメントを新しい Firefox タブで開いて。”
Related MCP server: universal-browser-bridge
インストール
詳細なセットアップは plugins/firefox-browser-control/INSTALL.md を参照してください。かんたんに言うと:
git clone https://github.com/thenailedone/firefox-browser-control.git
cd firefox-browser-control
codex plugin marketplace add "$PWD"
codex plugin add firefox-browser-control@firefox-browser-control
node plugins/firefox-browser-control/scripts/install-native-host.mjs利用可能になったら、Mozilla Add-ons から署名済み拡張機能をインストールします。開発中は、about:debugging#/runtime/this-firefox から plugins/firefox-browser-control/extension/manifest.json を一時的に読み込みます。その後、新しい Codex タスクを開始します。
仕組み
実装は 4 つの部分からなるローカルブリッジです:
Codex
│ MCP over stdio
▼
MCP server (Node.js)
│ newline-delimited JSON over a user-only Unix socket
▼
Firefox native-messaging host (Node.js)
│ Firefox native messaging over stdin/stdout
▼
Firefox WebExtension
│ WebExtension APIs
▼
Non-private tabs and tab groups in the running Firefox profileCodex がプラグインマニフェストから
.mcp.jsonを検出し、scripts/mcp-server.mjsを起動します。MCP サーバーは、
firefox_list_tabsやfirefox_group_tabsのような厳密に定義されたツールを公開します。ツール呼び出しにはランダムなリクエスト ID が割り当てられ、ローカルの Unix ソケット経由で送信されます。
scripts/native-host.mjsは、Firefox の長さプレフィックス方式のネイティブメッセージングプロトコルでそのリクエストを中継します。extension/background.jsは、Firefox WebExtension API を使って要求された操作を実行し、同じ経路で結果を返します。
ネイティブホストは、Firefox 拡張機能が接続されている間ソケットを保持します。MCP サーバーはツール呼び出しごとに短命なソケット接続を行うため、Firefox の外部にバックグラウンドデーモンを常駐させる必要はありません。
なぜ 2 つのプロトコルがあるのか
Codex は stdio 上で Model Context Protocol を話しますが、Firefox 拡張機能がローカルプログラムと通信できるのはネイティブメッセージングだけです。この小さな Unix ソケットリレーは、TCP ポートを開かず、ブラウザをネットワークにさらすこともなく、その 2 つの環境を接続します。
ツール一覧
Tool | Purpose |
| 拡張機能とネイティブブリッジが接続されていることを確認する。 |
| タブ ID、サニタイズされたオリジン、ウィンドウ、グループ ID を返す。 |
| Firefox のネイティブなタブグループ ID と表示状態を一覧表示する。 |
| 明示的なタブ ID を名前付きグループにまとめる。 |
| URL / タイトルでタブを照合し、ウィンドウごとにグループ化する。 |
| タブを現在のグループから外す。 |
| URL を開く。 |
| 選択したタブを移動する。 |
| タブとそのウィンドウにフォーカスを合わせる。 |
| 選択したタブを閉じる。 |
セキュリティモデル
ブリッジはネットワークポートではなく、Unix ソケットで待ち受けます。
ソケットは現在の OS ユーザーにのみ制限されます(
0600)。Firefox は、インストーラが宣言した拡張機能 ID からのみネイティブメッセージを受け付けます。
プライベートブラウジングのタブは拡張機能から見えません。
完全な URL、URL クエリ / フラグメント、ページタイトル、ページコンテンツは Codex には返されません。タブ一覧の結果にはオリジンのみが含まれます。
MCP サーバーは、明示的な JSON Schema と固定されたツールからメソッドへのマッピングを強制します。
リクエストは 10 秒後にタイムアウトします。
拡張機能は固定ディスパッチャ内のタブメソッドのみを実行し、移動は HTTP(S) URL と
about:blankに限定します。一時ディレクトリのフォールバックでは、ユーザーごとに
0700アクセス権のディレクトリを作成し、ソケットは0600になります。
拡張機能はウェブサイトのホスト権限を要求せず、直接のネットワークリクエストも行いません。ユーザーが Codex でタブ管理コマンドを実行したときだけ、サニタイズされたブラウジングアクティビティを送信します。
リポジトリ構成
.agents/plugins/marketplace.json Codex marketplace catalog
plugins/firefox-browser-control/
.codex-plugin/plugin.json Plugin metadata
.mcp.json MCP server launch configuration
extension/ Firefox WebExtension
scripts/mcp-server.mjs MCP tool server
scripts/native-host.mjs Firefox/native-socket relay
scripts/install-native-host.mjs Native-host installer
scripts/review-client.mjs Standalone reviewer test client
skills/control-firefox/SKILL.md Agent usage guidance開発
Node.js 20 以降でリポジトリのチェックを実行します:
npm testAMO 対応拡張機能のアーカイブをビルドします:
npm run build:extensionZIP は artifacts/ に出力されます。ストア掲載の説明文、レビューア向けの手順、提出チェックリストは store/AMO_SUBMISSION.md にあります。
拡張機能を変更したら、about:debugging の一時アドオンの横にある Reload を使ってください。プラグインのメタデータ、スキル、または MCP サーバーを変更したら、プラグインをインストールし直し、新しい Codex タスクを開始してください。
制限
拡張機能は署名されていないため、Firefox を再起動したら再度読み込む必要があります。
ネイティブホストの自動インストールは、現在 Linux と macOS に対応しています。
リレーは現在 Unix ソケットを使用しており、Windows ネイティブはサポートしていません。
拡張機能を使うには、Node.js とネイティブホスト、それに Codex またはスタンドアロンのレビュークライアントが必要です。
これは独立したコミュニティコミュニティ統合であり、Mozilla や OpenAI とは提携・関係ありません。
これは独立したコミュニティインテグレーションであり、Mozilla や OpenAI の関連団体ではなく、その推奨も受けていません。
ライセンス
This server cannot be deployed
Maintenance
Related MCP Connectors
Let AI agents observe and control Chrome tabs you explicitly share via Browse Bridge.
Use your Mac, Windows or Linux computer from ChatGPT, Claude or Codex: files, commands, documents.
Connect AI agents to your own Chrome with scoped access, approvals, and verified task results.
Securely control computers you explicitly pair through files, terminals, processes, screenshots, desktop UI/input, clipboard, browser automation, diagnostics, and document tools.
Related MCP Servers
- FlicenseAqualityDmaintenanceEnables Claude Code to inspect network traffic, query the DOM, read console logs, and capture WebSocket frames in Firefox.17-
- AlicenseNot gradedqualityBmaintenanceEnables MCP-compatible AI agents to securely control Chrome tabs via a local bridge, with explicit per-tab sharing and human approval for consequential actions.MIT
- AlicenseNot gradedqualityAmaintenanceEnables MCP-capable CLIs to operate real, already-logged-in Firefox tabs via a WebExtension and native messaging, without simulated input. Supports navigation, clicking, typing, reading, screenshots, and console/network capture with policy gating and frame awareness.2MIT
- FlicenseNot gradedqualityDmaintenanceLocal MCP server for Codex that provides on-demand, read-only access to Edge tabs and bookmarks, plus controlled interaction with agent-owned tabs. Requires manual activation via the browser extension and enforces a fail-closed security model.-