Playwright MCP
Сервер Model Context Protocol, предоставляющий возможности автоматизации браузера с помощью Playwright. Позволяет большим языковым моделям (LLM) взаимодействовать с веб-страницами через структурированные снимки дерева доступности — без использования моделей компьютерного зрения.
Пример
You: Navigate to https://demo.playwright.dev/todomvc and add "Buy groceries".
→ browser_navigate { url: "https://demo.playwright.dev/todomvc" }
- heading "todos" [level=1] [ref=e3]
- textbox "What needs to be done?" [ref=e5]
→ browser_type { target: "e5", text: "Buy groceries", submit: true }
- heading "todos" [level=1] [ref=e3]
- textbox "What needs to be done?" [ref=e5]
- list [ref=e8]:
- listitem [ref=e9]:
- checkbox "Toggle Todo" [ref=e10]
- text: Buy groceries
- contentinfo [ref=e12]:
- text: 1 item left
LLM читает снимок дерева доступности, находит идентификаторы элементов (ref), например e5, и передаёт их в качестве target при следующем вызове инструмента — чтобы нажимать кнопки, заполнять формы и устанавливать флажки. Снимки экрана и угадывание координат не требуются.
Основные возможности
- Работа на основе снимков — взаимодействие с деревом доступности, а не с пикселями. Каждый элемент получает уникальный идентификатор для однозначного взаимодействия
- Удобство для LLM — структурированный текстовый вывод, который LLM легко разбирают и который требует значительно меньше токенов, чем дампы DOM или снимки экрана
- Кроссбраузерность — поддержка Chrome, Firefox, WebKit и Edge
- Полноценная автоматизация — более 70 инструментов для навигации, работы с формами, имитации сетевых запросов, управления хранилищами, трассировки, записи видео и многого другого
- Сохранение сеансов — состояние входа в систему и файлы cookie по умолчанию сохраняются между сеансами
- Работа в любой среде — VS Code, Cursor, Windsurf, Claude Code, Claude Desktop и любой MCP-клиент
Быстрый старт
Добавьте сервер в свой MCP-клиент:
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["@playwright/mcp@latest"]
}
}
}
По умолчанию браузер открывается с графическим интерфейсом, чтобы вы могли видеть происходящее. Инструкции по настройке конкретных клиентов приведены в разделе Установка.
Playwright MCP и Playwright CLI
| MCP | Playwright CLI | |
|---|---|---|
| Лучше всего подходит для | Специализированных циклов работы агентов, исследовательской автоматизации | Агентов программирования (Claude Code, Copilot), работающих с большими кодовыми базами |
| Принцип работы | LLM вызывает инструменты MCP со структурированными параметрами | Агент выполняет команды оболочки |
| Расход токенов | Выше — схемы инструментов и снимки находятся в контексте | Ниже — краткий вывод CLI, навыки загружаются по мере необходимости |
| Режим по умолчанию | С графическим интерфейсом | Без графического интерфейса |
| Настройка | Конфигурация JSON в MCP-клиенте | npm install -g @playwright/cli |
Доступные инструменты
Основные (всегда включены)
| Инструмент | Описание |
|---|---|
browser_navigate | Перейти по указанному URL-адресу |
browser_navigate_back | Перейти назад по истории браузера |
browser_snapshot | Создать снимок дерева доступности |
browser_find | Найти текст или совпадения с регулярным выражением в снимке |
browser_click | Нажать на элемент |
browser_hover | Навести указатель на элемент |
browser_drag | Выполнить перетаскивание между элементами |
browser_drop | Перетащить на элемент файлы или данные с указанным MIME-типом |
browser_type | Ввести текст в элемент |
browser_fill_form | Заполнить несколько полей формы одновременно |
browser_select_option | Выбрать вариант в раскрывающемся списке |
browser_press_key | Нажать клавишу (Enter, Tab и т. д.) |
browser_take_screenshot | Сделать снимок экрана в формате PNG/JPEG/WebP |
browser_tabs | Получить список вкладок, создать, закрыть или выбрать вкладку |
browser_handle_dialog | Подтвердить или отклонить диалоговое окно |
browser_file_upload | Загрузить файлы через диалог выбора файлов |
browser_console_messages | Получить вывод консоли |
browser_network_requests | Получить список сетевых запросов |
browser_network_request | Показать полную информацию об одном запросе |
browser_evaluate | Выполнить JavaScript на странице или для элемента |
browser_run_code_unsafe | Выполнить фрагмент кода Playwright |
browser_wait_for | Дождаться появления текста или истечения заданного времени |
browser_close | Закрыть страницу |
browser_resize | Изменить размер окна браузера |
Сеть (--caps=network)
| Инструмент | Описание |
|---|---|
browser_route | Имитировать сетевые запросы |
browser_route_list | Получить список активных маршрутов имитации запросов |
browser_unroute | Удалить маршруты имитации запросов |
browser_network_state_set | Включить или отключить подключение к сети |
Хранилища (--caps=storage)
| Инструмент | Описание |
|---|---|
browser_cookie_list/get/set/delete/clear | Управлять файлами cookie |
browser_localstorage_list/get/set/delete/clear | Управлять localStorage |
browser_sessionstorage_list/get/set/delete/clear | Управлять sessionStorage |
browser_storage_state | Сохранить файлы cookie и данные локального хранилища в файл |
browser_set_storage_state | Восстановить сохранённое состояние |
Тестирование (--caps=testing)
| Инструмент | Описание |
|---|---|
browser_generate_locator | Сгенерировать локатор Playwright для тестов |
browser_verify_element_visible | Проверить, что элемент виден |
browser_verify_text_visible | Проверить, что текст виден |
browser_verify_list_visible | Проверить, что список и его элементы видны |
browser_verify_value | Проверить значение поля формы |
Инструменты разработчика (--caps=devtools)
| Инструмент | Описание |
|---|---|
browser_start_tracing / browser_stop_tracing | Записывать трассировки выполнения |
browser_start_video / browser_stop_video | Записывать видео сеанса |
browser_video_chapter | Добавить в видео заставку главы |
browser_video_show_actions / browser_video_hide_actions | Показать или скрыть пояснения к действиям |
browser_start_recording / browser_stop_recording | Записывать действия, выполняемые вручную, в виде кода |
browser_highlight / browser_hide_highlight | Подсветить элемент на странице или скрыть подсветку |
browser_annotate | Попросить пользователя нарисовать аннотации на странице |
browser_resume | Возобновить приостановленное выполнение скрипта |
PDF (--caps=pdf)
| Инструмент | Описание |
|---|---|
browser_pdf_save | Экспортировать страницу в PDF |
Компьютерное зрение (--caps=vision)
| Инструмент | Описание |
|---|---|
browser_mouse_move_xy | Переместить указатель мыши в заданные координаты |
browser_mouse_click_xy | Нажать в точке с заданными координатами |
browser_mouse_drag_xy | Выполнить перетаскивание между точками с заданными координатами |
browser_mouse_down / browser_mouse_up | Нажать или отпустить кнопку мыши |
browser_mouse_wheel | Выполнить прокрутку колёсиком мыши |
Конфигурация (--caps=config)
| Инструмент | Описание |
|---|---|
browser_get_config | Получить итоговую конфигурацию |