MCP-сервер для Playwright от executeautomation: browser automation с snapshot-based навигацией и accessibility tree для стабильного AI тестирования.
# Claude Desktop — claude_desktop_config.json:
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["-y", "@executeautomation/playwright-mcp-server"]
}
}
}
# Claude Code (CLI):
claude mcp add --transport stdio playwright npx @executeautomation/playwright-mcp-server
# OpenCode — ~/.config/opencode/opencode.json:
{
"mcp": {
"playwright": {
"type": "local",
"command": ["npx", "-y", "@executeautomation/playwright-mcp-server"]
}
}
}
|
| Оценка безопасности MseeP.ai |
Сервер протокола контекста модели, предоставляющий возможности автоматизации браузера с использованием Playwright. Этот сервер позволяет LLM взаимодействовать с веб-страницами, делать скриншоты, генерировать тестовый код, скрапить страницы и выполнять JavaScript в реальной среде браузера.
Тестируйте ваши веб-приложения на реальных профилях устройств с помощью простой команды:
// Тест на iPhone 13 с автоматическим пользовательским агентом, поддержкой сенсорного ввода и плотностью пикселей устройства
await playwright_resize({ device: "iPhone 13" });
// Переключение на iPad в альбомной ориентации
await playwright_resize({ device: "iPad Pro 11", orientation: "landscape" });
// Тест десктопного вида
await playwright_resize({ device: "Desktop Chrome" });
Поддержка естественного языка для ИИ-ассистентов: - "Протестируй на iPhone 13" - "Переключи на вид iPad" - "Поверни в альбомный режим"
Поддерживается 143 устройства: iPhone, iPad, Pixel, Galaxy и десктопные браузеры с корректной эмуляцией области просмотра, пользовательского агента, событий касания и плотности пикселей устройства.
📚 Просмотреть краткую справку по устройствам | Руководство по промптам

Вы можете установить пакет, используя npm, mcp-get или Smithery:
Используя npm:
npm install -g @executeautomation/playwright-mcp-server
Используя mcp-get:
npx @michaellatman/mcp-get@latest install @executeautomation/playwright-mcp-server
Используя Smithery
Для автоматической установки Playwright MCP для Claude Desktop через Smithery:
npx @smithery/cli install @executeautomation/playwright-mcp-server --client claude
Используя Claude Code:
claude mcp add --transport stdio playwright npx @executeautomation/playwright-mcp-server
Установите сервер Playwright MCP в VS Code, используя одну из этих кнопок:
В качестве альтернативы вы можете установить сервер Playwright MCP, используя CLI VS Code:
# Для VS Code
code --add-mcp '{"name":"playwright","command":"npx","args":["@executeautomation/playwright-mcp-server"]}'
# Для VS Code Insiders
code-insiders --add-mcp '{"name":"playwright","command":"npx","args":["@executeautomation/playwright-mcp-server"]}'
После установки сервер ExecuteAutomation Playwright MCP будет доступен для использования с вашим агентом GitHub Copilot в VS Code.
Сервер Playwright MCP автоматически устанавливает бинарные файлы браузера при первом использовании. Когда сервер обнаруживает, что браузер отсутствует, он:
Ручная настройка не требуется! Просто начните использовать сервер, и он позаботится об установке браузера за вас.
Если вы предпочитаете устанавливать браузеры вручную или столкнулись с какими-либо проблемами при автоматической установке:
# Установить все браузеры
npx playwright install
# Или установить определенные браузеры
npx playwright install chromium
npx playwright install firefox
npx playwright install webkit
Браузеры устанавливаются в:
- Windows: %USERPROFILE%\AppData\Local\ms-playwright
- macOS: ~/Library/Caches/ms-playwright
- Linux: ~/.cache/ms-playwright
Это рекомендуемый режим для Claude Desktop.
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["-y", "@executeautomation/playwright-mcp-server"]
}
}
}
Примечание: В режиме stdio логирование автоматически направляется только в файлы (не в консоль) для поддержания чистой JSON-RPC-коммуникации. Логи записываются в ~/playwright-mcp-server.log.
При запуске видимого браузера на системах без дисплея или из рабочих процессов IDE вы можете запустить MCP-сервер как автономный HTTP-сервер:
Примечание для пользователей Claude Desktop: Claude Desktop в настоящее время требует режима stdio (конфигурация command/args). Режим HTTP рекомендуется для VS Code, пользовательских клиентов и удаленных развертываний. Подробности см. в CLAUDE_DESKTOP_CONFIG.md.
# Используя npx
npx @executeautomation/playwright-mcp-server --port 8931
# Или после глобальной установки
playwright-mcp-server --port 8931
Сервер запустит и покажет доступные конечные точки:
==============================================
Playwright MCP Server (HTTP Mode)
==============================================
Port: 8931
ENDPOINTS:
- SSE Stream: GET http://localhost:8931/sse
- Messages: POST http://localhost:8931/messages?sessionId=<id>
- MCP (unified): GET http://localhost:8931/mcp
- MCP (unified): POST http://localhost:8931/mcp?sessionId=<id>
- Health Check: GET http://localhost:8931/health
==============================================
⚠️ ВАЖНО: Поле
"type": "http"ОБЯЗАТЕЛЬНО для транспорта HTTP/SSE!
Для VS Code GitHub Copilot:
{
"github.copilot.chat.mcp.servers": {
"playwright": {
"url": "http://localhost:8931/mcp",
"type": "http"
}
}
}
Для пользовательских MCP-клиентов:
{
"mcpServers": {
"playwright": {
"url": "http://localhost:8931/mcp",
"type": "http"
}
}
}
Важно: Без указания "type": "http" соединение не удастся.
Для Claude Desktop: Вместо этого используйте stdio-режим (см. Стандартный режим выше)
/healthМониторинг: Сервер включает систему мониторинга, которая запускается на динамически выделенном порту (избегая конфликтов). Фактический порт можно увидеть в выводе консоли.
Примечание: Для Claude Desktop на данный момент продолжайте использовать stdio-режим (Стандартный режим выше).
Симптом: Ошибка 400 с сообщением "Bad Request: No transport found for sessionId"
Решение:
1. Проверьте, что конфигурация содержит "type": "http"
json
{
"url": "http://localhost:8931/mcp",
"type": "http" // ← Это ОБЯЗАТЕЛЬНО!
}
Убедитесь, что логи сервера показывают подключение:
bash
# В консоли должны появиться эти сообщения в таком порядке:
# 1. "Incoming request" - GET /mcp
# 2. "Transport registered" - с указанием sessionId
# 3. "POST message received" - с тем же sessionId
Перезапустите и сервер, и клиент.
bash
ssh -L 8931:localhost:8931 user@remote-serverДля тестирования в проекте используется Jest. Тесты находятся в каталоге src/__tests__.
Вы можете запустить тесты с помощью одной из следующих команд:
# Запуск тестов с помощью пользовательского скрипта (с покрытием)
node run-tests.cjs
# Запуск тестов с помощью npm-скриптов
npm test # Запуск тестов без покрытия
npm run test:coverage # Запуск тестов с покрытием
npm run test:custom # Запуск тестов с пользовательским скриптом (аналогично node run-tests.cjs)
Отчёт о покрытии тестами будет сгенерирован в каталоге coverage.
Пакет evals загружает MCP-клиент, который затем выполняет файл index.ts, поэтому между тестами нет необходимости пересобирать проект. Вы можете загрузить переменные окружения, поставив префикс перед командой npx. Полная документация доступна здесь.
OPENAI_API_KEY=your-key npx mcp-eval src/evals/evals.ts src/tools/codegen/index.ts
При добавлении новых инструментов, пожалуйста, учитывайте длину имени инструмента. Некоторые клиенты, например Cursor, имеют ограничение в 60 символов на комбинированное имя сервера и инструмента (имя_сервера:имя_инструмента).
Наше имя сервера — playwright-mcp. Пожалуйста, убедитесь, что имена ваших инструментов достаточно короткие, чтобы не превышать это ограничение.