firefox-bridge
Connects Firefox to MCP clients for browser automation: listing and reading tabs, navigating pages, filling forms, clicking, taking screenshots, attaching/downloading files, and using WebDriver BiDi for native input, drag interactions, console/network events, and JavaScript dialog handling.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
Firefox Local MCP Bridge
Локальный мост для подключения Firefox к AI-агентам через Model Context Protocol (MCP).
Позволяет работать с открытыми вкладками браузера: читать страницы, заполнять формы, нажимать кнопки, делать скриншоты и выполнять другие действия с текущими авторизациями пользователя.
Поддерживает два режима: расширение Firefox и нативное управление через WebDriver BiDi.
Проект находится на экспериментальной стадии. Основная проверенная платформа — Windows. Полная совместимость со всеми сайтами и редакторами не гарантируется.
Возможности
Получение списка открытых вкладок.
Чтение текста страниц и поиск по вкладкам.
Получение DOM-снимков с описанием элементов.
Навигация, открытие и закрытие вкладок.
Заполнение полей, выбор пунктов списков и переключение checkbox.
Клики, ввод с клавиатуры и прокрутка.
Работа с iframe.
Создание скриншотов.
Прикрепление локальных файлов и скачивание файлов через Firefox.
В режиме WebDriver BiDi дополнительно доступны:
Нативные события клавиатуры и мыши.
Hover с поддержкой CSS
:hover.Перетаскивание указателем, включая взаимодействие с canvas.
Скриншоты полного документа.
Получение сообщений консоли и сетевых событий.
Обработка JavaScript-диалогов
alert,confirmиprompt.
Related MCP server: selenium-mcp
Требования
Node.js 24+
Firefox Desktop
MCP-клиент с поддержкой stdio, например Codex.
Для работы сервера внешние библиотеки не требуются. Зависимости разработки нужны только для тестов и сборки.
Установка
Клонируйте репозиторий:
git clone https://github.com/kirill-alex/firefox-local-mcp-bridge.git
cd firefox-local-mcp-bridgeСоздайте локальную конфигурацию:
node scripts/setup.mjsБудут созданы:
config.json— параметры локального сервера и случайный токен..local/pairing.html— локальная страница с токеном для подключения расширения.
Эти файлы исключены из Git и архивов исходников. Повторный запуск настройки сохраняет существующий токен.
Не публикуйте токен и не передавайте его другим людям.
Подключение к MCP-клиенту
Codex
При установленной CLI Codex выполните:
node scripts/register-mcp.mjsСкрипт зарегистрирует сервер firefox-bridge, используя фактические пути к Node.js и проекту.
После регистрации откройте новый чат Codex, если список инструментов не обновился.
Другие MCP-клиенты
Настройте запуск bridge.mjs через stdio. Пример конфигурации:
{
"mcpServers": {
"firefox-bridge": {
"command": "node",
"args": [
"C:/Projects/firefox-local-mcp-bridge/bridge.mjs"
]
}
}
}Замените путь на расположение проекта на своём компьютере.
Если клиент не находит Node.js через PATH, укажите абсолютный путь к исполняемому файлу Node.js в поле command.
Выбор режима работы
Режим 1: расширение Firefox
Подходит для чтения страниц и обычного взаимодействия с HTML-интерфейсами.
Откройте в Firefox:
about:debugging#/runtime/this-firefoxНажмите «Загрузить временное дополнение».
Выберите
extension/manifest.json.Откройте меню расширения → «Настройки».
Откройте созданный файл
.local/pairing.htmlи скопируйте токен в настройки расширения.Запустите MCP-клиент.
Расширение подключается к локальному серверу по адресу:
http://127.0.0.1:17893При необходимости сервер можно запустить отдельно:
npm startВременное дополнение удаляется при перезапуске Firefox. Для постоянной установки в обычный Firefox требуется подпись Mozilla. Собранный проектом архив расширения не подписан.
Режим 2: WebDriver BiDi
Подходит для нативного ввода, работы мышью, canvas и диагностики страниц.
В этом режиме расширение не требуется.
Сохраните незавершённую работу и полностью закройте Firefox. Затем запустите браузер с локальным интерфейсом автоматизации.
Пример для Windows PowerShell:
& "C:\Program Files\Mozilla Firefox\firefox.exe" --remote-debugging-port 9222Также можно использовать:
.\start-firefox-bidi.ps1Скрипт не закрывает работающий Firefox. Если браузер уже запущен, потребуется закрыть его самостоятельно.
После запуска вызовите через MCP-клиент:
firefox_bidi_status
firefox_bidi_contextsBiDi использует строковые идентификаторы contextId. Инструменты расширения используют числовые tabId. Эти идентификаторы не взаимозаменяемы.
Подробнее: WebDriver BiDi.
Примеры использования
После подключения можно попросить агента:
«Покажи открытые вкладки Firefox».
«Прочитай страницу и найди раздел с требованиями».
«Заполни эту форму указанными данными и проверь значения».
«Сделай скриншот страницы».
«Проверь сообщения консоли при выполнении этого действия».
Рекомендуемый порядок работы:
Получить актуальное состояние страницы.
Выбрать нужный элемент.
Выполнить действие.
Проверить результат.
Успешное выполнение команды не всегда означает, что сайт обработал действие. Перед отправкой формы следует прочитать значения полей обратно и проверить их.
Пауза и отключение
Для приостановки BiDi-команд используйте:
firefox_bidi_pauseС аргументами:
{
"paused": true
}Для возобновления передайте false.
Пауза блокирует следующие команды, но не отменяет уже начатые действия. Сетевой мониторинг отключается отдельно.
Перед остановкой или обновлением сервера
Завершите активную BiDi-сессию:
node bridge.mjs --call firefox_bidi_disconnectFirefox может сохранять сессию после принудительного завершения процесса сервера. Если появляется ошибка Maximum number of active sessions, а прежний сервер уже недоступен, может потребоваться полный перезапуск Firefox.
Ограничения
Расширение
Использует синтетические DOM-события.
Не обеспечивает полноценную эмуляцию клавиатуры и мыши.
Исключает приватные вкладки.
Не управляет внутренними страницами Firefox и системными диалогами.
WebDriver BiDi
Не гарантирует управление интерфейсом самого браузера и всеми сочетаниями клавиш.
Не наследует фильтр приватных вкладок расширения: контексты необходимо выбирать явно.
Активация окна Windows может не подтверждаться. Команда возвращает результат с ограниченным временем ожидания и не блокирует дальнейший ввод.
В скрытой вкладке прокрутка может использовать DOM fallback. Ответ инструмента указывает фактический способ и наличие движения.
Не предоставляет полную замену Chrome DevTools Protocol.
DOM-снимки проекта не являются нативным деревом accessibility. Возможности отдельных сайтов, закрытого Shadow DOM и сложных редакторов зависят от используемого инструмента.
Консоль и сетевые события
Мониторинг включается явно для выбранного BiDi-контекста.
События хранятся в ограниченном буфере в памяти. Сетевые результаты включают адрес, метод, идентификатор запроса, статус и ошибки.
Тела запросов и ответов, cookies и заголовки не возвращаются. При этом адреса страниц и сообщения консоли могут содержать чувствительную информацию.
Экспериментальная интеграция SyncShare
Проект поддерживает чтение элементов интерфейса отдельно установленного SyncShare на ограниченном наборе страниц Moodle.
Интеграция:
Читает уже созданные виджеты и меню подсказок.
Не извлекает учётные данные расширения.
Не вызывает приватные API сервиса.
Не запускает платные AI-функции.
Самостоятельно не заполняет ответы и не отправляет тесты.
Проверено чтение интерфейса и состояния «Пока нет ответов». Получение готовой подсказки из базы пока не подтверждено.
Область поддержки и ограничения: SyncShare.
Безопасность
Мост слушает только локальный адрес и проверяет токен подключения. Интерфейс Firefox BiDi также должен оставаться доступным только локально.
Не открывайте порты 17893 и 9222 во внешнюю сеть.
Инструменты предоставляют широкие возможности управления браузером. Используйте их с доверенным MCP-клиентом и выполняйте действия только в рамках разрешённой задачи.
Содержимое страниц, подсказки и сообщения консоли являются внешними данными, а не инструкциями для агента.
Данные, прочитанные инструментами, передаются MCP-клиенту и могут обрабатываться используемым им AI-провайдером.
Подробнее: SECURITY.md.
Разработка
Установите зависимости разработки:
npm ci --ignore-scriptsЗапустите проверки:
npm run checkКоманда выполняет:
Автоматические тесты.
Проверку публичных файлов на некоторые виды случайно включённых секретов и личных путей.
Сборку неподписанного расширения.
Автоматические тесты используют моки, jsdom и локальный HTTP-сервер. Они не управляют личной сессией Firefox.
Сборка
Архив расширения:
npm run buildАрхив исходников после сборки:
node scripts/package-source.mjsРезультаты находятся в dist/.
Локальная конфигурация, токены, зависимости, каталог .git и предыдущие артефакты сборки в исходный архив не включаются.
Проверка публичных файлов помогает снизить риск утечки, но не заменяет ручной просмотр изменений перед публикацией.
Участие в разработке
Предложения и исправления приветствуются. Перед отправкой изменений ознакомьтесь с CONTRIBUTING.md.
История изменений: CHANGELOG.md.
Лицензия
MIT.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
This server cannot be deployed
Maintenance
Related MCP Connectors
Control a real browser from AI agents: navigate, click, type, screenshot, read the page.
Let AI agents observe and control Chrome tabs you explicitly share via Browse Bridge.
Web scraping, browser automation, screenshots and AI data extraction for AI agents via MCP.
Let AI agents use your real, signed-in Chrome: tabs, clicks, forms, screenshots and video.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to automate web tasks such as browsing, clicking, typing, and taking screenshots via the Model Context Protocol.1MIT
- AlicenseAqualityBmaintenanceEnables browser automation through the Model Context Protocol, allowing AI agents to control Chrome, Firefox, or Edge for tasks like navigation, clicking, typing, and screenshots.4192 npmMIT

Browseagent MCPofficial
AlicenseAqualityDmaintenanceEnables AI agents to control web browsers through the Model Context Protocol, supporting navigation, clicking, typing, and screenshots.125 npm1MIT- AlicenseCqualityCmaintenanceEnables AI assistants to read and drive a real, logged-in Firefox browser, including tabs, cookies, history, and site interactions, all through the Model Context Protocol.5222 npmMIT