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 installed
Maintenance
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
- FlicenseAqualityCmaintenanceEnables 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.MIT
- FlicenseNot gradedqualityCmaintenanceLocal 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.
Related MCP Connectors
Browser MCP for logged-in tasks. Uses your Chrome — credentials stay local. Zero-token replay.
Operate Linux, macOS and Windows from your LLM. Every action runs through an auditable allowlist.
Stealth web browser for agents: search, fetch, click and type through persistent sessions over MCP.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/thenailedone/firefox-browser-control'
If you have feedback or need assistance with the MCP directory API, please join our Discord server