Playwright MCP — браузерная автоматизация для LLM-агентов

· 2 мин чтения
browser-automation mcp playwright testing ai-agents
📂 Исходный код на GitHub

MCP-сервер для управления браузером из ИИ-агентов на базе Playwright

Playwright MCP — браузерная автоматизация для LLM-агентов

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 — переход по URL
  • browser_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-серверов на рынке.

Источник: https://github.com/microsoft/playwright-mcp