Chrome DevTools MCP: настройка агента под свои задачи | Виталий Воробьев
VorobeoffAIВиталий Воробьев

Chrome DevTools MCP: настройка агента под свои задачи

Справочник по основным настройкам Chrome DevTools MCP: подключение к браузеру, запуск, безопасность, категории инструментов, скриншоты и переменные окружения.

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
Схема подключения 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
Экран 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.

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

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

Пример

Полный пример конфигурации, которая запускает 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 находятся в разработке и могут измениться или исчезнуть в будущих версиях.

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

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

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

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

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

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

ПунктПояснение

Если задача не требует работы в уже открытой сессии, безопаснее дать серверу запустить отдельный экземпляр 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 и выполняет тестовое действие.

Ссылки

Продолжить тему

Материалы, которые связаны с этим разбором

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

Открыть материалы по теме ↗

Обсудить задачу

Есть задача, которую хотите усилить с помощью ИИ?

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

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