Chrome DevTools MCP — это сервер, который даёт ИИ-агенту доступ к браузеру: открывать страницы, выполнять скрипты, снимать скриншоты, читать сетевые запросы. Как именно агент будет это делать, решает конфигурация — набор флагов, которые передаются серверу при запуске.

Один и тот же сервер можно настроить под разные задачи: запускать Chrome без окна для фоновой работы, подключаться к уже открытой сессии, ограничивать доступ браузера к заданным URL и отключать ненужные группы инструментов. Параметры задаются в конфигурации MCP-клиента.

Что это

Chrome DevTools MCP — это реализация протокола Model Context Protocol (MCP), которая превращает браузер Chrome в набор инструментов для языковой модели. Агент вызывает эти инструменты так же, как вызывал бы функции в коде: открыть вкладку, кликнуть по элементу, получить текст страницы, снять скриншот.

Сервер запускается через npx и подключается к Chrome по протоколу DevTools. По умолчанию он сам запускает новый экземпляр браузера, но это поведение можно изменить — подключиться к уже работающему Chrome или запустить его в безголовом режиме без видимого окна.

Настройка выполняется через флаги командной строки. Место и формат конфигурации зависят от MCP-клиента. В клиентах, которые используют JSON-схему с разделом mcpServers, параметры сервера перечисляются в массиве args.

Большинство составных параметров можно писать в camelCase или через дефисы: —autoConnect и —auto-connect эквивалентны. Однословные флаги вроде —headless или —slim имеют одну форму.

Зачем нужно

  • Фоновая работа без окна — флаг —headless запускает Chrome без интерфейса. Агент выполняет задачи на сервере, не открывая видимое окно браузера.
  • Работа в уже открытой сессии — если вы вошли в аккаунт и нужно исследовать проблему в этой сессии, агент подключается к запущенному Chrome, а не создаёт новый.
  • Ограничение доступных URL — флаги блокировки и разрешения URL-шаблонов ограничивают навигацию и загрузку ресурсов в подключённых DevTools-сеансах. Они не заменяют полноценную сетевую изоляцию процесса или виртуальной машины.
  • Контроль набора инструментов — группы инструментов (сеть, производительность, эмуляция) включаются и отключаются по отдельности.
  • Сокращение объёма данных — уменьшение размеров изображения и использование JPEG или WebP помогает сократить объём данных, передаваемых модели.

Как устроено

Формат конфигурации зависит от MCP-клиента. В клиентах с JSON-разделом mcpServers минимальная настройка выглядит так: команда запуска npx, пакет chrome-devtools-mcp и список флагов. Каждый аргумент передаётся отдельным элементом массива args.

{
  "mcpServers": {
    "chrome-devtools": {
      "command": "npx",
      "args": [
        "-y",
        "chrome-devtools-mcp@latest",
        "--headless",
        "--channel=canary"
      ]
    }
  }
}
Схема подключения coding-агента к активной сессии Chrome через DevTools MCP

Флаги делятся на несколько групп по назначению: подключение к браузеру, параметры запуска, безопасность, категории инструментов, скриншоты и экспериментальные возможности. Часть флагов принимает значение после знака равенства, часть — просто включает или выключает поведение.

Группа флаговЧто настраивает
ПодключениеКак сервер находит и подключается к Chrome: автоматически, по адресу или по WebSocket.
Запуск браузераКак Chrome запускается: канал, путь к исполняемому файлу, каталог данных, размер окна, прокси.
БезопасностьСертификаты, URL-фильтры, скрытие части чувствительных заголовков, сбор статистики.
Категории функцийКакие группы инструментов доступны агенту.
СкриншотыФормат, качество и максимальный размер снимков экрана.
ЭкспериментальныеФункции в разработке, которые могут измениться или исчезнуть.

Типичные сценарии

Два самых частых сценария настройки — запуск в безголовом режиме и подключение к уже открытой сессии браузера.

Запуск в безголовом режиме

Для фоновых задач без видимого окна добавьте флаг —headless к аргументам сервера. Chrome запустится без пользовательского интерфейса, а агент продолжит работать с ним как обычно.

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

По умолчанию сервер запускает новый экземпляр Chrome. Но агента можно подключить к уже работающей сессии — это полезно, когда нужно исследовать проблему в браузере, где вы уже вошли в аккаунт.

Внимание: при подключении к существующей сессии агент наследует вашу активную сессию — учётные записи, файлы cookie и другие данные. Используйте этот режим только с агентами, которым доверяете.

Подключиться можно двумя способами. Автоматический — флаг —autoConnect: сервер сам находит активный экземпляр Chrome. Для этого в браузере нужно включить удалённую отладку на странице chrome://inspect/#remote-debugging, а затем добавить флаг в конфигурацию. Когда агент попытается подключиться, Chrome покажет диалог с запросом разрешения — нажмите «Разрешить».

"args": ["chrome-devtools-mcp@latest", "--autoConnect"]
Экран Chrome с включением удалённой отладки для DevTools MCP

Ручной способ — для случаев, когда —autoConnect недоступен, например в изолированной среде. Chrome запускается из терминала с портом отладки и отдельным каталогом данных, а агент подключается к этому порту через —browser-url.

Внимание: открытый порт удалённой отладки позволяет другим локальным приложениям подключаться к этому экземпляру Chrome и управлять им. Не используйте такой экземпляр браузера для чувствительных аккаунтов и данных без дополнительной изоляции.

# macOS
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222 --user-data-dir=/tmp/chrome-profile-stable

# Windows
"C:\Program Files\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9222 --user-data-dir="%TEMP%\chrome-profile-stable"

# Linux
google-chrome --remote-debugging-port=9222 --user-data-dir=/tmp/chrome-profile-stable
"args": ["chrome-devtools-mcp@latest", "--browser-url=http://127.0.0.1:9222"]

Справочник флагов

Ниже — основные доступные флаги по группам. Актуальные параметры и новые опции стоит сверять с официальным репозиторием Chrome DevTools MCP, поскольку набор флагов меняется.

Подключение

ФлагТипПо умолчаниюОписание
—autoConnect / —auto-connectлогическийfalseАвтоматически подключается к локально запущенному Chrome (версия 144+). Требует включённой удалённой отладки через chrome://inspect/#remote-debugging.
—browserUrl / —browser-url (-u)строкаfalseПодключается к запущенному Chrome с возможностью отладки, например http://127.0.0.1:9222.
—wsEndpoint / —ws-endpoint (-w)строкаfalseКонечная точка WebSocket для подключения к запущенному Chrome, например ws://127.0.0.1:9222/devtools/browser/. Альтернатива —browserUrl.
—wsHeaders / —ws-headersстрокаfalseПользовательские заголовки для соединения WebSocket в формате JSON. Работает только вместе с —wsEndpoint.

Запуск браузера

ФлагТипПо умолчаниюОписание
—headlessлогическийfalseЗапускает Chrome в безголовом режиме без пользовательского интерфейса.
—channelстрокаstableКанал Chrome: canary, dev, beta или stable.
—executablePath / —executable-path (-e)строкаfalseПуть к пользовательскому исполняемому файлу Chrome.
—userDataDir / —user-data-dirстрокасм. описаниеКаталог пользовательских данных. По умолчанию $HOME/.cache/chrome-devtools-mcp/chrome-profile с суффиксом канала, если канал не stable.
—isolatedлогическийfalseСоздаёт временный каталог данных, который очищается при закрытии браузера.
—viewportстрокаfalseНачальный размер области просмотра, например 1280x720. В безголовом режиме максимум 3840x2160.
—proxyServer / —proxy-serverстрокаfalseКонфигурация прокси-сервера, передаваемая в Chrome.
—chromeArg / —chrome-argсписокfalseДополнительные аргументы для передачи в Chrome.
—ignoreDefaultChromeArg / —ignore-default-chrome-argсписокfalseЯвно отключает параметры Chrome, заданные по умолчанию.

Безопасность и конфиденциальность

ФлагТипПо умолчаниюОписание
—acceptInsecureCerts / —accept-insecure-certsлогическийfalseИгнорирует ошибки самоподписанных и просроченных сертификатов. Использовать с осторожностью.
—blockedUrlPattern / —blocked-url-patternсписокfalseБлокирует указанные шаблоны URL для навигации и загрузки подресурсов в подключённых DevTools-сеансах.
—allowedUrlPattern / —allowed-url-patternсписокfalseРазрешает только указанные шаблоны URL в подключённых DevTools-сеансах. Требует Chrome 149+.
—redactNetworkHeaders / —redact-network-headersлогическийfalseСкрывает часть сетевых заголовков, которые сервер считает чувствительными, перед передачей MCP-клиенту.
—allowUnrestrictedPaths / —allow-unrestricted-pathsлогическийfalseСнимает ограничения на пути файловой системы для инструментов, которые записывают файлы. Без этого флага сервер ограничивает такие операции доступными корнями MCP-клиента, а при их отсутствии — системным временным каталогом.
—usageStatistics / —usage-statisticsлогическийtrueВключает статистику использования Chrome DevTools MCP. Отключается переменной CHROME_DEVTOOLS_MCP_NO_USAGE_STATISTICS или CI.
—performanceCrux / —performance-cruxлогическийtrueОтправляет URL из трассировок производительности в API Google CrUX для данных о реальном пользовательском опыте.

Категории функций

ФлагТипПо умолчаниюОписание
—categoryEmulation / —category-emulationлогическийtrueИнструменты эмуляции.
—categoryNetwork / —category-networkлогическийtrueИнструменты работы с сетью.
—categoryPerformance / —category-performanceлогическийtrueИнструменты производительности.
—categoryExtensions / —category-extensionsлогическийfalseИнструменты расширений. Поддерживается только при трубном соединении.
—categoryExperimentalThirdParty / —category-experimental-third-partyлогическийfalseИнструменты сторонних разработчиков, предоставляемые проверяемой страницей.
—categoryExperimentalWebmcp / —category-experimental-webmcpлогическийfalseЭкспериментальные инструменты WebMCP. Требуют Chrome 150+ и запуска Chrome с параметром —enable-features=WebMCP.
—memoryDebugging / —memory-debuggingлогическийfalseИнструменты отладки памяти.

Скриншоты

ФлагТипПо умолчаниюОписание
—screenshotFormat / —screenshot-formatстрокаfalseФормат вывода вместо png: jpeg, png или webp. jpeg и webp меньше по размеру, что сокращает контекст в диалогах с ИИ.
—screenshotQuality / —screenshot-qualityчислоfalseКачество сжатия (0–100) для jpeg и webp.
—screenshotMaxWidth / —screenshot-max-widthчислоfalseМаксимальная ширина в пикселях. Более крупные скриншоты уменьшаются.
—screenshotMaxHeight / —screenshot-max-heightчислоfalseМаксимальная высота в пикселях. Более крупные скриншоты уменьшаются.

Экспериментальные

Внимание: экспериментальные параметры находятся в разработке и могут быть изменены или удалены в будущих версиях.

ФлагТипПо умолчаниюОписание
—experimentalPageIdRouting / —experimental-page-id-routingлогическийfalseДаёт доступ к pageId в инструментах конкретной страницы для маршрутизации запросов в параллельных сеансах агентов.
—experimentalDevtools / —experimental-devtoolsлогическийfalseАвтоматизация работы с целевыми объектами DevTools.
—experimentalVision / —experimental-visionлогическийfalseИнструменты на основе координат, например click_at. Обычно требует модели, способной определять координаты по скриншотам.
—experimentalStructuredContent / —experimental-structured-contentлогическийfalseВыводит структурированное отформатированное содержимое.
—experimentalIncludeAllPages / —experimental-include-all-pagesлогическийfalseВключает все типы страниц, например веб-страницы и фоновые страницы.
—experimentalScreencast / —experimental-screencastлогическийfalseИнструменты записи экрана. Требует ffmpeg в переменной PATH.
—experimentalFfmpegPath / —experimental-ffmpeg-pathстрокаfalseПуть к исполняемому файлу ffmpeg.

Прочие

ФлагТипПо умолчаниюОписание
—slimлогическийfalseОграниченный набор из трёх инструментов: навигация, выполнение скриптов и скриншоты. Для базовых задач в браузере.
—logFile / —log-fileстрокаfalseПуть к файлу для отладочных журналов.

Переменные окружения

Часть настроек задаётся не флагами, а переменными окружения. Они удобны в CI-конвейерах и контейнерах, где конфигурация передаётся через окружение процесса.

  • CHROME_DEVTOOLS_MCP_NO_USAGE_STATISTICS — если задана, отключает сбор статистики использования (эквивалент —no-usage-statistics).
  • CHROME_DEVTOOLS_MCP_NO_UPDATE_CHECKS — если задана, отключает периодическую проверку обновлений.
  • CI — если задана, сбор статистики использования отключается.
  • DEBUG — значение * включает подробное отладочное логирование. Работает вместе с —logFile.

Когда использовать

СитуацияЧто включитьПочему
Фоновые задачи на сервере—headlessChrome работает без окна, агент не мешает пользователю.
Исследование в уже открытой сессии—autoConnect или —browser-urlАгент видит ту же сессию, где вы уже вошли в аккаунт.
Ограничить доступные браузеру адреса—blockedUrlPattern / —allowedUrlPatternНавигация и загрузка ресурсов ограничиваются списком разрешённых или запрещённых URL. Для полной сетевой изоляции нужна отдельная песочница.
Сократить объём контекста диалога—slim или —screenshotFormat=jpegМеньше инструментов и компактнее скриншоты — меньше токенов на каждый ход.
Отключить ненужные группы инструментов—categoryNetwork=false и подобныеАгент получает только те инструменты, которые нужны задаче.
Изолированная среда без autoConnectручной запуск Chrome + —browser-urlChrome стартует с портом отладки, агент подключается по адресу.

Пример

Полный пример конфигурации, которая запускает Chrome в безголовом режиме на канале Canary, ограничивает доступ к сети и переводит скриншоты в компактный формат webp:

{
  "mcpServers": {
    "chrome-devtools": {
      "command": "npx",
      "args": [
        "-y",
        "chrome-devtools-mcp@latest",
        "--headless",
        "--channel=canary",
        "--allowedUrlPattern=https://example.com/*",
        "--screenshotFormat=webp",
        "--screenshotQuality=80"
      ]
    }
  }
}

Ограничения

Ограничения

Что учитывать перед настройкой.

Автоподключение требует Chrome 144+ — Флаг —autoConnect работает только с Chrome версии 144 и новее.

На более старых версиях придётся подключаться вручную через —browser-url или —wsEndpoint.

Часть функций привязана к версии Chrome

— —allowedUrlPattern требует Chrome 149+, а экспериментальные инструменты WebMCP — Chrome 150+ и запуска Chrome с —enable-features=WebMCP.

Экспериментальные возможности могут изменяться — Параметры с префиксом experimental находятся в разработке и могут измениться или исчезнуть в будущих версиях.

Не стоит без необходимости строить на них критичный рабочий процесс.

Подключение к сессии наследует данные — При подключении к существующей сессии агент получает доступ к учётным записям и файлам cookie.

Это удобно, но требует доверия к агенту.

Запись экрана требует ffmpeg

— Инструменты записи экрана (—experimentalScreencast) работают только при наличии ffmpeg в переменной PATH.

Антипаттерны

Антипаттерны

Чего не делать при настройке.

Подключать агента к личной сессии без необходимости — Агент наследует ваши учётные записи и cookie.

Если задача не требует работы в уже открытой сессии, безопаснее дать серверу запустить отдельный экземпляр Chrome.

Считать URL-фильтры полноценной сетевой изоляцией

— —blockedUrlPattern и —allowedUrlPattern ограничивают доступ через подключённые DevTools-сеансы, но не заменяют изоляцию на уровне ОС или виртуальной машины.

Включать экспериментальные возможности без необходимости — Такие функции могут измениться или исчезнуть.

Включайте только то, что действительно нужно задаче, и проверяйте поведение после обновлений.

Не различать статистику использования и CrUX — Это два отдельных механизма.

Статистика работы Chrome DevTools MCP отключается через —no-usage-statistics или CHROME_DEVTOOLS_MCP_NO_USAGE_STATISTICS. Передача URL из трассировок производительности в CrUX управляется отдельно через —performance-crux / —no-performance-crux.

Использовать —acceptInsecureCerts без необходимости — Игнорирование ошибок сертификатов ослабляет защиту соединения.

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

Чеклист

Чеклист

Проверка перед запуском.

Chrome DevTools MCP — это настраиваемый слой между агентом и браузером. С помощью флагов один и тот же сервер можно использовать для фоновой работы, подключения к существующей сессии или сценария с ограниченным набором инструментов и URL-фильтрами.

Определён режим запуска

— Решено, нужен ли безголовый режим (—headless) или подключение к существующей сессии (—autoConnect / —browser-url).

Выбран канал Chrome — Если нужен нестабильный канал, задан —channel=canary/dev/beta.

По умолчанию используется stable.

Настроены URL-фильтры — Заданы —blockedUrlPattern или —allowedUrlPattern, если браузеру нужно ограничить доступ к определённым адресам.

Для полной сетевой изоляции используется отдельная песочница на уровне ОС или виртуальной машины.

Настроены скриншоты

— Выбран формат JPEG/WebP для сокращения объёма данных и при необходимости заданы качество и максимальный размер.

Отключены ненужные группы инструментов

— Категории, которые задаче не нужны, выключены через —category*=false.

Сбор статистики под контролем

— В чувствительных средах задана переменная CHROME_DEVTOOLS_MCP_NO_USAGE_STATISTICS или CI.

Конфигурация проверена запуском

— Сервер стартует без ошибок, агент подключается к Chrome и выполняет тестовое действие.

Ссылки

Ссылки