Skip to main content
Glama
thenailedone

firefox-browser-control

by thenailedone

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 profile
  1. Codex がプラグインマニフェストから .mcp.json を検出し、scripts/mcp-server.mjs を起動します。

  2. MCP サーバーは、firefox_list_tabsfirefox_group_tabs のような厳密に定義されたツールを公開します。

  3. ツール呼び出しにはランダムなリクエスト ID が割り当てられ、ローカルの Unix ソケット経由で送信されます。

  4. scripts/native-host.mjs は、Firefox の長さプレフィックス方式のネイティブメッセージングプロトコルでそのリクエストを中継します。

  5. extension/background.js は、Firefox WebExtension API を使って要求された操作を実行し、同じ経路で結果を返します。

ネイティブホストは、Firefox 拡張機能が接続されている間ソケットを保持します。MCP サーバーはツール呼び出しごとに短命なソケット接続を行うため、Firefox の外部にバックグラウンドデーモンを常駐させる必要はありません。

なぜ 2 つのプロトコルがあるのか

Codex は stdio 上で Model Context Protocol を話しますが、Firefox 拡張機能がローカルプログラムと通信できるのはネイティブメッセージングだけです。この小さな Unix ソケットリレーは、TCP ポートを開かず、ブラウザをネットワークにさらすこともなく、その 2 つの環境を接続します。

ツール一覧

Tool

Purpose

firefox_status

拡張機能とネイティブブリッジが接続されていることを確認する。

firefox_list_tabs

タブ ID、サニタイズされたオリジン、ウィンドウ、グループ ID を返す。

firefox_list_groups

Firefox のネイティブなタブグループ ID と表示状態を一覧表示する。

firefox_group_tabs

明示的なタブ ID を名前付きグループにまとめる。

firefox_group_tabs_by_url

URL / タイトルでタブを照合し、ウィンドウごとにグループ化する。

firefox_ungroup_tabs

タブを現在のグループから外す。

firefox_open_tab

URL を開く。

firefox_navigate_tab

選択したタブを移動する。

firefox_activate_tab

タブとそのウィンドウにフォーカスを合わせる。

firefox_close_tabs

選択したタブを閉じる。

セキュリティモデル

  • ブリッジはネットワークポートではなく、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 test

AMO 対応拡張機能のアーカイブをビルドします:

npm run build:extension

ZIP は artifacts/ に出力されます。ストア掲載の説明文、レビューア向けの手順、提出チェックリストは store/AMO_SUBMISSION.md にあります。

拡張機能を変更したら、about:debugging の一時アドオンの横にある Reload を使ってください。プラグインのメタデータ、スキル、または MCP サーバーを変更したら、プラグインをインストールし直し、新しい Codex タスクを開始してください。

制限

  • 拡張機能は署名されていないため、Firefox を再起動したら再度読み込む必要があります。

  • ネイティブホストの自動インストールは、現在 Linux と macOS に対応しています。

  • リレーは現在 Unix ソケットを使用しており、Windows ネイティブはサポートしていません。

  • 拡張機能を使うには、Node.js とネイティブホスト、それに Codex またはスタンドアロンのレビュークライアントが必要です。

  • これは独立したコミュニティコミュニティ統合であり、Mozilla や OpenAI とは提携・関係ありません。

  • これは独立したコミュニティインテグレーションであり、Mozilla や OpenAI の関連団体ではなく、その推奨も受けていません。

ライセンス

MIT

A
license - permissive license
Not graded
quality - not tested
B
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
    B
    maintenance
    Enables 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
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables 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
  • F
    license
    Not graded
    quality
    C
    maintenance
    Local 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.

View all related MCP servers

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.

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/thenailedone/firefox-browser-control'

If you have feedback or need assistance with the MCP directory API, please join our Discord server