Загружаем раздел. Собираем страницу и актуальные данные.
Загружаем раздел. Собираем страницу и актуальные данные.
Даёт AI-агенту управление настоящим браузером: открыть страницу, кликнуть, заполнить форму, прочитать консоль и сеть. Работает по accessibility tree — структурному дереву страницы, без распознавания пикселей: быстро, детерминированно, vision-модель не нужна.
Бесплатно. API-ключи не нужны: сервер локальный (npm-пакет), браузер ваш.
claude mcp add playwright npx @playwright/mcp@latestcodex mcp add playwright npx "@playwright/mcp@latest"или в ~/.codex/config.toml: [mcp_servers.playwright] command = "npx", args = ["@playwright/mcp@latest"]
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["@playwright/mcp@latest"]
}
}
}Settings → MCP → Add new global MCP server; или кнопка-deeplink в README проекта
code --add-mcp '{"name":"playwright","command":"npx","args":["@playwright/mcp@latest"]}'{
"mcpServers": {
"playwright": {
"command": "docker",
"args": ["run", "-i", "--rm", "--init", "--pull=always", "mcr.microsoft.com/playwright/mcp"]
}
}
}Ключи и env-переменные не нужны. Требование одно: Node.js 18+. При первом запуске Playwright может попросить установить браузер: npx playwright install chrome.
Из РФ работает без ограничений: сервер локальный, наружу данные не шлёт (браузер качается с CDN Playwright — доступен). Зарубежная карта не нужна.
| --browser <b> | chrome | firefox | webkit | msedge |
| --headless | без окна браузера (по умолчанию — с окном) |
| --caps <c> | включить opt-in пакеты: vision, pdf, devtools |
| --isolated | профиль в памяти, не сохранять на диск |
| --device <d> | эмуляция устройства, например "iPhone 15" |
| --allowed-origins | ограничить, куда браузер может ходить (не security boundary!) |
| --extension | подключиться к УЖЕ запущенному Chrome/Edge через расширение |
68 инструментов: 23 в ядре по умолчанию + 45 в опциональных пакетах, чтобы не раздувать контекст.
Ядро (по умолчанию) · 23 tools
| browser_navigate / _navigate_back | открыть URL, назад |
| browser_snapshotread-only | accessibility-снимок страницы — главный «глаз» агента |
| browser_click / _type / _hover / _drag / _drop | клики, ввод текста, наведение, drag-n-drop |
| browser_fill_form / _select_option / _file_upload | формы, селекты, загрузка файлов |
| browser_take_screenshotread-only | скриншот страницы или элемента |
| browser_console_messagesread-only | сообщения консоли (по уровням) |
| browser_network_request / _network_requests | выполнить запрос; список запросов страницы |
| browser_evaluate / _run_code_unsafe | выполнить JS на странице (осторожно: unsafe) |
| browser_tabs | вкладки: открыть/закрыть/переключить |
| browser_wait_for / _press_key / _resize / _handle_dialog / _close | ожидания, клавиши, размер окна, диалоги |
Каждый пакет добавляет инструменты — и токены контекста. Включается флагом с плашки в команде подключения; несколько пакетов — через запятую.
Storage
17 toolscookies, localStorage, sessionStorage
--caps=storageDevTools
11 toolsтрейсинг, видео, подсветка элементов
--caps=devtoolsVision
6 toolsклики по координатам (для скриншотных моделей)
--caps=visionгенерация PDF из страницы
--caps=pdfNetwork
4 toolsперехват и мок запросов (route)
--caps=networkConfig
1 toolsчтение конфигурации на лету
--caps=configТул-дефиниции ≈ 13.7K токенов (бенчмарк ytyng, 03.2026); 10-шаговая задача ≈ 114K через MCP против 27K через Playwright CLI (замер Microsoft); full-page скриншот — до 200K+. Снижать: минимум --caps, точечные снапшоты, тесты — через CLI. Проверь у себя: /context.
Не «вместо», а другой класс задач: нативные закрывают «проверить в моём залогиненном Chrome без настройки», Playwright MCP — единственный с headless/CI и Firefox/WebKit. Факты на 02.07.2026.
| Критерий | Playwright MCP | Нативные (Claude in Chrome / Codex) |
|---|---|---|
| Headless / CI / сервер без GUI | ✓ --headless, Docker-образ, standalone HTTP | ✗ Claude in Chrome и браузер Codex требуют живое окно |
| Твой залогиненный профиль | не из коробки; можно через --extension или --cdp-endpoint | Claude in Chrome — да, из коробки; in-app браузер Codex — без auth/cookies вовсе (для логинов — их Chrome-расширение) |
| Браузеры | chrome, edge, firefox, webkit | только Chrome/Edge |
| Чистая комната (изоляция профиля) | ✓ --isolated, воспроизводимые прогоны | ✗ — всегда твой живой профиль |
| Эмуляция устройств, network-моки | ✓ --device "iPhone 15", route-перехваты | ✗ |
| Цена доступа | бесплатно, open source | Claude in Chrome — только платные планы (Pro/Max/Team), не работает через Bedrock/Vertex |
Сигналы с X и из инженерных блогов; прямые ссылки на X не даём (заблокирован в РФ) — указан источник-посредник.
«Authentication is easy: have it show you a login page, then log in yourself». Caveat: в первом промпте явно скажи «playwright mcp» — иначе агент полезет в Bash.
Часть «agentic manual testing»: агент обязан сам проверять свой код, а не предполагать, что он работает.
«Almost all MCPs really should be CLIs» — выкинул Playwright MCP в пользу chrome-devtools-mcp: контекст-налог, агент «запускал Playwright там, где можно просто прочитать код».
Вместо 25+ инструментов сделал playwrightess: один tool playwright_eval, исполняющий JS в персистентной сессии браузера.
«Constantly blows up the context window on nearly every call»; Microsoft подтвердил и рекомендует CLI-workflow для написания тестов (issues #889, #1040).
Ошибка «Executable doesn't exist» / браузер не найден
Выполни npx playwright install chrome (или chromium). Docker-вариант качает браузер сам.
Клиент не видит сервер (0 tools)
Проверь по порядку: валиден ли JSON конфига → тот ли файл конфига (глобальный vs проектный) → перезапусти клиент полностью. 90% случаев — одно из трёх.
Windows: сервер не стартует через npx
Оберни команду: "command": "cmd", "args": ["/c", "npx", "@playwright/mcp@latest"]. Классическая npx-грабля Windows.
Браузер «занят»: profile is already in use
Закрой запущенный Chrome с тем же профилем или добавь --isolated (профиль в памяти). Либо наоборот — подключись к живому браузеру через --extension.
Агент «слепнет»: страница есть, а snapshot пустой/куцый
Подожди загрузку (browser_wait_for), проверь, не iframe ли контент; для канвас-/виджет-страниц включи --caps=vision и работай по скриншоту.
Съедает контекст: каждый шаг — десятки тысяч токенов
Проси точечные снапшоты элементов вместо полной страницы, не включай лишние --caps, скриншоты — только когда нужны глазами. Для массового написания тестов возьми Playwright CLI (≈в 4 раза дешевле по токенам, замер Microsoft).
Node < 18 или npx тянет старую версию
Нужен Node 18+. При NVM пропиши абсолютный путь к node в command; @latest в args держит сервер свежим.
Это «руки и глаза» AI-агента в браузере: официальный MCP-сервер от Microsoft, через который Claude Code, Cursor или Codex открывают страницы, кликают и читают контент. Основан на движке Playwright для e2e-тестирования.
Playwright MCP читает accessibility tree — структурное описание страницы. Агенту не нужно «разглядывать» пиксели: элементы адресуются точно, работает быстрее и стабильнее, vision-модель не нужна. Скриншотный режим есть как opt-in (--caps=vision).
Тул-дефиниции ≈ 13.7K токенов; 10-шаговая задача ≈ 114K через MCP против 27K через Playwright CLI (бенчмарк Microsoft). Уменьшать: минимальные --caps, точечные снапшоты, тесты писать через CLI.
Playwright — библиотека автоматизации, которой управляет твой код. Playwright MCP — сервер поверх неё, которым управляет агент по протоколу MCP: те же браузеры, но «руль» у LLM, а не у скрипта.
Playwright — вождение браузера (сценарии, формы, e2e); Chrome DevTools MCP — диагностика (перф-трейсы, network, console). Формула Стива Кинни: «driving vs debugging». Часто ставят оба.
Сервер локальный, без ключей, код открыт. Но сам Microsoft называет его «not a security boundary»: агент управляет реальным браузером с вашими сессиями. Главный риск — prompt injection с недоверенных страниц. Изолируйте профиль (--isolated) и не смешивайте «гуляние по интернету» с доступом к секретам.
Да: флаг --extension подключает сервер к живому Chrome/Edge через расширение Playwright Extension, флаг --cdp-endpoint — к любому браузеру по CDP.
Да, полностью: локальный npm-пакет, ключей и оплаты нет, наружу данные не отправляет. Ограничение только со стороны самого клиента (Claude/Cursor), не сервера.
По умолчанию — с окном (видно, что делает агент). В CI/Docker включай --headless; Docker-образ поддерживает только headless chromium.
официальный сервер команды Chrome: сильнее в отладке (профилирование, DevTools-протокол), слабее как «руки» для сценариев
альтернативная реализация агентного браузера из монорепо ByteDance
Browserbase / stealth-форки
облачный браузер и обходы антибота — когда нужен масштаб или маскировка; это уже не «браузер разработчика»