firefox-browser-control
Firefox Browser Control for Codex
Управляйте уже открытой сессией Firefox прямо из Codex. Плагин умеет перечислять и упорядочивать неприватные вкладки, создавать нативные группы вкладок, а также безопасно открывать, активировать, переходить по адресам и закрывать вкладки.
Расширение Firefox и его мост работают локально: без TCP-слушателя, телеметрии, рекламы и прямых сетевых запросов со стороны расширения. Данные браузера, запрошенные пользователем, передаются только в настроенное для него окружение Codex; см. политику конфиденциальности.
Возможности
Проверять, подключено ли сопутствующее расширение Firefox.
Перечислять вкладки и нативные группы вкладок.
Группировать выбранные вкладки или группировать вкладки по совпадению URL/заголовка.
Разгруппировывать, открывать, активировать, переходить по адресам и закрывать вкладки.
Плагин намеренно не может читать содержимое страниц, кликать по элементам, заполнять формы, изучать приватные окна или переходить на адреса, отличные от HTTP(S).
Примеры команд:
«Сгруппируй мои открытые вкладки Gmail в Firefox».
«Покажи список моих открытых вкладок 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, когда оно станет доступно. Во время разработки временно загружайте plugins/firefox-browser-control/extension/manifest.json из about:debugging#/runtime/this-firefox. Затем запустите новую задачу Codex.
Как это работает
Реализация — это локальный мост из четырёх частей:
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.Вызову инструмента присваивается случайный идентификатор запроса, и он передаётся через локальный Unix-сокет.
scripts/native-host.mjsретранслирует запрос через протокол native messaging Firefox с префиксом длины.extension/background.jsвыполняет запрошенную операцию через Firefox WebExtension API и возвращает результат по тому же пути.
Нативный хост удерживает сокет, пока подключено расширение Firefox. MCP-сервер создаёт короткоживущее соединение с сокетом для каждого вызова инструмента, поэтому за пределами Firefox фоновый демон не требуется.
Почему используется два протокола
Codex общается по Model Context Protocol через stdio, а расширения Firefox общаться со локальными программами могут только через native messaging. Небольшая ретрансляционная часть на Unix-сокете соединяет эти окружения, не открывая TCP-порт и не выводя браузер в сеть.
Теблица инструментов
Инструмент | Назначение |
| Подтверждает, что расширение и нативный мост подключены. |
| Возвращает идентификаторы вкладок, очищенные origins, окна и идентификаторы групп. |
| Выводит идентификаторы нативных tab-групп Firefox и состояние их отображения. |
| Помещает явно заданные идентификаторы вкладок в группу с именем. |
| Находит вкладки по URL/заголовоку и группирует их по окнам. |
| Убирает вкладки из их текущей группы. |
| Открывает URL. |
| Переходит на другой адрес в выбранной вкладке. |
| Фокусирует вкладку и её окно. |
| Закрывает выбранные вкладки. |
Модель безопасности
Мост слушает Unix-сокет, а не сетевой порт.
Сокет ограничен текущим пользователем операционной системы (режим
0600).Firefox принимает native-сообщения только от идентификатора расширения, объявленного установщиком.
Вкладки из приватных окон невидимы для расширения.
Полные URL, URL-параметры и фрагменты, заголовки страниц и содержимое страниц не возвращаются в Codex; результаты выдачи вкладок содержат только origins.
MCP-сервер применяет явные JSON-схемы и фиксированное соответствие «инструмент → метод».
Запросы завершаются по таймауту через десять секунд.
Расширение выполняет только методы вкладок из своего фиксированного диспетчера и ограничивает навигацию адресами HTTP(S) и
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:extensionZIP записывается в artifacts/. Описание для магазина, инструкции для ревьюеров и чек-лист отправки находятся в store/AMO_SUBMISSION.md.
После изменения расширения используйте Перезагрузить рядом с временным дополнением в about:debugging. После изменения метаданных плагина, скилла или MCP-сервера переустановите плагин и запустите новую задачу Codex.
Ограничения
Расширение без подписи, поэтому после перезапуска Firefox его нужно загружать заново.
Автоматическая установка нативного хоста сейчас поддерживает Linux и macOS.
Ретранслятор сейчас использует Unix-сокеты и не поддерживает нативную Windows.
Расширению требуются Node.js, нативный хост и либо Codex, либо автономный проверочный клиент.
Это независимая интеграция сообщества; она не аффилирована с Mozilla или OpenAI и не одобрена ими.
Лицензия
This server cannot be deployed
Maintenance
Related MCP Connectors
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.
Work on your own computers from Claude or ChatGPT: run commands, edit and search files.
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 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.-