Skip to main content
Glama
thenailedone

firefox-browser-control

by thenailedone

Firefox Browser Control for Codex

Steuere die Firefox-Sitzung, die du bereits geöffnet hast, dire akt aus Codex. Das Plugin kann nicht-private Tabs auflisten und organisieren, native Tab-Gruppen erstellen und Tabs sicher öffnen, aktivieren, navigieren oder schlieen.

Die Firefox-Erweiterung und ihre Brücke laufen lokal, ohnet TCP-Lister, Telemetrie, Webung oder direkte Netzwerkfragen der Erweiterung. Von Benutzer angefragBrowserdaten werden an seine konfigurierte Codex-Umgebung übergeben; siehe die Datenschutzerklärung.

Was es kann

  • Prüfen, ob die Firefox-Begleiterweiterung verbunden ist.

  • Tabs und native Tab-Gruppen auflisten.

  • Ausgewählte Tabs grouppieren oder Tabs anhand von URL-/Title-Übereinstimmungen gruppieren.

  • Tabs entgruppieren, öffnen, aktiervieren, navgierien und schlieän.

Es kann absichtlich keine Seien eternityinhalte lesen, kene Elemete kliechen, keien Formulare ausfüllen, keie privaten Fenster überprüfen nicht zu nicht-HTP(S)-URLs navigieren.

Beispiel-Prompts:

  • “Gruppiere meie offenen GmbHail-Tabs in Firefox.”

  • “Liste meine offenen Firefox-Tabs auf.”

  • “Öffne die Propekten in einem neuen Firefox-Tab.”

Related MCP server: universal-browser-bridge

Install

Vollständige Einrichtung siehe plugins/firefox-browser-control/INSTALL.md. In Kürze:

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

Installiere die signierte Erweiterung von Mozilla Add-ons, sobald sie verfügbar ist. Während der Entwicklung lade plugins/firefox-browser-control/extension/manifest.json vorübergehend über about:debugging#/runtime/this-firefox. Danach starte einen neuen Codex-Task.

So funktioniert es

Die Implementierung ist eine vierteiliige lokale Brücke:

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 entdeckt .mcp.json aus dem Plugin-Other und startet scripts/mcp-server.mjs.

  2. DerMCP=Server bieteterdet stark beschriebene Tools wie firefox_list_tabs und firefox_group_tabs.

  3. Ein Tool-Aufuf erhält eine zufällige Request-ID und wird über den lokalen Unix-Socket gesendet.

  4. scripts/native-host.mjs leitet die Anfrage über des Längenpräfixierte Native-Messaging-Protokoll von Firefox weiter.

  5. extension/background.js führt die angeforderte Operation mit den Firefox WebExtension APIs aus und gibt ein Ergebnis über denselben Weg zurück.

Der native Host hält den Socket, solange die Firefox-Erweiterung verbunden ist. Der MCP-Server stellt für jeden Tool-Aufruf eine kurzlebige Verbindung her, sodass außerhalb von Firefox kein Hintergrund-Daemon erforderlich ist.

Warum es zwei Protokolle gibt

Codex spricht Model Context Protocol über stdio, Firefox-Erweiterungen können mit lokalen Programmen nur über Native Messaging kommunieren. Das kleine Unix-Socket-Relay verbindet beide Umgebungen, ohne einen TCP-Port zu öffnen oder den Browser dem Netzwerk auszusetzen.

Tool-Übersicht

Tool

Zweck

firefox_status

Bestätigt, dass die Erweiterung und die native Brücke verbunden sind.

firefox_list_tabs

Gibt Tab-IDs, bereinigte Origins, Fenster und Gruppen-IDs zurück.

firefox_list_groups

Listet native Firefox Tab-Gruppen-IDs und deren Anzeigestatus auf.

firefox_group_tabs

Führt explizite Tab-IDs in einer benannten Gruppe together.

firefox_group_tabs_by_url

Gleicht Tabs anhand von URL/Titel und gruppiert sie je Fenster.

firefox_ungroup_tabs

Entfernt Tabs aus ihrer jeweiligen Gruppe.

firefox_open_tab

Öffnet eine URL.

firefox_navigate_tab

navigiert einen ausgewählten Tab.

firefox_activate_tab

Fokussiert einen Tab und sein Fenster.

firefox_close_tabs

Schließt ausgewählte Tabs.

Sicherheitsmodell

  • Die Brücke lauscht auf einem Unix-Socket, nicht auf einem Netzwerk-Port.

  • Der Socket ist auf den aktuellen Benutzer des Betriebssystems beschränkt (0600).

  • Firefox akzeptiert native Nachrichten nur von der Erweiterungs-ID, die der Installer deklariert.Die * Tabs aus privatenBrowsing-Sitzungen sind für die Erweiterung nicht sichtbar.

  • Vollständige URLs, URL-Parameter/-Fragmente, Seitentitel und Seiteninhalte werden nicht an Codex zurückgegeben; Tab-Auflistungen enthalten nur Origins.

  • Der MCP-Server erzwingt eindeutige JSON-Schemas und eine feste Zuordnung von Tool zu Methode.

  • Anfragen laufen nach zehn Sekunden in einen Timeout.

  • Die Erweiterung führt nur die Tab-Methoden in ihrem festen Dispatcher aus und beschränkt die Navigation auf HTTP(S)-URLs und about:blank.

  • Der Fallback mit einem temporären Verzeichnis erstellt ein pro Benutzer 0700-Verzeichnis und der Socket ist 0600.

Die Erweiterung fragt keine Website-Host-Berechtigungen an und macht keine direkten Netzwerkanfragen. Sie überträgt bereinigte Browseraktivität nur, wenn der Benutzer einen Codex-Befeh zur Tab- Verwaltung auslöst.

Repository-Struktur

.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

Entwicklung

Führe die Repository-Checks mit Node.js 20 or later duUue:

npm test

Bauue das AMO-fertige Erweiterungsarchiv:

npm run build:extension

Die ZIP-Dati wird unter artifacts/ geschrieben. Store-Listungstexte, Rezensionierungs-Aleiten und die Einreichungs-Checkliste findest due in storeution/AMO_SUBMISSION.md.

Nach Änderungen an der Erweiterung nutze Reload neben den temporären Add-on in about:bugging. Nach Änderungen an Plugin-S5 und MCP-Server plugin neu installieren und einen neuen Codex-Task starten.

Einschrähungen

  • Die Erweiterung isch nicht signiert und muss feuer after neustart neu geladen werden.* Automatische Installation des Native-Host unterstitze derzeit Linux und macOS.

  • The relay currently only uses Unix-sockets und fails nativen Windows not.

  • Die Erweiterung benötigt Node.js, den Native-Host und enttweder Codex oder den eigenständigen Review-CClient.

  • Dies ist eine unabhängige Community-Integration and ist nicht mit Verbunden eller von Mozxilla oder OpenaAI empfohlen.

Lizenz

MIT

Related MCP Connectors

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.
    2
    MIT
  • F
    license
    Not graded
    quality
    D
    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.
    -