executeautomation/playwright-mcp-server

executeautomation/playwright-mcp-server

от executeautomation
Управляет браузером через Playwright: открывает страницы, делает скриншоты, извлекает данные, эмулирует 143 устройства и пишет автотесты.
MseeP.ai Security Assessment Badge
MseeP.ai Security Assessment

Playwright MCP Server 🎭

Trust Score smithery badge

A Model Context Protocol server that provides browser automation capabilities using Playwright. This server enables LLMs to interact with web pages, take screenshots, generate test code, web scrapes the page and execute JavaScript in a real browser environment.

mcp-playwright MCP server

✨ What's New in v1.0.10

🎯 Device Emulation with 143 Real Device Presets!

Test your web applications on real device profiles with a simple command:

// Test on iPhone 13 with automatic user-agent, touch support, and device pixel ratio
await playwright_resize({ device: "iPhone 13" });

// Switch to iPad with landscape orientation
await playwright_resize({ device: "iPad Pro 11", orientation: "landscape" });

// Test desktop view
await playwright_resize({ device: "Desktop Chrome" });

Natural Language Support for AI Assistants:

  • "Test on iPhone 13"
  • "Switch to iPad view"
  • "Rotate to landscape"

Supports 143 devices: iPhone, iPad, Pixel, Galaxy, and Desktop browsers with proper emulation of viewport, user-agent, touch events, and device pixel ratios.

Часто задаваемые вопросы

Инструменты были проиндексированы:
clear_codegen_session

Очистить сессию генерации кода без создания теста

Параметры
  • sessionIdstringобязательный

    ID сеанса для очистки.

end_codegen_session

Завершает сессию генерации кода и генерирует тестовый файл

Параметры
  • sessionIdstringобязательный

    ID сеанса для завершения

get_codegen_session

Получает информацию о сессии генерации кода

Параметры
  • sessionIdstringобязательный

    Идентификатор сеанса для получения.

playwright_assert_response

Ожидает и проверяет ранее инициированную операцию ожидания HTTP-ответа.

Параметры
  • idstringобязательный

    Идентификатор HTTP-ответа, который первоначально ожидался с помощью Playwright_expect_response.

  • valuestring

    Данные, которые должны присутствовать в теле HTTP-ответа. Если они указаны, проверка не пройдёт, если это значение не будет найдено в теле ответа.

playwright_click

Кликните элемент на странице

Параметры
  • selectorstringобязательный

    CSS-селектор для элемента, который нужно кликнуть

playwright_click_and_switch_tab

Нажмите на ссылку и переключитесь на вновь открытую вкладку.

Параметры
  • selectorstringобязательный

    CSS-селектор для ссылки, по которой нужно кликнуть

playwright_close

Закройте браузер и освободите все ресурсы

Параметры

Без параметров.

playwright_console_logs

Получает консольные логи из браузера с опциями фильтрации.

Параметры
  • clearboolean

    Нужно ли очищать логи после получения (по умолчанию: false)

  • limitnumber

    Максимальное количество возвращаемых журналов

  • searchstring

    Текст для поиска в логах (обрабатывает текст с квадратными скобками)

  • typeenum

    Тип логов для получения (все, ошибка, предупреждение, лог, инфо, отладка, исключение)

playwright_custom_user_agent

Устанавливает пользовательский User Agent для браузера.

Параметры
  • userAgentstringобязательный

    Пользовательский User Agent для экземпляра браузера Playwright

playwright_delete

Выполнить HTTP-запрос DELETE

Параметры
  • headersobject

    Дополнительные заголовки, которые нужно включить в запрос.

  • tokenstring

    Bearer-токен для авторизации

  • urlstringобязательный

    URL для выполнения операции DELETE

playwright_drag

Перетаскивает элемент в целевое местоположение

Параметры
  • sourceSelectorstringобязательный

    CSS-селектор перетаскиваемого элемента

  • targetSelectorstringобязательный

    CSS-селектор для целевого местоположения

playwright_evaluate

Выполнить JavaScript в консоли браузера

Параметры
  • scriptstringобязательный

    Что именно должен делать JavaScript-код? Опишите задачу подробнее: например, работа с DOM, обработка данных, взаимодействие с API, вычисления, анимации или что-то другое. Также уточните окружение (браузер или Node.js), чтобы я дал корректный код.

playwright_expect_response

Попросите Playwright начать ожидание HTTP-ответа. Этот инструмент запускает операцию ожидания, но не ожидает её завершения.

Параметры
  • idstringобязательный

    Уникальный и произвольный идентификатор для последующего получения этого ответа с помощью Playwright_assert_response.

  • urlstringобязательный

    URL-паттерн для поиска в ответе.

playwright_fill

Заполни поле ввода

Параметры
  • selectorstringобязательный

    CSS-селектор для поля ввода

  • valuestringобязательный

    Заполняемое значение

playwright_get

Выполняет HTTP GET-запрос

Параметры
  • headersobject

    Дополнительные заголовки, которые нужно включить в запрос.

  • tokenstring

    Bearer-токен для авторизации

  • urlstringобязательный

    URL для выполнения GET-запроса

playwright_get_visible_html

Получает HTML-содержимое текущей страницы. По умолчанию все теги <script> удаляются из вывода, если removeScripts явно не установлен в false.

Параметры
  • cleanHtmlboolean

    Выполняет полную очистку HTML (по умолчанию: false)

  • maxLengthnumber

    Максимальное количество символов для возврата (по умолчанию: 5000)

  • minifyboolean

    Минифицирует вывод HTML (по умолчанию: false)

  • removeCommentsboolean

    Удаляет все HTML-комментарии (по умолчанию: false)

  • removeMetaboolean

    Удаляет все метатеги из HTML (по умолчанию: false)

  • removeScriptsboolean

    Удаляет все теги script из HTML (по умолчанию: true)

  • removeStylesboolean

    Удаляет все теги style из HTML (по умолчанию: false)

  • selectorstring

    Чтобы ограничить выборку HTML конкретным контейнером, используйте селектор по ID или классу. Например, #main-content или .container. Если нужно выбрать только прямых потомков, добавьте комбинатор >: #main-content > p. Для вложенных элементов любого уровня используйте пробел: #main-content p. Если контейнер не имеет класса или ID, можно использовать атрибут: [data-container] или позицию: div:nth-of-type(2). Всё зависит от структуры страницы. Если расскажете, какой именно контейнер имеете в виду, подскажу точнее.

playwright_get_visible_text

Получить видимое текстовое содержимое текущей страницы

Параметры

Без параметров.

playwright_go_back

Вернуться назад в истории браузера

Параметры

Без параметров.

playwright_go_forward

Перейти вперёд по истории браузера

Параметры

Без параметров.

playwright_hover

Наводит курсор на элемент на странице.

Параметры
  • selectorstringобязательный

    CSS-селектор для элемента, на который нужно навести курсор

playwright_iframe_click

Нажимает элемент в iframe на странице

Параметры
  • iframeSelectorstringобязательный

    Селектор CSS для iframe, содержащего элемент, по которому нужно кликнуть.

  • selectorstringобязательный

    CSS-селектор для элемента, который нужно кликнуть

playwright_iframe_fill

Заполнить элемент в iframe на странице

Параметры
  • iframeSelectorstringобязательный

    CSS selector для iframe, содержащего элемент для заполнения.

  • selectorstringобязательный

    CSS-селектор для элемента, который нужно заполнить

  • valuestringобязательный

    Заполняемое значение

playwright_navigate

Перейти по URL

Параметры
  • browserTypeenum

    Какой браузер использовать (chromium, firefox, webkit). По умолчанию chromium

  • headlessboolean

    Запускает браузер в фоновом режиме (по умолчанию: false)

  • heightnumber

    Высота области просмотра в пикселях (по умолчанию: 800)

  • timeoutnumber

    Таймаут навигации в миллисекундах

  • urlstringобязательный

    URL для перехода на указанный веб-сайт

  • waitUntilstring

    Условие ожидания навигации.

  • widthnumber

    Ширина области просмотра в пикселях (по умолчанию: 1280)

playwright_patch

Выполняет HTTP PATCH-запрос

Параметры
  • headersobject

    Дополнительные заголовки, которые нужно включить в запрос.

  • tokenstring

    Bearer-токен для авторизации

  • urlstringобязательный

    URL для выполнения PATCH-операции

  • valuestringобязательный

    Данные для PATCH в теле запроса

playwright_post

Выполняет HTTP POST запрос.

Параметры
  • headersobject

    Дополнительные заголовки, которые нужно включить в запрос.

  • tokenstring

    Bearer-токен для авторизации

  • urlstringобязательный

    URL для выполнения POST-запроса

  • valuestringобязательный

    Данные для отправки в теле запроса

playwright_press_key

Нажмите клавишу на клавиатуре

Параметры
  • keystringобязательный

    Клавиша для нажатия (например, 'Enter', 'ArrowDown', 'a')

  • selectorstring

    Необязательный CSS-селектор для фокусировки перед нажатием клавиши.

playwright_put

Выполнить HTTP PUT-запрос

Параметры
  • headersobject

    Дополнительные заголовки, которые нужно включить в запрос.

  • tokenstring

    Bearer-токен для авторизации

  • urlstringобязательный

    URL для выполнения операции PUT

  • valuestringобязательный

    Данные для PUT в теле запроса

playwright_resize

Изменяет размер окна просмотра браузера вручную или по предустановкам устройств. Поддерживает более 143 предустановок, включая iPhone, iPad, Android-устройства и настольные браузеры с корректным user-agent и эмуляцией касаний.

Параметры
  • devicestring

    Название пресета устройства (например, 'iPhone 13', 'iPad Pro 11', 'Pixel 7', 'Galaxy S24', 'Desktop Chrome'). Автоматически настраивает viewport, user-agent и возможности устройства. Используйте playwright.devices, чтобы посмотреть все доступные устройства.

  • heightnumber

    Высота области просмотра в пикселях (для ручного изменения размера без пресета устройства).

  • orientationenum

    Ориентация устройства: 'portrait' или 'landscape' (применяется только при использовании пресета устройства)

  • widthnumber

    Ширина области просмотра в пикселях (для ручного изменения размера без пресета устройства).

playwright_save_as_pdf

Сохрани текущую страницу в формате PDF

Параметры
  • filenamestring

    Имя PDF-файла (по умолчанию: page.pdf)

  • formatstring

    Формат страницы (например, 'A4', 'Letter')

  • marginobject

    Поля страницы

  • outputPathstringобязательный

    Каталог, в котором будет сохранен PDF

  • printBackgroundboolean

    Печатать ли фоновую графику

playwright_screenshot

Снимает скриншот текущей страницы или конкретного элемента.

Параметры
  • downloadsDirstring

    Путь к папке загрузок (по умолчанию: папка «Загрузки» пользователя)

  • fullPageboolean

    Сохранять скриншот всей страницы (по умолчанию: false)

  • heightnumber

    Высота в пикселях (по умолчанию 100)

  • namestringобязательный

    Название для скриншота

  • savePngboolean

    Сохранять скриншот как PNG-файл (по умолчанию: false)

  • selectorstring

    CSS-селектор для элемента для скриншота

  • storeBase64boolean

    Сохраняет скриншот в формате base64 (по умолчанию: true)

  • widthnumber

    Ширина в пикселях (по умолчанию 100)

playwright_select

Выбирает элемент на странице с помощью тега Select

Параметры
  • selectorstringобязательный

    CSS-селектор для элемента, который нужно выбрать

  • valuestringобязательный

    Значение для выбора

playwright_upload_file

Загрузить файл в элемент input[type='file'] на странице

Параметры
  • filePathstringобязательный

    Абсолютный путь к файлу для загрузки

  • selectorstringобязательный

    # CSS-селекторы для элемента file input ## Основной селектор css input[type="file"] Это самый прямой и надёжный способ выбрать файловый input. ## Стилизация кнопки выбора файла css input[type="file"]::file-selector-button Псевдоэлемент ::file-selector-button стилизует саму кнопку «Выберите файл». Это работает в современных браузерах. css input[type="file"]::file-selector-button { background: #4CAF50; color: white; padding: 8px 16px; border: none; border-radius: 4px; cursor: pointer; } ## Состояния кнопки css input[type="file"]::file-selector-button:hover { background: #45a049; } input[type="file"]::file-selector-button:active { background: #3d8b40; } input[type="file"]::file-selector-button:disabled { opacity: 0.5; cursor: not-allowed; } ## Стилизация текста рядом с кнопкой Текст, который показывает имя выбранного файла, стилизуется через сам input: css input[type="file"] { color: #333; font-size: 14px; } ## Состояния самого input css input[type="file"]:hover { /* наведение */ } input[type="file"]:focus { /* фокус */ } input[type="file"]:disabled { /* отключён */ } input[type="file"]:required { /* обязательный */ } input[type="file"]:optional { /* необязательный */ } ## Валидация css input[type="file"]:valid { border-color: green; } input[type="file"]:invalid { border-color: red; } input[type="file"]:user-invalid { border-color: red; } :user-invalid — новое, более семантичное состояние: срабатывает только после того, как пользователь реально взаимодействовал с полем и оставил его в невалидном состоянии. ## Комбинированные селекторы css /* Только обязательные файловые инпуты */ input[type="file"]:required::file-selector-button { background: #ff9800; } /* Файловый инпут внутри формы с классом .upload */ .upload input[type="file"]::file-selector-button { border-radius: 0; } ## Ограничения - ::before и ::after на input[type="file"] не работают — это replaced element. - Псевдокласс :placeholder-shown неприменим — у файловых инпутов нет placeholder. - В Safari и старых версиях Firefox ::file-selector-button поддерживается хуже, чем в Chrome и Edge. Для старых Safari используют ::-webkit-file-upload-button как фолбэк: css input[type="file"]::-webkit-file-upload-button { /* стили для старых Safari */ } input[type="file"]::file-selector-button { /* стили для современных браузеров */ } Если нужен полностью кастомный вид, проще скрыть нативный input и показать свою кнопку через label с for, но тогда теряется семантика и доступность.

start_codegen_session

Начинает новую сессию генерации кода для записи действий Playwright.

Параметры
  • optionsobjectобязательный

    Параметры генерации кода

1.0.12основная
1.0.11
1.0.10
1.0.9
1.0.8
1.0.7
1.0.6
1.0.5
1.0.4
1.0.3
1.0.2
1.0.1
1.0.0
0.3.1
0.3.0
0.2.9
0.2.8
0.2.7
0.2.6
0.2.5
0.2.4
0.2.3
0.2.2
0.2.1
0.2.0

Выберите клиент, чтобы установить executeautomation/playwright-mcp-server:

Любой клиент

Конфиг добавления MCP сервера стандартный, обычно он не меняется вообще, поэтому подходит практически к любому ИИ клиенту, поддерживающему MCP.

{
  "mcpServers": {
    "executeautomation-playwright-mcp-server-trq8ed84u9": {
      "command": "npx",
      "args": [
        "-y",
        "@executeautomation/playwright-mcp-server"
      ]
    }
  }
}
CursorCursor

Перейдите по ссылке и сервер автоматически будет добавлен в Cursor. Либо откройте/создайте файл ~/.cursor/mcp.json(%USERPROFILE%\.cursor\mcp.json на Windows) и добавьте конфиг сервера:

{
  "mcpServers": {
    "executeautomation-playwright-mcp-server-trq8ed84u9": {
      "command": "npx",
      "args": [
        "-y",
        "@executeautomation/playwright-mcp-server"
      ]
    }
  }
}
VS Code

Создайте .vscode/mcp.json в проекте (ключ верхнего уровня — servers):

{
  "servers": {
    "executeautomation-playwright-mcp-server-trq8ed84u9": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@executeautomation/playwright-mcp-server"
      ]
    }
  }
}

Либо добавьте сервер через терминал:

code --add-mcp "{\"name\":\"executeautomation-playwright-mcp-server-trq8ed84u9\",\"type\":\"stdio\",\"command\":\"npx\",\"args\":[\"-y\",\"@executeautomation/playwright-mcp-server\"]}"
ClaudeClaude Desktop

Откройте Settings → Developer → Edit Config — это откроет файл claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Впишите сервер и полностью перезапустите Claude Desktop:

{
  "mcpServers": {
    "executeautomation-playwright-mcp-server-trq8ed84u9": {
      "command": "npx",
      "args": [
        "-y",
        "@executeautomation/playwright-mcp-server"
      ]
    }
  }
}
Claude CodeClaude Code

Добавьте сервер одной командой в терминале:

claude mcp add executeautomation-playwright-mcp-server-trq8ed84u9 -- npx -y @executeautomation/playwright-mcp-server

Либо через JSON-конфиг:

claude mcp add-json executeautomation-playwright-mcp-server-trq8ed84u9 "{\"command\":\"npx\",\"args\":[\"-y\",\"@executeautomation/playwright-mcp-server\"]}"
CodexCodex

Добавьте сервер командой в терминале:

codex mcp add executeautomation-playwright-mcp-server-trq8ed84u9 -- npx -y @executeautomation/playwright-mcp-server

Либо вручную в ~/.codex/config.toml(%USERPROFILE%\.codex\config.toml на Windows):

[mcp_servers.executeautomation-playwright-mcp-server-trq8ed84u9]
command = "npx"
args = ["-y", "@executeautomation/playwright-mcp-server"]
PerplexityPerplexity

MCP доступен подписчикам Perplexity Pro / Max / Enterprise. Локальные серверы — только в приложении для macOS.

  1. Откройте Настройки аккаунта → Connectors.
  2. Установите вспомогательное приложение PerplexityXPC (один раз).
  3. Нажмите Add Connector → вкладка Simple.
  4. В поле Server Name укажите executeautomation/playwright-mcp-server, а в поле команды запуска — строку ниже:
npx -y @executeautomation/playwright-mcp-server

Нажмите Save и дождитесь статуса Running.

WindsurfWindsurf

Откройте Windsurf Settings → Cascade → MCP Servers или отредактируйте файл ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "executeautomation-playwright-mcp-server-trq8ed84u9": {
      "command": "npx",
      "args": [
        "-y",
        "@executeautomation/playwright-mcp-server"
      ]
    }
  }
}
ClineCline

В панели Cline нажмите иконку MCP Servers → Configure → Configure MCP Servers (или отредактируйте ~/.cline/mcp.json) и добавьте сервер:

{
  "mcpServers": {
    "executeautomation-playwright-mcp-server-trq8ed84u9": {
      "command": "npx",
      "args": [
        "-y",
        "@executeautomation/playwright-mcp-server"
      ],
      "disabled": false,
      "autoApprove": []
    }
  }
}
Continue

Создайте файл в .continue/mcpServers/ (например executeautomation-playwright-mcp-server-trq8ed84u9.yaml) или добавьте блок в config.yaml. MCP работает только в режиме agent:

mcpServers:
  - name: executeautomation-playwright-mcp-server-trq8ed84u9
    command: npx
    args:
      - "-y"
      - "@executeautomation/playwright-mcp-server"
Zed

Выполните agent: add context server или откройте настройки (zed: open settings file) и добавьте сервер в объект context_servers:

{
  "context_servers": {
    "executeautomation-playwright-mcp-server-trq8ed84u9": {
      "command": "npx",
      "args": [
        "-y",
        "@executeautomation/playwright-mcp-server"
      ]
    }
  }
}

Похожие MCP-сервера

automatalabs/mcp-server-playwright

automatalabs/mcp-server-playwright

от automata-labs-team

Управляет реальным браузером через Playwright: открывает сайты, кликает по элементам, заполняет формы, делает скриншоты и выполняет JavaScript.

JavaScript⭐ 297
Playwright MCP

Playwright MCP

официальный

от microsoft

Playwright управляет браузером: открывает страницы, кликает, заполняет формы. Работает по accessibility-дереву, без скриншотов.

TypeScript⭐ 38388
webdriverio/mcp

webdriverio/mcp

официальный

от webdriverio

Управляйте браузерами и мобильными приложениями через WebDriverIO с MCP-сервером. Автоматизируйте Chrome, Firefox, Edge, Safari, iOS и Android: навигация, клики, скриншоты. Оптимален для тестирования.

TypeScript⭐ 42
swimmwatch/cloakbrowser-mcp

swimmwatch/cloakbrowser-mcp

от swimmwatch

Обходит антибот-защиту в браузере человеческими движениями мыши, клавиатуры и скролла. Сохраняет профили Chrome и подбирает прокси по GeoIP.

TypeScript⭐ 171
Browserbase MCP

Browserbase MCP

официальный

от browserbase

Запускает облачный браузер Browserbase: открывает любые сайты, кликает по элементам, заполняет формы и выгружает данные со страниц.

TypeScript⭐ 3399
debugg-ai/debugg-ai-mcp

debugg-ai/debugg-ai-mcp

от debugg-ai

MCP инструмент для браузерного тестирования: задайте URL и описание — AI-агент выполняет сценарий и выдаёт pass/fail со скриншотами. Есть probe_page для быстрых проверок без LLM. Помогает разработчикам и QA автоматизировать UI-тесты.

TypeScript⭐ 68
© Каталог MCP, 2026. Все права защищены.
Проект не аффилирован с Anthropic и любыми упомянутыми продуктами.
Все названия и торговые марки принадлежат их владельцам.
Контакты для связи: hi@mcp-katalog.ru

Лука Никитин