Playwright MCP — браузерная автоматизация для LLM-агентов
📂 Исходный код на GitHubMCP-сервер для управления браузером из ИИ-агентов на базе Playwright
Playwright MCP — это официальный MCP-сервер от Microsoft, который позволяет ИИ-агентам управлять браузером через Playwright. Сервер предоставляет структурированный интерфейс для навигации по страницам, кликов, ввода текста, чтения контента и перехвата сетевых запросов — и всё это без использования vision-моделей.
Вместо скриншотов Playwright MCP использует accessibility-дерево браузера. Это делает инструмент лёгким, детерминированным и значительно более экономичным по токенам, чем подходы на основе изображений.
Как это работает
Сервер запускает headless (или headed) браузер и предоставляет набор MCP-инструментов. LLM-агент получает текстовый accessibility-снимок страницы — структурированное представление всех интерактивных элементов с их ролями, состояниями и координатами. На основе этого снимка агент принимает решения: куда кликнуть, что ввести, какую ссылку открыть.
Ключевое преимущество — детерминированность. Агент не гадает по пикселям, а работает с точными reference-идентификаторами элементов из accessibility-дерева.
Установка
Стандартная конфигурация для любого MCP-клиента:
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["@playwright/mcp@latest"]
}
}
}
Поддерживаются VS Code, Cursor, Windsurf, Claude Desktop, Claude Code, Cline, Copilot, Goose, Grok, Junie, Gemini CLI, opencode и другие MCP-клиенты. Node.js 18+ обязателен.
Основные инструменты
Playwright MCP предоставляет широкий набор инструментов для управления браузером:
Навигация и взаимодействие:
browser_navigate— переход по URLbrowser_click— клик по элементу (с поддержкой двойного клика и модификаторов)browser_type— ввод текста в поляbrowser_fill_form— заполнение нескольких полей формы за один вызовbrowser_select_option— выбор опции в выпадающем спискеbrowser_hover— наведение на элементbrowser_drag— drag-and-drop между элементамиbrowser_press_key— нажатие клавиш
Чтение состояния страницы:
browser_snapshot— получить accessibility-снимок текущей страницыbrowser_find— поиск текста или regex в accessibility-дереве (дешевле полного снимка)browser_take_screenshot— скриншот (только для визуальной диагностики, не для действий)browser_console_messages— консольные сообщения браузераbrowser_network_requests— список сетевых запросов
Управление вкладками:
browser_tabs— создание, закрытие, переключение вкладок
Дополнительные возможности (опционально):
--caps=network— перехват и мокинг сетевых запросов (browser_route)--caps=storage— управление куками, localStorage, sessionStorage--caps=vision— координатные взаимодействия (для специфических сценариев)--caps=pdf— генерация PDF--caps=devtools— доступ к DevTools
Режимы работы
Персистентный профиль. По умолчанию сервер сохраняет состояние браузера (куки, сессии) между запусками. Профиль хранится в ~/Library/Caches/ms-playwright/mcp-{channel}-{workspace-hash} на macOS. Это удобно для сценариев, где нужна авторизация.
Изолированные сессии. Флаг --isolated запускает каждый сеанс с чистым профилем — все данные теряются при закрытии. Полезно для тестирования.
Браузерное расширение. Chrome-расширение Playwright позволяет подключаться к уже открытому браузеру с вашими сессиями и расширениями. Подходит для сценариев, где нужен доступ к существующему состоянию.
Playwright MCP vs Playwright CLI
У Microsoft есть две смежные утилиты:
- Playwright MCP — MCP-интерфейс. Подходит для агентов, которым нужен постоянный контекст браузера: исследовательская автоматизация, self-healing тесты, длительные автономные сценарии.
- Playwright CLI — CLI + SKILLS. Предоставляет те же возможности через shell-команды, что экономичнее по токенам для кодинг-агентов, работающих с большими кодовыми базами.
Выбор зависит от сценария: MCP предпочтительнее для rich-интроспекции и итеративного взаимодействия, CLI — для высокопроизводительных агентов.
Конфигурация
Сервер поддерживает десятки опций через аргументы командной строки или JSON-конфиг:
npx @playwright/mcp@latest \
--browser webkit \
--headless \
--viewport-size 1280x720 \
--caps network,storage
Среди ключевых опций: выбор браузера (chromium, firefox, webkit), headless-режим, эмуляция устройств (--device "iPhone 15"), мобильный режим, CDP-подключение к существующему браузеру, прокси, таймауты, init-скрипты для начальной настройки страницы.
Docker
Для изолированного запуска:
{
"mcpServers": {
"playwright": {
"command": "docker",
"args": ["run", "-i", "--rm", "--init", "--pull=always", "mcr.microsoft.com/playwright/mcp"]
}
}
}
Программное использование
Интеграция в Node.js-приложения через SDK:
import { createConnection } from '@playwright/mcp';
import { SSEServerTransport } from '@modelcontextprotocol/sdk/server/sse.js';
const connection = await createConnection({
browser: { launchOptions: { headless: true } }
});
const transport = new SSEServerTransport('/messages', res);
await connection.connect(transport);
Итог
Playwright MCP — это зрелый, хорошо документированный инструмент для браузерной автоматизации через MCP. Он закрывает важный сценарий: даёт LLM-агентам возможность взаимодействовать с реальными веб-страницами без привлечения vision-моделей, оставаясь при этом лёгким и быстрым. Открытый исходный код под лицензией Apache 2.0, 35.4k звёзд на GitHub и активная поддержка от Microsoft делают его одним из самых популярных MCP-серверов на рынке.