firefox-devtools-mcp
Firefox DevTools MCP
Сервер протокола 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.jsonLinux:
~/.config/claude/code/mcp_settings.jsonWindows:
%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_pagetake_snapshot, затемclick_by_uid/fill_by_uidlist_network_requests(постоянный захват),get_network_requestscreenshot_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.
Maintenance
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
- AlicenseCqualityDmaintenanceProvides Firefox browser automation capabilities through Playwright, allowing control of Firefox from MCP-enabled applications with features for basic automation and advanced multi-tab debugging.Last updated2930MIT
- FlicenseBqualityAmaintenanceAutomates Firefox via WebDriver BiDi for browser control, including navigation, screenshot, network capture, and script execution, using natural language through MCP clients.Last updated322,155327
- AlicenseAqualityAmaintenanceDrive 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 updated41521MIT
- AlicenseBqualityCmaintenanceA local Firefox bridge for MCP agents that enables tab control, DOM interaction, mouse/keyboard actions, and screenshots.Last updated24MIT
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.
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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