freema/firefox-devtools-mcp

freema/firefox-devtools-mcp

от freema
MCP-сервер от Mozilla для автоматизации Firefox через WebDriver BiDi. Позволяет ИИ-агентам (Claude, Cursor) управлять браузером: навигация, скриншоты и работа с консолью/сетью. Полезен разработчика...

Firefox DevTools MCP

npm version CI codecov License: MIT License: Apache 2.0

Glama

Model Context Protocol server for automating Firefox via WebDriver BiDi (through Selenium WebDriver). Works with Claude Code, Claude Desktop, Cursor, Cline and other MCP clients.

Repository: https://github.com/mozilla/firefox-devtools-mcp

Note: This MCP server requires a local Firefox browser installation and cannot run on cloud hosting services like glama.ai. Use npx @mozilla/firefox-devtools-mcp@latest to run locally, or use Docker with the provided Dockerfile.

Security

Browser MCP servers carry inherent risks. A few key practices:

  • Use a dedicated Firefox profile. Never run the server against your regular profile — the agent has access to whatever the browser can reach, including cookies and saved sessions.
  • Be cautious about which sites you visit. Pages can return content designed to manipulate the agent (prompt injection). Stick to sites you control or trust.
  • Avoid enabling extra flags unless needed. --enable-script and --enable-privileged-context significantly expand what the agent can do.
Инструменты были проиндексированы:
accept_dialog

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

Параметры
  • promptTextstring

    Text for prompt dialogs

clear_downloads

Очищает буфер отслеживаемых загрузок.

Параметры

Без параметров.

clear_snapshot

Очищает UID снимков. Обычно не требуется.

Параметры

Без параметров.

click_by_uid

Нажимает на элемент по UID. Устанавливает dblClick для двойного щелчка.

Параметры
  • dblClickboolean

    Double-click (default: false)

  • uidstringобязательный

    Element UID from snapshot

close_page

Закрывает вкладку по индексу.

Параметры
  • pageIdxnumberобязательный

    Tab index to close

dismiss_dialog

Отклоняет диалоговое окно браузера.

Параметры

Без параметров.

drag_by_uid_to_uid

Перетаскивает элемент на другой элемент (HTML5 drag events).

Параметры
  • fromUidstringобязательный

    Source element UID

  • toUidstringобязательный

    Target element UID

evaluate_script

Выполняет JS-функцию на странице и возвращает её результат. Предпочитайте этот инструмент для точечного чтения (значения, текста, вычисленного стиля, наличия элемента) вместо полного take_snapshot. Используйте инструменты взаимодействия UID для кликов, ввода текста и заполнения полей.

Параметры
  • argsobject[]

    UIDs to pass as function arguments

  • functionstringобязательный

    JS function string, e.g. () => document.title

  • previewnumber

    Number of characters of the saved result to return inline as a preview when saveTo is used. Omit for no preview.

  • sandboxstring

    Evaluate in an isolated sandbox realm with this name instead of the page realm. The sandbox shares the page DOM and keeps the native built-ins even where the page overrode them. Page-defined globals and expandos are invisible from the sandbox, and vice-versa. The same name reuses the same sandbox across calls; omit to evaluate in the page realm.

  • saveToboolean | string

    Save the result to a file as JSON instead of returning it inline. Pass a file path, an existing directory (generated file inside), or true (generated file under ~/.firefox-devtools-mcp/output/). Relative paths resolve against the current working directory.

  • timeoutnumber

    Timeout in ms (default: 5000)

fill_by_uid

Заполняет текстовое поле ввода/textarea по UID.

Параметры
  • uidstringобязательный

    Input element UID from snapshot

  • valuestringобязательный

    Text to fill

fill_form_by_uid

Заполняет несколько полей формы одновременно.

Параметры
  • elementsobject[]обязательный

    Array of {uid, value} pairs

get_firefox_infoтолько чтение

Получает информацию о конфигурации текущего экземпляра Firefox, включая путь к бинарному файлу, переменные окружения и расположение выходного файла.

Параметры

Без параметров.

get_firefox_outputтолько чтение

Извлекает вывод Firefox (stdout/stderr, включая MOZ_LOG, предупреждения, сбои, стек-трейсы). Возвращает последний вывод из файла захвата. Использует фильтры для выделения конкретного содержимого.

Параметры
  • grepstring

    Filter log lines containing this string (case-insensitive)

  • linesnumber

    Number of recent log lines to return (default: 100, max: 10000)

  • sincenumber

    Only show logs written in the last N seconds

get_page_textтолько чтение

Получает видимый текст страницы (document.body.innerText). Ограничивает длину до maxLength (по умолчанию 20000 символов); saveTo сохраняет полный текст в файл.

Параметры
  • maxLengthnumber

    Max characters to return inline (default: 20000). Ignored when saveTo is used.

  • previewnumber

    Number of characters of the saved text to return inline as a preview when saveTo is used. Omit for no preview.

  • saveToboolean | string

    Save the full untruncated text to a file instead of returning it inline. Pass a file path, an existing directory (generated file inside), or true (generated file under ~/.firefox-devtools-mcp/output/). Relative paths resolve against the current working directory.

hover_by_uid

Наводит курсор на элемент по UID.

Параметры
  • uidstringобязательный

    Element UID from snapshot

install_extension

Устанавливает расширение Firefox с помощью команды WebDriver BiDi webExtension.install. Поддерживает установку из архива (.xpi/.zip), данных в кодировке base64 или распакованной директории.

Параметры
  • pathstring

    File path (for archivePath or path types)

  • permanentboolean

    Firefox-specific: Install permanently (requires signed extension). Default: false (temporary install)

  • typeenumобязательный

    Extension data type: "archivePath" for .xpi/.zip, "base64" for encoded data, "path" for unpacked directory

  • valuestring

    Base64-encoded extension data (for base64 type)

list_downloadsтолько чтение

Выводит список загрузок, отслеживаемых с момента запуска, включая статус и путь сохранённого файла.

Параметры
  • formatenum

    Output format (default: text)

  • limitnumber

    Max downloads (default: 50)

  • statusenum

    Filter by status

  • urlContainsstring

    URL filter (case-insensitive)

list_pagesтолько чтение

Перечисляет открытые вкладки (индекс, заголовок, URL). Выбранная вкладка помечена.

Параметры

Без параметров.

navigate_history

Перемещает по истории назад/вперёд. UIDs устаревают.

Параметры
  • directionenumобязательный

    back or forward

navigate_page

Перемещает выбранную вкладку на URL.

Параметры
  • urlstringобязательный

    Target URL

  • waitenum

    When to return: 'none' (navigation started), 'interactive' (DOMContentLoaded), 'complete' (load event fired, including subresources). Omit for the default: 'interactive' for http/https/data/blob/file, 'none' for other schemes. Use 'complete' when the page must be fully loaded, e.g. before stopping a performance recording.

new_page

Открывает новую вкладку по URL. Возвращает индекс вкладки.

Параметры
  • urlstringобязательный

    Target URL

  • waitenum

    When to return: 'none' (navigation started), 'interactive' (DOMContentLoaded), 'complete' (load event fired, including subresources). Omit for the default: 'interactive' for http/https/data/blob/file, 'none' for other schemes. Use 'complete' when the page must be fully loaded, e.g. before stopping a performance recording.

press_key

Press a single key, optionally with modifiers, to submit, dismiss, navigate or trigger a shortcut. Not for entering text: use fill_by_uid instead.

Параметры
  • keystringобязательный

    One key, optionally preceded by "+"-separated modifiers, such as "Escape", "Enter" or "ctrl+shift+t". Modifiers: ctrl, alt, shift, meta. Named keys: Enter, Return, NumpadEnter, Tab, Backspace, Delete, Insert, Space, Escape, Home, End, PageUp, PageDown, ArrowUp, ArrowDown, ArrowLeft, ArrowRight, F1-F12, Numpad0-Numpad9, Clear, Pause, Help, Cancel, Semicolon, Equals, Add, Subtract, Multiply, Divide, Decimal, Separator. Anything else must be a single character. Any number of modifiers, but only one key.

  • uidstring

    Focusable element UID from snapshot to focus before pressing (default: the already focused element)

resolve_uid_to_selectorтолько чтение

Преобразует UID в CSS-селектор. Завершается ошибкой, если элемент удалён.

Параметры
  • uidstringобязательный

    UID from snapshot

restart_firefox

Перезапускает Firefox с другой конфигурацией. Меняет путь к бинарнику, переменные окружения и другие параметры. Все текущие вкладки будут закрыты.

Параметры
  • envstring[]

    New environment variables in KEY=VALUE format (optional, e.g., ["MOZ_LOG=HTMLMediaElement:5", "MOZ_LOG_FILE=/tmp/ff.log"])

  • firefoxPathstring

    New Firefox binary path (optional, keeps current if not specified)

  • headlessboolean

    Run in headless mode (optional, keeps current if not specified)

  • prefsobject

    Firefox preferences to set at startup. Values are auto-typed: true/false become booleans, integers become numbers, everything else is a string. Requires MOZ_REMOTE_ALLOW_SYSTEM_ACCESS=1.

  • profilePathstring

    Firefox profile path (optional, keeps current if not specified)

  • startUrlstring

    URL to navigate to after restart (optional, uses about:blank if not specified)

screencast_start

Начинает запись скринкаста (видео) текущей области просмотра страницы и сохраняет результат в файл в каталоге загрузок. Возвращает идентификатор скринкаста для передачи в screencast_stop. Несколько записей могут выполняться одновременно.

Параметры
  • contextstring

    Id of the top-level browsing context to record. Defaults to the currently selected page.

  • frameRateinteger

    Target frame rate of the recording, in frames per second.

  • heightinteger

    Height of the recorded video in pixels. Defaults to the viewport height.

  • mimeTypestring

    MIME type of the output file. Defaults to "video/webm".

  • widthinteger

    Width of the recorded video in pixels. Defaults to the viewport width.

screencast_stop

Останавливает текущую запись экрана, запущенную с помощью screencast_start, и завершает создание видеофайла. Возвращает путь к сохранённому файлу.

Параметры
  • screencaststring

    Id of the screencast to stop, as returned by screencast_start. Optional when exactly one recording is active.

screenshot_by_uidтолько чтение

Захватывает снимок элемента по UID в формате base64 PNG.

Параметры
  • saveToboolean | string

    Save the screenshot to a file instead of returning it as image data in the response. Pass a file path, an existing directory (generated file inside), or true (generated file under ~/.firefox-devtools-mcp/output/). Relative paths resolve against the current working directory.

  • uidstringобязательный

    Element UID from snapshot

screenshot_pageтолько чтение

Захватывает скриншот страницы в формате base64 PNG.

Параметры
  • saveToboolean | string

    Save the screenshot to a file instead of returning it as image data in the response. Pass a file path, an existing directory (generated file inside), or true (generated file under ~/.firefox-devtools-mcp/output/). Relative paths resolve against the current working directory.

select_page

Выбирает активную вкладку по индексу, URL или заголовку. Индекс имеет приоритет.

Параметры
  • pageIdxnumber

    Tab index (0-based, most reliable)

  • titlestring

    Title substring (case-insensitive)

  • urlstring

    URL substring (case-insensitive)

set_download_behavior

Управляет обработкой загрузок: разрешает (тихо сохранять в папку загрузок по умолчанию), запрещает (отменяет) или сбрасывает на значение по умолчанию. Избегает системного диалога сохранения файла. Требует свежую версию Firefox.

Параметры
  • behaviorenumобязательный

    'allowed' saves downloads automatically, 'denied' cancels them, 'default' resets to the browser default

set_viewport_size

Устанавливает размеры области просмотра в пикселях.

Параметры
  • heightnumberобязательный

    Height in pixels

  • widthnumberобязательный

    Width in pixels

take_snapshotтолько чтение

Захватывает снимок DOM со стабильными UID. UID остаётся действительным между снимками, пока его элемент не удалён или страница не переходит. Вывод ограничивается maxLines (по умолчанию 100); ограничьте область с помощью selector или выгрузите полное дерево с помощью saveTo.

Параметры
  • includeAllboolean

    Include all visible elements without relevance filtering. Useful for Vue/Livewire apps (default: false)

  • includeAttributesboolean

    Include ARIA attributes (default: false)

  • includeTextboolean

    Include text (default: true)

  • maxDepthnumber

    Max tree depth

  • maxLinesnumber

    Max lines (default: 100)

  • previewnumber

    Number of characters of the saved output to return inline as a preview when saveTo is used. Omit for no preview.

  • saveToboolean | string

    Save the complete snapshot text to a file (ignores maxLines) instead of returning it inline. Pass a file path, an existing directory (generated file inside), or true (generated file under ~/.firefox-devtools-mcp/output/). Relative paths resolve against the current working directory.

  • selectorstring

    CSS selector to scope snapshot to specific element (e.g., "#app")

type_text

Type text key by key into the focused element, optionally followed by a key such as Enter. Use fill_by_uid to set the value of a known input; use this for elements that only react to real typing, such as autocomplete fields and rich text editors.

Параметры
  • submitKeystring

    Key to press after the text, such as "Enter" or "Tab". Same syntax as press_key.

  • textstringобязательный

    Text to type

  • uidstring

    Focusable element UID from snapshot to focus before typing (default: the already focused element)

uninstall_extension

Удаляет расширение Firefox с помощью команды WebDriver BiDi webExtension.uninstall. Требует идентификатор расширения, возвращённый install_extension или полученный из list_extensions.

Параметры
  • idstringобязательный

    Extension ID (e.g., "addon@example.com")

upload_file_by_uid

Загружает файл в file input по UID.

Параметры
  • filePathstringобязательный

    Local file path

  • uidstringобязательный

    File input UID from snapshot

Похожие MCP-сервера

webdriverio/mcp

webdriverio/mcp

официальный

Управляйте браузерами и мобильными приложениями через WebDriverIO с MCP-сервером. Автоматизируйте Chrome, Firefox, Edge, Safari, iOS и Android: навигация, клики, скриншоты. Оптимален для тестирования.

TypeScript38
feedthrough/feedthrough

feedthrough/feedthrough

Feedthrough - MCP сервер для отладки веб-приложений через AI. Внедряет мост в страницу, предоставляя инструменты для чтения DOM, консоли, сети и управления интерфейсом. Полезен разработчикам, которые хотят исследовать и управлять приложением в реальном времени через AI-агента.

TypeScript4
eyalzh/browser-control-mcp

eyalzh/browser-control-mcp

MCP сервер для Firefox в паре с расширением дает AI управлять вкладками, историей и чтением страниц. Требует согласия на чтение - безопаснее web automation. Идеально для организации работы в браузере.

TypeScript321
executeautomation/playwright-mcp-server

executeautomation/playwright-mcp-server

Сервер для браузерной автоматизации на Playwright. Используется AI-агентами для открытия страниц, скриншотов, веб-скрапинга и выполнения JavaScript в реальном браузере. Отлично подходит для тестиро...

TypeScript5644
Browser MCP

Browser MCP

официальный

Browser MCP автоматизирует браузер через ИИ (VS Code, Claude, Cursor, Windsurf) — локально и приватно, с вашим профилем. Сервер обходит капчи и детекцию ботов, подходит для RPA и тестирования разра...

TypeScript7070
automatalabs/mcp-server-playwright

automatalabs/mcp-server-playwright

Сервер для автоматизации браузера через Playwright: позволяет ИИ-агентам открывать страницы, делать скриншоты, кликать, заполнять формы и выполнять JavaScript — полезен для тестирования и сбора данных.

JavaScript299
© Каталог MCP, 2026. Все права защищены.
Проект не аффилирован с Anthropic и любыми упомянутыми продуктами.
Все названия и торговые марки принадлежат их владельцам.
Контакты для связи: hi@mcp-katalog.ru

Лука Никитин