Playwright MCP — браузерная автоматизация через MCP
Playwright MCP — реализация протокола MCP (Model Context Protocol), запускающая браузерную автоматизацию на базе Playwright. Сервер передаёт LLM не скриншоты, а структурированный accessibility-снимок страницы (accessibility tree). Такой подход не требует визуальных моделей, быстрее и точнее, чем работа по пикселям.
Установка и запуск
Добавьте в конфигурацию MCP-серверов вашего клиента (например, в claude_desktop_config.json или настройки VS Code).
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["@playwright/mcp@latest"]
}
}
}
Для VS Code можно установить через CLI:
# Обычный VS Code
code --add-mcp '{"name":"playwright","command":"npx","args":["@playwright/mcp@latest"]}'
# VS Code Insiders
code-insiders --add-mcp '{"name":"playwright","command":"npx","args":["@playwright/mcp@latest"]}'
После установки сервер готов к работе с GitHub Copilot Agent или любым другим MCP-клиентом.
Режимы работы
Режим Snapshot (по умолчанию)
Использует accessibility-дерево для взаимодействия — не требует скриншотов. Инструменты:
browser_navigate — переход по URL.
browser_click, browser_hover, browser_drag — клики, наведение, перетаскивание (указываете element + ref из снимка).
browser_type — ввод текста, опционально с отправкой Enter.
browser_select_option — выбор в выпадающем списке.
browser_press_key — нажатие клавиш (ArrowLeft, a и т.д.).
browser_snapshot — снять accessibility-снимок текущей страницы.
browser_save_as_pdf — сохранить страницу как PDF.
browser_wait — пауза до 10 секунд.
browser_go_back, browser_go_forward, browser_close — навигация и закрытие.
Режим Vision (флаг --vision)
Работает по скриншотам и координатам. Пригодится для моделей, которые умеют взаимодействовать с элементами через x, y. Запуск:
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["@playwright/mcp@latest", "--vision"]
}
}
}
Инструменты Vision-режима:
browser_screenshot — получить скриншот.
browser_move_mouse — переместить мышь в (x, y).
browser_click, browser_drag, browser_type — через координаты.
browser_press_key, browser_save_as_pdf, browser_wait, browser_close — аналогично Snapshot.
Настройки окружения
Путь к профилю браузера
Playwright MCP создаёт отдельный профиль Chrome. По умолчанию:
- Windows:
%USERPROFILE%\AppData\Local\ms-playwright\mcp-chrome-profile
- macOS:
~/Library/Caches/ms-playwright/mcp-chrome-profile
- Linux:
~/.cache/ms-playwright/mcp-chrome-profile
Логин и куки сохраняются в этом профиле. Если нужно начать «с чистого листа» — удалите папку профиля между сессиями.
Headless-режим (без GUI)
Для фоновых или пакетных операций добавьте флаг --headless:
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["@playwright/mcp@latest", "--headless"]
}
}
}
Headed-режим на Linux без DISPLAY
Если нужно отображать браузер на удалённом сервере, запустите Playwright-сервер отдельно:
npx playwright run-server
Затем в MCP-конфиге укажите полученный WebSocket-адрес:
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["@playwright/mcp@latest"],
"env": {
"PLAYWRIGHT_WS_ENDPOINT": "ws://localhost:<port>/"
}
}
}
}
Программное использование (Node.js)
import { createServer } from '@playwright/mcp';
const server = createServer({ launchOptions: { headless: true } });
// Подключение через SSE, WebSocket или любой MCP-транспорт
const transport = new SSEServerTransport('/messages', res);
server.connect(transport);
Замечания
- Snapshot-режим быстрее, надёжнее и не требует лишних вызовов к LLM для обработки изображений.
- Vision-режим подходит для сценариев, где важны точные координаты (например, drag'n'drop или канвас).
- Время ожидания в
browser_wait ограничено 10 секундами.
- Для работы необходим установленный Node.js 18+ и Playwright (утилита
npx сама подтянет зависимости).
Полный список инструментов и их параметры — в официальном README Playwright MCP.
Комментарии
Комментариев пока нет. Будьте первым.