Firefox DevTools MCP
Сервер MCP (Model Context Protocol) для автоматизации Firefox через WebDriver BiDi (Selenium WebDriver). Работает с Claude Code, Claude Desktop, Cursor, Cline и другими MCP-клиентами.
Важно: Требуется локальная установка Firefox. Не работает в облачных сервисах (например, glama.ai). Запускайте через npx firefox-devtools-mcp@latest или Docker.
Требования
- Node.js ≥ 20.19.0
- Firefox 100+ (автоопределение или флаг
--firefox-path)
Установка и запуск
Через npx (рекомендуется)
# Claude Code CLI
claude mcp add firefox-devtools npx firefox-devtools-mcp@latest
# С опциями
claude mcp add firefox-devtools npx firefox-devtools-mcp@latest -- --headless --viewport 1280x720
# Или через переменные окружения
claude mcp add firefox-devtools npx firefox-devtools-mcp@latest \
--env START_URL=https://example.com \
--env FIREFOX_HEADLESS=true
Настройка в JSON (Claude Code)
Добавьте в mcp_settings.json:
{
"mcpServers": {
"firefox-devtools": {
"command": "npx",
"args": ["-y", "firefox-devtools-mcp@latest", "--headless", "--viewport", "1280x720"],
"env": {
"START_URL": "about:home"
}
}
}
}
Локальная разработка
npm install
npm run build
npx @modelcontextprotocol/inspector node dist/index.js --headless --viewport 1280x720
Параметры командной строки
| Флаг |
Переменная окружения |
Описание |
--firefox-path |
— |
Путь к бинарнику Firefox |
--headless |
FIREFOX_HEADLESS=true |
Без графического интерфейса |
--viewport 1280x720 |
— |
Размер окна |
--profile-path |
— |
Путь к профилю Firefox |
--firefox-arg |
— |
Дополнительные аргументы Firefox (повторяемый) |
--start-url |
START_URL |
URL при запуске |
--accept-insecure-certs |
ACCEPT_INSECURE_CERTS=true |
Игнорировать ошибки TLS |
--connect-existing |
CONNECT_EXISTING=true |
Подключиться к запущенному Firefox |
--marionette-port |
MARIONETTE_PORT |
Порт Marionette (по умолч. 2828) |
--pref name=value |
— |
Установить preference Firefox (повторяемый) |
--enable-script |
ENABLE_SCRIPT=true |
Включить evaluate_script |
--enable-privileged-context |
ENABLE_PRIVILEGED_CONTEXT=true |
Включить привилегированный контекст (требует MOZ_REMOTE_ALLOW_SYSTEM_ACCESS=1) |
Подключение к существующему Firefox
Используйте --connect-existing, чтобы автоматизировать текущую сессию (с куками, логинами, вкладками):
# Запустите Firefox с Marionette
firefox --marionette
# Запустите MCP-сервер
npx firefox-devtools-mcp --connect-existing --marionette-port 2828
Предупреждение: Не оставляйте Marionette включённым при обычном серфинге — он устанавливает navigator.webdriver = true, что может вызвать блокировку на сайтах с Cloudflare, Akamai и т.д. Включайте только для автоматизации, затем перезапускайте Firefox.
Ограничение: В режиме connect-existing недоступны функции, зависящие от BiDi (события консоли, сети).
Инструменты
- Страницы: создание, навигация, выбор, закрытие
- Снимки/UID: создание, разрешение, очистка
- Ввод: клик, наведение, заполнение, перетаскивание, загрузка файлов, заполнение форм
- Сеть: список, получение (ID-фильтр, постоянный захват)
- Консоль: список, очистка
- Скриншоты: страницы, по UID (с опцией
saveTo для CLI)
- Скрипты:
evaluate_script (требует --enable-script)
- Привилегированный контекст: список/выбор chrome-контекстов, выполнение скриптов (требует
MOZ_REMOTE_ALLOW_SYSTEM_ACCESS=1)
- WebExtension: установка, удаление, список расширений
- Управление Firefox: информация, вывод, перезапуск, preferences
- Утилиты: диалоги, история, viewport
Оптимизация скриншотов для Claude Code
Чтобы не тратить контекст на base64, сохраняйте скриншоты на диск:
screenshot_page({ saveTo: "/tmp/page.png" })
screenshot_by_uid({ uid: "abc123", saveTo: "/tmp/element.png" })
Файл можно открыть через Read-инструмент Claude Code.
Устранение неполадок
- Firefox не найден: укажите путь через
--firefox-path.
- Первый запуск медленный: Selenium настраивает BiDi-сессию; последующие запуски быстрее.
- Устаревшие UID после навигации: сделайте новый снимок (
take_snapshot).
- Windows 10: ошибка подключения: используйте
cmd /c:
{
"mcpServers": {
"firefox-devtools": {
"command": "cmd",
"args": ["/c", "npx", "-y", "firefox-devtools-mcp@latest"]
}
}
}
Или укажите полный путь к npx (например, C:\\nvm4w\\nodejs\\npx.cmd).
Версионирование
Версии 0.x — до стабилизации API. Используйте @latest для последней версии.
CI и релизы
GitHub Actions настроены для CI, релизов и публикации в npm. Подробнее — в docs/ci-and-release.md.
Автор
Поддерживается Mozilla.
Лицензия: MIT
Комментарии
Комментариев пока нет. Будьте первым.