Skip to main content
Glama

Firefox DevTools MCP

npm version CI codecov License: MIT

Сервер протокола Model Context Protocol (MCP) для автоматизации Firefox через WebDriver BiDi (с использованием Selenium WebDriver). Работает с Claude Code, Claude Desktop, Cursor, Cline и другими MCP-клиентами.

Репозиторий: https://github.com/mozilla/firefox-devtools-mcp

Примечание: Этот MCP-сервер требует локальной установки браузера Firefox и не может работать на облачных хостингах, таких как glama.ai. Используйте npx firefox-devtools-mcp@latest для запуска локально или используйте Docker с предоставленным Dockerfile.

Требования

  • Node.js ≥ 20.19.0

  • Установленный Firefox 100+ (определяется автоматически или передается через --firefox-path)

Related MCP server: Firefox DevTools MCP

Установка и использование с Claude Code (npx)

Рекомендуется использовать npx, чтобы всегда запускать последнюю опубликованную версию из npm.

Вариант A — Claude Code CLI

claude mcp add firefox-devtools npx firefox-devtools-mcp@latest

Передавайте параметры как аргументы или переменные окружения. Примеры:

# Headless + viewport via args
claude mcp add firefox-devtools npx firefox-devtools-mcp@latest -- --headless --viewport 1280x720

# Or via environment variables
claude mcp add firefox-devtools npx firefox-devtools-mcp@latest \
  --env START_URL=https://example.com \
  --env FIREFOX_HEADLESS=true

Вариант B — Редактирование JSON-настроек Claude Code

Добавьте в файл конфигурации Claude Code:

  • macOS: ~/Library/Application Support/Claude/Code/mcp_settings.json

  • Linux: ~/.config/claude/code/mcp_settings.json

  • Windows: %APPDATA%\Claude\Code\mcp_settings.json

{
  "mcpServers": {
    "firefox-devtools": {
      "command": "npx",
      "args": ["-y", "firefox-devtools-mcp@latest", "--headless", "--viewport", "1280x720"],
      "env": {
        "START_URL": "about:home"
      }
    }
  }
}

Вариант C — Вспомогательный скрипт (локальная сборка для разработки)

npm run setup
# Choose Claude Code; the script saves JSON to the right path

Попробуйте с MCP Inspector

npx @modelcontextprotocol/inspector npx firefox-devtools-mcp@latest --start-url https://example.com --headless

Затем вызывайте инструменты, такие как:

  • list_pages, select_page, navigate_page

  • take_snapshot, затем click_by_uid / fill_by_uid

  • list_network_requests (постоянный захват), get_network_request

  • screenshot_page, list_console_messages

Параметры CLI

Вы можете передавать флаги или переменные окружения (имена справа):

  • --firefox-path — абсолютный путь к исполняемому файлу Firefox

  • --headless — запуск без графического интерфейса (FIREFOX_HEADLESS=true)

  • --viewport 1280x720 — начальный размер окна

  • --profile-path — использование определенного профиля Firefox

  • --firefox-arg — дополнительные аргументы Firefox (можно повторять)

  • --start-url — открыть этот URL при запуске (START_URL)

  • --accept-insecure-certs — игнорировать ошибки TLS (ACCEPT_INSECURE_CERTS=true)

  • --connect-existing — подключиться к уже запущенному Firefox вместо запуска нового (CONNECT_EXISTING=true)

  • --marionette-port — порт Marionette для режима подключения к существующему экземпляру, по умолчанию 2828 (MARIONETTE_PORT)

  • --pref name=value — установить настройки Firefox при запуске через moz:firefoxOptions (можно повторять)

  • --enable-script — включить инструмент evaluate_script, который выполняет произвольный JavaScript в контексте страницы (ENABLE_SCRIPT=true)

  • --enable-privileged-context — включить инструменты привилегированного контекста: список/выбор привилегированных контекстов, выполнение привилегированных скриптов, получение/установка настроек Firefox и список расширений. Требует MOZ_REMOTE_ALLOW_SYSTEM_ACCESS=1 (ENABLE_PRIVILEGED_CONTEXT=true)

Примечание о --pref: Когда Firefox работает в режиме автоматизации, он применяет RecommendedPreferences, которые изменяют поведение браузера для тестирования. Параметр --pref позволяет при необходимости переопределить эти значения по умолчанию.

Подключение к существующему Firefox

Используйте --connect-existing для автоматизации вашего реального сеанса просмотра — с сохранением файлов cookie, авторизаций и открытых вкладок:

# Start Firefox with Marionette enabled
firefox --marionette

# Run the MCP server
npx firefox-devtools-mcp --connect-existing --marionette-port 2828

Или установите marionette.enabled в true в about:config (или user.js), чтобы включать Marionette при каждом запуске.

Функции, зависящие от BiDi (события консоли, события сети), недоступны в режиме подключения к существующему экземпляру; все остальные функции работают в обычном режиме.

Внимание: Не оставляйте Marionette включенным во время обычного просмотра веб-страниц. Он устанавливает navigator.webdriver = true и изменяет другие сигналы отпечатков браузера, что может вызвать срабатывание защиты от ботов на сайтах, защищенных Cloudflare, Akamai и т. д. Включайте Marionette только тогда, когда вам нужна автоматизация MCP, а затем перезапускайте Firefox в обычном режиме.

Обзор инструментов

  • Страницы: список/новая/переход/выбор/закрыть

  • Снимок/UID: сделать/разрешить/очистить

  • Ввод: клик/наведение/заполнение/перетаскивание/загрузка файла/заполнение формы

  • Сеть: список/получить (по ID, фильтры, постоянный захват)

  • Консоль: список/очистить

  • Скриншот: страницы/по UID (с необязательным saveTo для сред CLI)

  • Скрипт: evaluate_script

  • Привилегированный контекст: список/выбор привилегированных ("chrome") контекстов, evaluate_privileged_script (требует MOZ_REMOTE_ALLOW_SYSTEM_ACCESS=1)

  • WebExtension: install_extension, uninstall_extension, list_extensions (список требует MOZ_REMOTE_ALLOW_SYSTEM_ACCESS=1)

  • Управление Firefox: get_firefox_info, get_firefox_output, restart_firefox, set_firefox_prefs, get_firefox_prefs

  • Утилиты: принять/отклонить диалог, история назад/вперед, установить размер окна

Оптимизация скриншотов для Claude Code

При использовании скриншотов в Claude Code CLI данные изображения в формате base64 могут занимать значительный объем контекста. Используйте параметр saveTo для сохранения скриншотов на диск:

screenshot_page({ saveTo: "/tmp/page.png" })
screenshot_by_uid({ uid: "abc123", saveTo: "/tmp/element.png" })

Файл можно просмотреть с помощью инструмента Read в Claude Code, не влияя на размер контекста.

Локальная разработка

npm install
npm run build

# Run with Inspector against local build
npx @modelcontextprotocol/inspector node dist/index.js --headless --viewport 1280x720

# Or run in dev with hot reload
npm run inspector:dev

Тестирование

npm run test:run          # all tests once (unit + integration)
npm test                  # watch mode

См. docs/testing.md для получения полной информации о запуске конкретных наборов тестов, покрытии сценариев e2e и известных проблемах.

Устранение неполадок

  • Firefox не найден: передайте --firefox-path "/Applications/Firefox.app/Contents/MacOS/firefox" (macOS) или правильный путь для вашей ОС.

  • Первый запуск медленный: Selenium настраивает сеанс BiDi; последующие запуски будут быстрее.

  • Устаревшие UID после навигации: сделайте новый снимок (take_snapshot) перед использованием инструментов UID.

  • Windows 10: Ошибка при обнаружении MCP-сервера 'firefox-devtools': MCP error -32000: Connection closed

    • Решение 1 Оберните с помощью cmd /c (подробности):

      "mcpServers": {
        "firefox-devtools": {
          "command": "cmd",
          "args": ["/c", "npx", "-y", "firefox-devtools-mcp@latest"]
        }
      }
    • Решение 2 Используйте абсолютный путь к npx (настройте расширение — .cmd, .bat, .exe или .ps1 — в соответствии с вашей настройкой):

      "mcpServers": {
        "firefox-devtools": {
          "command": "C:\\nvm4w\\nodejs\\npx.ps1",
          "args": ["-y", "firefox-devtools-mcp@latest"]
        }
      }

Версионирование

  • API до версии 1.0: версии начинаются с 0.x. Используйте @latest с npx для получения последнего релиза.

CI и релизы

  • Включены GitHub Actions для CI, релизов и публикации в npm. Подробности и необходимые секреты см. в docs/ci-and-release.md.

Проблемы и участие в разработке

Проблемы отслеживаются на Bugzilla в разделе product: Developer Infrastructure, component: AI for Development.

Для вопросов и обсуждений присоединяйтесь к Matrix-комнате #firefox-devtools-mcp.

Автор

Поддерживается Mozilla.

Install Server
F
license - not found
B
quality
A
maintenance

Maintenance

Maintainers
Response time
1wRelease cycle
36Releases (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

  • F
    license
    B
    quality
    A
    maintenance
    Automates Firefox via WebDriver BiDi for browser control, including navigation, screenshot, network capture, and script execution, using natural language through MCP clients.
    Last updated
    32
    2,155
    327
  • A
    license
    A
    quality
    A
    maintenance
    Drive Firefox-based browsers (Floorp, LibreWolf, Zen, Waterfox, Mullvad, Firefox) from any MCP client — read pages, screenshot, click, fill forms and manage tabs in your real session, over Marionette/WebDriver. OS input & JS eval locked by default.
    Last updated
    41
    52
    1
    MIT

View all related MCP servers

Related MCP Connectors

  • Hosted real Google Chrome MCP with per-user persistent state. Navigate, click, type, screenshot.

  • Automate cloud browsers to navigate websites, interact with elements, and extract structured data.…

  • AI-powered browser automation — navigate, click, fill forms, and extract data from any website.

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/mozilla/firefox-devtools-mcp'

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