Драматург MCP
Сервер Model Context Protocol (MCP), который обеспечивает возможности автоматизации браузера с помощью Playwright . Этот сервер позволяет LLM взаимодействовать с веб-страницами посредством структурированных снимков доступности, обходя необходимость в снимках экрана или визуально настроенных моделях.
Основные характеристики
- Быстрый и легкий . Использует дерево доступности Playwright, а не пиксельный ввод.
- Дружелюбен к LLM . Не требует моделей зрения, работает исключительно со структурированными данными.
- Детерминированное применение инструмента . Избегает неоднозначности, характерной для подходов, основанных на скриншотах.
Требования
- Node.js 18 или новее
- VS Code, Cursor, Windsurf, Claude Desktop или любой другой MCP-клиент
Начиная
Сначала установите сервер Playwright MCP с вашим клиентом. Типичная конфигурация выглядит так:
Вы также можете установить сервер Playwright MCP с помощью VS Code CLI:
После установки сервер Playwright MCP будет доступен для использования с вашим агентом GitHub Copilot в VS Code.
Перейдите в Cursor Settings
-> MCP
-> Add new MCP Server
. Назовите по своему вкусу, используйте тип command
с командой npx @playwright/mcp
. Вы также можете проверить конфигурацию или добавить аргументы, подобные команде, нажав Edit
.
Следуйте документации Windsuff MCP. Используйте следующую конфигурацию:
Следуя руководству по установке MCP, используйте следующую конфигурацию:
Конфигурация
Сервер Playwright MCP поддерживает следующие аргументы. Они могут быть предоставлены в конфигурации JSON выше, как часть списка "args"
:
Профиль пользователя
Вы можете запустить Playwright MCP с постоянным профилем как обычный браузер (по умолчанию) или в изолированных контекстах для сеансов тестирования.
Постоянный профиль
Вся информация о входе в систему будет храниться в постоянном профиле, вы можете удалить его между сеансами, если хотите очистить состояние офлайн. Постоянный профиль находится в следующих местах, и вы можете переопределить его с помощью аргумента --user-data-dir
.
Изолированный
В изолированном режиме каждый сеанс запускается в изолированном профиле. Каждый раз, когда вы просите MCP закрыть браузер, сеанс закрывается, и все состояние хранилища для этого сеанса теряется. Вы можете предоставить начальное состояние хранилища браузеру через contextOptions
конфигурации или через аргумент --storage-state
. Узнайте больше о состоянии хранилища здесь .
Файл конфигурации
Сервер Playwright MCP можно настроить с помощью файла конфигурации JSON. Вы можете указать файл конфигурации с помощью параметра командной строки --config
:
Автономный MCP-сервер
При запуске браузера Headed в системе без дисплея или из рабочих процессов IDE запустите сервер MCP из среды с DISPLAY и передайте флаг --port
, чтобы включить транспорт SSE.
Затем в конфигурации клиента MCP задайте url
-адрес конечной точки SSE:
ПРИМЕЧАНИЕ: На данный момент реализация Docker поддерживает только безголовый Chromium.
Вы можете создать образ Docker самостоятельно.
Инструменты
Инструменты доступны в двух режимах:
- Режим моментальных снимков (по умолчанию): использует моментальные снимки доступности для повышения производительности и надежности.
- Режим Vision : использует снимки экрана для визуального взаимодействия.
Чтобы использовать Vision Mode, добавьте флаг --vision
при запуске сервера:
Режим Vision лучше всего работает с компьютерными моделями, которые способны взаимодействовать с элементами, используя координатное пространство XY, судя по предоставленному снимку экрана.
- снимок_браузера
- Название: Снимок страницы
- Описание: Сделать снимок доступности текущей страницы, это лучше, чем снимок экрана
- Параметры: Нет
- Только для чтения: правда
- браузер_щелчок
- Название: Щелчок
- Описание: Выполнить щелчок на веб-странице.
- Параметры:
element
(строка): понятное человеку описание элемента, используемое для получения разрешения на взаимодействие с элементомref
(string): Точная ссылка на целевой элемент из снимка страницы
- Только для чтения: ложно
- браузер_перетаскивание
- Название: Перетаскивание мыши
- Описание: Выполнение перетаскивания между двумя элементами.
- Параметры:
startElement
(строка): понятное человеку описание исходного элемента, используемое для получения разрешения на взаимодействие с элементом.startRef
(string): Точная ссылка на исходный элемент из снимка страницыendElement
(строка): понятное человеку описание целевого элемента, используемое для получения разрешения на взаимодействие с элементом.endRef
(строка): точная ссылка на целевой элемент из снимка страницы
- Только для чтения: ложно
- браузер_hover
- Название: Наведение мыши
- Описание: Наведите курсор на элемент на странице.
- Параметры:
element
(строка): понятное человеку описание элемента, используемое для получения разрешения на взаимодействие с элементомref
(string): Точная ссылка на целевой элемент из снимка страницы
- Только для чтения: правда
- тип_браузера
- Название: Введите текст
- Описание: Введите текст в редактируемый элемент.
- Параметры:
element
(строка): понятное человеку описание элемента, используемое для получения разрешения на взаимодействие с элементомref
(string): Точная ссылка на целевой элемент из снимка страницыtext
(строка): Текст для ввода в элемент.submit
(логическое значение, необязательно): следует ли отправить введенный текст (нажмите Enter после этого)slowly
(boolean, необязательно): Вводить ли по одному символу за раз. Полезно для запуска обработчиков клавиш на странице. По умолчанию весь текст заполняется сразу.
- Только для чтения: ложно
- выбор_опции_браузера
- Название: Выберите вариант
- Описание: Выберите вариант в раскрывающемся списке.
- Параметры:
element
(строка): понятное человеку описание элемента, используемое для получения разрешения на взаимодействие с элементомref
(string): Точная ссылка на целевой элемент из снимка страницыvalues
(массив): Массив значений для выбора в раскрывающемся списке. Это может быть одно значение или несколько значений.
- Только для чтения: ложно
- браузер_нажмите_клавишу
- Название: Нажмите клавишу
- Описание: Нажмите клавишу на клавиатуре.
- Параметры:
key
(строка): название клавиши, которую нужно нажать, или символ, который нужно сгенерировать, например,ArrowLeft``a
- Только для чтения: ложно
- браузер_ожидание_для
- Название: Подождите
- Описание: Ожидание появления или исчезновения текста или истечения указанного времени.
- Параметры:
time
(число, необязательно): время ожидания в секундахtext
(строка, необязательно): Текст, которого нужно ждатьtextGone
(строка, необязательно): Текст, которого нужно дождаться, чтобы исчезнуть.
- Только для чтения: правда
- загрузка_файла_браузера
- Название: Загрузить файлы
- Описание: Загрузите один или несколько файлов.
- Параметры:
paths
(массив): Абсолютные пути к файлам для загрузки. Может быть одним файлом или несколькими файлами.
- Только для чтения: ложно
- диалог_обработки_браузера
- Название: Обработка диалога
- Описание: Обработка диалога.
- Параметры:
accept
(логическое значение): принимать ли диалог.promptText
(строка, необязательно): Текст подсказки в случае диалогового окна подсказки.
- Только для чтения: ложно
- браузер_навигация
- Название: Перейти к URL-адресу
- Описание: Перейдите по URL-адресу
- Параметры:
url
(строка): URL-адрес для перехода
- Только для чтения: ложно
- браузер_навигация_назад
- Название: Вернуться назад
- Описание: Вернуться на предыдущую страницу
- Параметры: Нет
- Только для чтения: правда
- браузер_навигация_вперед
- Название: Идти вперед
- Описание: Перейти на следующую страницу
- Параметры: Нет
- Только для чтения: правда
- браузер_сделать_скриншот
- Название: Сделать снимок экрана
- Описание: Сделать снимок экрана текущей страницы. Вы не можете выполнять действия на основе снимка экрана, используйте для действий browser_snapshot.
- Параметры:
raw
(boolean, необязательно): Возвращать ли без сжатия (в формате PNG). Значение по умолчанию — false, что возвращает изображение JPEG.filename
(строка, необязательно): Имя файла для сохранения снимка экрана. По умолчаниюpage-{timestamp}.{png|jpeg}
если не указано иное.element
(строка, необязательно): понятное человеку описание элемента, используемое для получения разрешения на снимок экрана элемента. Если не указано, снимок экрана будет сделан из области просмотра. Если элемент указан, необходимо указать также ссылку.ref
(строка, необязательно): Точная ссылка на целевой элемент из снимка страницы. Если не указано, снимок экрана будет сделан из области просмотра. Если указано ref, элемент также должен быть указан.
- Только для чтения: правда
- браузер_pdf_сохранить
- Название: Сохранить как PDF
- Описание: Сохранить страницу как PDF
- Параметры:
filename
(строка, необязательно): Имя файла для сохранения PDF-файла. По умолчаниюpage-{timestamp}.pdf
если не указано иное.
- Только для чтения: правда
- запросы_браузера_сети
- Название: Список сетевых запросов
- Описание: Возвращает все сетевые запросы с момента загрузки страницы.
- Параметры: Нет
- Только для чтения: правда
- сообщения_консоли_браузера
- Название: Получить консольные сообщения
- Описание: Возвращает все сообщения консоли.
- Параметры: Нет
- Только для чтения: правда
- браузер_установить
- Заголовок: Установка браузера, указанного в конфиге
- Описание: Установите браузер, указанный в конфигурации. Вызовите его, если вы получили ошибку о том, что браузер не установлен.
- Параметры: Нет
- Только для чтения: ложно
- браузер_закрыть
- Заголовок: Закрыть браузер
- Описание: Закрыть страницу
- Параметры: Нет
- Только для чтения: правда
- изменение_размера_браузера
- Название: Изменение размера окна браузера
- Описание: Изменение размера окна браузера.
- Параметры:
width
(число): Ширина окна браузера.height
(число): Высота окна браузера.
- Только для чтения: правда
- список_вкладок_браузера
- Название: Список вкладок
- Описание: Список вкладок браузера
- Параметры: Нет
- Только для чтения: правда
- браузер_вкладка_новая
- Заголовок: Открыть новую вкладку
- Описание: Открыть новую вкладку
- Параметры:
url
(строка, необязательно): URL для перехода на новую вкладку. Если не указано, новая вкладка будет пустой.
- Только для чтения: правда
- выбор_вкладки_браузера
- Название: Выберите вкладку
- Описание: Выберите вкладку по индексу
- Параметры:
index
(номер): индекс вкладки для выбора.
- Только для чтения: правда
- закрыть_вкладку_браузера
- Заголовок: Закрыть вкладку
- Описание: Закрыть вкладку
- Параметры:
index
(число, необязательно): индекс вкладки для закрытия. Закрывает текущую вкладку, если не указано.
- Только для чтения: ложно
- браузер_генерировать_драматург_тест
- Название: Сгенерируйте тест драматурга
- Описание: Создать тест драматурга для заданного сценария.
- Параметры:
name
(строка): Название тестаdescription
(строка): Описание тестаsteps
(массив): шаги теста
- Только для чтения: правда
- захват_экрана_браузера
- Название: Сделать снимок экрана
- Описание: Сделать снимок экрана текущей страницы.
- Параметры: Нет
- Только для чтения: правда
- экран_браузера_перемещение_мыши
- Название: Перемещение мыши
- Описание: Переместить мышь в указанную позицию.
- Параметры:
element
(строка): понятное человеку описание элемента, используемое для получения разрешения на взаимодействие с элементомx
(число): координата Xy
(число): координата Y
- Только для чтения: правда
- щелчок_по_экрану_браузера
- Название: Щелчок
- Описание: Щелкните левой кнопкой мыши.
- Параметры:
element
(строка): понятное человеку описание элемента, используемое для получения разрешения на взаимодействие с элементомx
(число): координата Xy
(число): координата Y
- Только для чтения: ложно
- перетаскивание_экрана_браузера
- Название: Перетаскивание мыши
- Описание: Перетащите левой кнопкой мыши
- Параметры:
element
(строка): понятное человеку описание элемента, используемое для получения разрешения на взаимодействие с элементомstartX
(число): Начальная координата XstartY
(число): начальная координата YendX
(число): Конечная координата XendY
(число): Конечная координата Y
- Только для чтения: ложно
- тип_экрана_браузера
- Название: Введите текст
- Описание: Введите текст
- Параметры:
text
(строка): Текст для ввода в элемент.submit
(логическое значение, необязательно): следует ли отправить введенный текст (нажмите Enter после этого)
- Только для чтения: ложно
- браузер_нажмите_клавишу
- Название: Нажмите клавишу
- Описание: Нажмите клавишу на клавиатуре.
- Параметры:
key
(строка): название клавиши, которую нужно нажать, или символ, который нужно сгенерировать, например,ArrowLeft``a
- Только для чтения: ложно
- браузер_ожидание_для
- Название: Подождите
- Описание: Ожидание появления или исчезновения текста или истечения указанного времени.
- Параметры:
time
(число, необязательно): время ожидания в секундахtext
(строка, необязательно): Текст, которого нужно ждатьtextGone
(строка, необязательно): Текст, которого нужно дождаться, чтобы исчезнуть.
- Только для чтения: правда
- загрузка_файла_браузера
- Название: Загрузить файлы
- Описание: Загрузите один или несколько файлов.
- Параметры:
paths
(массив): Абсолютные пути к файлам для загрузки. Может быть одним файлом или несколькими файлами.
- Только для чтения: ложно
- диалог_обработки_браузера
- Название: Обработка диалога
- Описание: Обработка диалога.
- Параметры:
accept
(логическое значение): принимать ли диалог.promptText
(строка, необязательно): Текст подсказки в случае диалогового окна подсказки.
- Только для чтения: ложно
local-only server
The server can only run on the client's local machine because it depends on local resources.
Сервер протокола контекста модели, который позволяет магистрам уровня магистра взаимодействовать с веб-страницами посредством структурированных снимков доступности без необходимости использования моделей зрения или снимков экрана.
Related MCP Servers
- -securityAlicense-qualityA Model Context Protocol server that allows LLMs to interact with web content through standardized tools, currently supporting web scraping functionality.Last updated -PythonMIT License
- -securityFlicense-qualityA Model Context Protocol server that enables LLMs to fetch and process web content in multiple formats (HTML, JSON, Markdown, text) with automatic format detection.Last updated -TypeScript
- AsecurityAlicenseAqualityA Model Context Protocol server that enables LLMs to interact with web pages, take screenshots, generate test code, scrape web pages, and execute JavaScript in a real browser environment.Last updated -29101TypeScriptMIT License
- AsecurityAlicenseAqualityA Model Context Protocol server that provides browser automation capabilities using Playwright, enabling LLMs to interact with web pages through structured accessibility snapshots without requiring screenshots or vision models.Last updated -2170,036TypeScriptApache 2.0