Skip to main content
Glama
thenailedone

firefox-browser-control

by thenailedone

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 profile
  1. Codex обнаруживает .mcp.json в манифесте плагина и запускает scripts/mcp-server.mjs.

  2. MCP-сервер предоставляет инструменты со строгим описанием, например firefox_list_tabs и firefox_group_tabs.

  3. Вызову инструмента присваивается случайный идентификатор запроса, и он передаётся через локальный Unix-сокет.

  4. scripts/native-host.mjs ретранслирует запрос через протокол native messaging Firefox с префиксом длины.

  5. extension/background.js выполняет запрошенную операцию через Firefox WebExtension API и возвращает результат по тому же пути.

Нативный хост удерживает сокет, пока подключено расширение Firefox. MCP-сервер создаёт короткоживущее соединение с сокетом для каждого вызова инструмента, поэтому за пределами Firefox фоновый демон не требуется.

Почему используется два протокола

Codex общается по Model Context Protocol через stdio, а расширения Firefox общаться со локальными программами могут только через native messaging. Небольшая ретрансляционная часть на Unix-сокете соединяет эти окружения, не открывая TCP-порт и не выводя браузер в сеть.

Теблица инструментов

Инструмент

Назначение

firefox_status

Подтверждает, что расширение и нативный мост подключены.

firefox_list_tabs

Возвращает идентификаторы вкладок, очищенные origins, окна и идентификаторы групп.

firefox_list_groups

Выводит идентификаторы нативных tab-групп Firefox и состояние их отображения.

firefox_group_tabs

Помещает явно заданные идентификаторы вкладок в группу с именем.

firefox_group_tabs_by_url

Находит вкладки по URL/заголовоку и группирует их по окнам.

firefox_ungroup_tabs

Убирает вкладки из их текущей группы.

firefox_open_tab

Открывает URL.

firefox_navigate_tab

Переходит на другой адрес в выбранной вкладке.

firefox_activate_tab

Фокусирует вкладку и её окно.

firefox_close_tabs

Закрывает выбранные вкладки.

Модель безопасности

  • Мост слушает 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:extension

ZIP записывается в artifacts/. Описание для магазина, инструкции для ревьюеров и чек-лист отправки находятся в store/AMO_SUBMISSION.md.

После изменения расширения используйте Перезагрузить рядом с временным дополнением в about:debugging. После изменения метаданных плагина, скилла или MCP-сервера переустановите плагин и запустите новую задачу Codex.

Ограничения

  • Расширение без подписи, поэтому после перезапуска Firefox его нужно загружать заново.

  • Автоматическая установка нативного хоста сейчас поддерживает Linux и macOS.

  • Ретранслятор сейчас использует Unix-сокеты и не поддерживает нативную Windows.

  • Расширению требуются Node.js, нативный хост и либо Codex, либо автономный проверочный клиент.

  • Это независимая интеграция сообщества; она не аффилирована с 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