Драматург 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.
Tools
Сервер протокола контекста модели, который позволяет магистрам уровня магистра взаимодействовать с веб-страницами посредством структурированных снимков доступности без необходимости использования моделей зрения или снимков экрана.
Related MCP Servers
- -security-license-qualityA Model Context Protocol server that allows LLMs to interact with web content through standardized tools, currently supporting web scraping functionality.Last updated -1MIT License
- Asecurity-licenseAqualityA 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 -54
- Asecurity-licenseAqualityA 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 -29913MIT License
- -security-license-qualityA Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots, providing browser automation capabilities without requiring screenshots or visually-tuned models.Last updated -2Apache 2.0