Fast Playwright MCP
Fast Playwright MCP
Этот MCP-сервер является форком сервера Microsoft. https://github.com/microsoft/playwright-mcp
Сервер Model Context Protocol (MCP), предоставляющий возможности автоматизации браузера с помощью Playwright. Этот сервер позволяет LLM взаимодействовать с веб-страницами через структурированные снимки дерева доступности, обходя необходимость в скриншотах или моделях, настроенных на визуальное восприятие.
Ключевые возможности
Быстрый и легковесный. Использует дерево доступности Playwright, а не ввод на основе пикселей.
Дружелюбный к LLM. Не требуются модели зрения, работает исключительно на структурированных данных.
Детерминированное применение инструментов. Избегает неоднозначности, характерной для подходов на основе скриншотов.
Возможности Fast-сервера (этот форк)
Оптимизация токенов. Все инструменты поддерживают параметр
expectationдля управления содержимым ответа:includeCode: false— подавить генерацию кода Playwright для уменьшения токеновincludeSnapshot: false— пропустить снимок страницы для минимальных ответов (сокращение токенов на 70–80%)includeConsole: false— исключить сообщения консолиincludeTabs: false— скрыть информацию о вкладках
Сжатие изображений. Инструмент скриншотов поддерживает
imageOptions:format: 'jpeg'— использовать JPEG вместо PNGquality: 1-100— сжимать изображения (например, 50 для качества 50%)maxWidth: number— изменять размер изображений до максимальной ширины
Пакетное выполнение. Используйте
browser_batch_executeдля нескольких операций:Значительное сокращение токенов за счёт устранения избыточных ответов
Пошаговая и глобальная конфигурация ожиданий
Обработка ошибок с опциями
continueOnErrorиstopOnFirstError
Управление снимками. Ограничьте размер снимка с помощью
snapshotOptions:selector: string— захватывать только определённые разделы страницы (рекомендуется вместо maxLength)format: "aria"— формат дерева доступности для обработки LLM
Обнаружение изменений. Отслеживайте только изменения с помощью
diffOptions:enabled: true— показывать только то, что изменилось по сравнению с предыдущим состоянием (огромная экономия токенов)format: "minimal"— сверхкомпактный вывод измененийИдеально для мониторинга изменений состояния во время навигации или взаимодействий
Диагностическая система. Расширенные инструменты отладки и обнаружения элементов:
browser_find_elements— поиск элементов по нескольким критериям (текст, роль, атрибуты)browser_diagnose— комплексный анализ страницы с метриками производительности и устранением неполадокУлучшенная обработка ошибок с предложениями альтернативных элементов
Анализ структуры страницы (iframe, модальные окна, метрики доступности)
Мониторинг производительности со временем выполнения менее 300 мс
Улучшенная система селекторов. Единый выбор элементов с несколькими стратегиями:
Массивы селекторов: все инструменты на основе элементов теперь поддерживают несколько селекторов с автоматическим резервным вариантом
4 типа селекторов:
ref: сгенерированные системой идентификаторы элементов из предыдущих результатов инструментов (наивысший приоритет)role: роли ARIA с необязательным сопоставлением текста (например,{role: "button", text: "Submit"})css: стандартные CSS-селекторы (например,{css: "#submit-btn"})text: поиск по текстовому содержимому с необязательной фильтрацией по тегу (например,{text: "Click me", tag: "button"})
Интеллектуальное разрешение: параллельное разрешение CSS, последовательное сопоставление ролей, автоматический резервный выбор
Обработка нескольких совпадений: при совпадении нескольких элементов возвращается список кандидатов для выбора LLM
HTML-инспекция: новый инструмент
browser_inspect_htmlдля интеллектуального извлечения содержимого с контролем глубины
Адаптивный каталог инструментов
Версия 0.2 по умолчанию использует адаптивный каталог из семи инструментов при запуске, снижая фиксированную стоимость контекста MCP и сохраняя доступ ко всем зарегистрированным инструментам.
browser_toolsищет, включает, отключает, сбрасывает и сообщает состояние каталога.browser_queryотправляет проверенные по схеме инструменты только для чтения.browser_executeотправляет проверенные по схеме инструменты действий и деструктивные инструменты.Известные скрытые инструменты остаются напрямую вызываемыми для существующих интеграций.
--tool-profile=fullвосстанавливает предыдущий полный статический каталог.--tool-profile=minimalоткрывает только шлюзы обнаружения и отправки.
Репозиторий обеспечивает сериализованный бюджет запуска в CI. Запустите bun run benchmark:tools -- --check, чтобы проверить текущие размеры профилей.
Контроль безопасности и совместимости
CLI и файл конфигурации поддерживают заголовки CDP и тайм-аут подключения, разрешение HTTP Host, ограничения размера выходного каталога, редактирование секретов в ответах, тайм-ауты действий/навигации/ожиданий, пользовательский атрибут test-id и codegen: "none". Необязательная офлайн-панель MCP Apps включается с помощью --caps=apps.
Документация по сопровождению:
Требования
Node.js 20 или новее
VS Code, Cursor, Windsurf, Claude Desktop, Goose или любой другой MCP-клиент
Начало работы
Сначала установите Playwright MCP-сервер в вашем клиенте.
Стандартная конфигурация работает в большинстве инструментов:
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": [
"@tontoko/fast-playwright-mcp@latest"
]
}
}
}
Используйте CLI Claude Code, чтобы добавить Playwright MCP-сервер:
claude mcp add fast-playwright npx @tontoko/fast-playwright-mcp@latestСледуйте руководству по установке MCP, используйте стандартную конфигурацию выше.
Нажмите кнопку для установки:
Или установите вручную:
Перейдите в Cursor Settings -> MCP -> Add new MCP Server. Назовите по своему усмотрению, используйте тип command с командой npx @tontoko/fast-playwright-mcp@latest. Вы также можете проверить конфигурацию или добавить аргументы, нажав Edit.
Следуйте руководству по установке MCP, используйте стандартную конфигурацию выше.
Нажмите кнопку для установки:
Или установите вручную:
Перейдите в Advanced settings -> Extensions -> Add custom extension. Назовите по своему усмотрению, используйте тип STDIO и установите command в npx @tontoko/fast-playwright-mcp. Нажмите «Add Extension».
Нажмите кнопку для установки:
Или установите вручную:
Перейдите в Program на правой боковой панели -> Install -> Edit mcp.json. Используйте стандартную конфигурацию выше.
Следуйте документации по MCP-серверам. Например, в ~/.config/opencode/opencode.json:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"playwright": {
"type": "local",
"command": [
"npx",
"@tontoko/fast-playwright-mcp"
],
"enabled": true
}
}
}
Откройте панель чата Qodo Gen в VSCode или IntelliJ → Connect more tools → + Add new MCP → Вставьте стандартную конфигурацию выше.
Нажмите Save.
Нажмите кнопку для установки:
Или установите вручную:
Следуйте руководству по установке MCP, используйте стандартную конфигурацию выше. Вы также можете установить Playwright MCP-сервер с помощью CLI VS Code:
# For VS Code
code --add-mcp '{"name":"fast-playwright","command":"npx","args":["@tontoko/fast-playwright-mcp@latest"]}'После установки Playwright MCP-сервер будет доступен для использования с вашим агентом GitHub Copilot в VS Code.
Следуйте документации по MCP в Windsurf. Используйте стандартную конфигурацию выше.
Файл конфигурации
Playwright MCP-сервер можно настроить с помощью JSON-файла. Вы можете указать файл конфигурации с помощью опции командной строки --config:
npx @tontoko/fast-playwright-mcp@latest --config path/to/config.json{
/**
* Tool catalog profile. Adaptive is the 0.2 default; full restores the
* pre-0.2 static catalog and minimal exposes only the discovery gateways.
*/
toolProfile?: 'adaptive' | 'full' | 'minimal';
browser?: {
/**
* The browser to use.
*/
browserName?: 'chromium' | 'firefox' | 'webkit';
/**
* Keep the browser profile in memory. By default the profile is written
* under the operating system's temporary Playwright registry directory.
*/
isolated?: boolean;
/**
* Path to the user data directory. Supplying this overrides the generated
* persistent profile location.
*/
userDataDir?: string;
/**
* Launch options passed to Playwright.
*/
launchOptions?: {
channel?: string;
executablePath?: string;
headless?: boolean;
args?: string[];
};
/**
* Browser context options passed to Playwright.
*/
contextOptions?: Record<string, unknown>;
/**
* Existing Chrome DevTools Protocol endpoint.
*/
cdpEndpoint?: string;
/**
* HTTP headers sent when connecting to the CDP endpoint.
*/
cdpHeaders?: Record<string, string>;
/**
* CDP connection timeout in milliseconds.
*/
cdpTimeout?: number;
/**
* Playwright remote browser endpoint.
*/
remoteEndpoint?: string;
};
server?: {
host?: string;
port?: number;
allowedHosts?: string[];
};
capabilities?: Array<'vision' | 'pdf' | 'apps'>;
outputDir?: string;
outputMode?: 'file' | 'stdio';
outputMaxSize?: number;
secrets?: Record<string, string>;
testIdAttribute?: string;
timeouts?: {
action?: number;
navigation?: number;
expect?: number;
};
codegen?: 'typescript' | 'none';
}Профиль пользователя
Вы можете запускать Playwright MCP с постоянным профилем, как обычный браузер (по умолчанию), в изолированных контекстах для тестовых сессий или подключаться к существующему браузеру с помощью расширения браузера.
Постоянный профиль
Вся информация о входе будет храниться в постоянном профиле; вы можете удалить его между сессиями, если хотите очистить офлайн-состояние.
Постоянный профиль будет находиться в следующих каталогах, и вы можете переопределить его с помощью аргумента --user-data-dir.
# Windows
%USERPROFILE%\AppData\Local\ms-playwright\mcp-{channel}-profile
# macOS
- ~/Library/Caches/ms-playwright/mcp-{channel}-profile
# Linux
- ~/.cache/ms-playwright/mcp-{channel}-profileИзолированный
В изолированном режиме каждая сессия запускается в изолированном профиле. Каждый раз, когда вы просите MCP закрыть браузер, сессия закрывается и всё состояние хранилища для этой сессии теряется. Изолированный режим можно использовать для тестирования, чтобы гарантировать независимость каждой сессии.
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": [
"@tontoko/fast-playwright-mcp@latest",
"--isolated"
]
}
}
}Расширение браузера
Расширение браузера Playwright MCP позволяет подключаться к существующим вкладкам браузера и использовать вашу текущую сессию браузера и состояние аутентификации. См. extension/README.md для инструкций по установке и использованию.
Конфигурация
Playwright MCP-сервер поддерживает следующие аргументы. Все они необязательны:
> npx @tontoko/fast-playwright-mcp@latest --help
--allowed-hosts <hosts> comma-separated list of allowed HTTP Host
header values
--allowed-origins <origins> semicolon-separated list of origins to allow
the browser to request. Default is to allow
all.
--blocked-origins <origins> semicolon-separated list of origins to block
the browser from requesting. Blocklist is
evaluated before allowlist.
--block-service-workers block service workers
--browser <browser> browser or chrome channel to use: chrome,
firefox, webkit, or msedge
--caps <caps> comma-separated optional capabilities:
vision, pdf, apps
--cdp-endpoint <endpoint> CDP endpoint to connect to
--cdp-header <header...> CDP request header in Name: Value form; may
be repeated
--cdp-timeout <timeout> CDP connection timeout in milliseconds
--codegen <mode> generated code mode: typescript or none
--config <path> path to the configuration file
--device <device> device to emulate, for example: "iPhone 15"
--executable-path <path> path to the browser executable
--headless run browser in headless mode, headed by
default
--host <host> host to bind server to. Default is localhost.
Use 0.0.0.0 to bind all interfaces.
--ignore-https-errors ignore HTTPS errors
--isolated use an in-memory isolated browser profile
--image-responses <mode> whether image responses are allow or omit
--no-sandbox disable the Chromium sandbox for process
types that normally use it
--output-dir <path> directory for output files
--output-max-size <bytes> maximum output directory size in bytes; zero
disables eviction
--port <port> port to listen on for HTTP transport
--proxy-bypass <bypass> comma-separated domains to bypass the proxy
--proxy-server <proxy> proxy server URL
--save-session save the Playwright MCP session
--save-trace save the Playwright trace
--secrets <path> dotenv file containing values to redact
--storage-state <path> path to storage state for isolated sessions
--test-id-attribute <attribute> attribute used by test-id selectors
--timeout-action <timeout> default action timeout in milliseconds
--timeout-expect <timeout> default expectation timeout in milliseconds
--timeout-navigation <timeout> default navigation timeout in milliseconds
--timeout-settle <timeout> delay after browser actions before capturing
the response, in milliseconds
--tool-profile <profile> tool catalog profile: adaptive, full, or
minimal
--user-agent <ua string> browser user-agent string
--user-data-dir <path> browser user data directory
--viewport-size <size> viewport size as width,height, for example
1280,720Пользовательские исполняемые файлы браузера (форки Firefox и Chrome/Chromium)
По умолчанию Playwright запускает свои встроенные браузеры. Вы можете использовать пользовательский исполняемый файл браузера (например, брендированный форк Chromium или браузер на основе Firefox), указав полный путь к исполняемому файлу. См. CUSTOM_BROWSER_EXECUTABLES.md для подробных инструкций и предупреждений для конкретных платформ.
CLI:
--browser <chromium|firefox|webkit>with--executable-path <full path>Config file: set
browser.launchOptions.executablePath
Примеры:
npx @tontoko/fast-playwright-mcp@latest --browser chromium --executable-path "/opt/google/chrome/chrome"npx @tontoko/fast-playwright-mcp@latest --browser firefox --executable-path "/opt/waterfox/waterfox"Важно: совместимость со сторонними браузерами не гарантируется. Проверьте издателя и бинарный файл перед использованием; сервер напрямую выполняет указанный путь. Waterfox — это лишь иллюстративный пример из семейства Firefox и может не поддерживать необходимые для Playwright патчи протокола Firefox.
Автономный MCP-сервер
При запуске браузера с графическим интерфейсом в системе без дисплея или из рабочих процессов IDE запускайте MCP-сервер в окружении с переменной DISPLAY, указывающей на действующий X-сервер. Например: DISPLAY=:1 npx @tontoko/fast-playwright-mcp@latest --port 8931.
Docker
ПРИМЕЧАНИЕ: Текущая реализация Docker поддерживает только headless-режим chromium.
{
"mcpServers": {
"playwright": {
"command": "docker",
"args": ["run", "-i", "--rm", "--init", "--pull=always", "mcr.microsoft.com/playwright/mcp"]
}
}
}Или, если вы предпочитаете запускать контейнер как долгоживущий сервис вместо того, чтобы MCP-клиент запускал его, используйте:
docker run -d -i --rm --init --pull=always \
--entrypoint node \
--name playwright-mcp \
-p 8931:8931 \
mcr.microsoft.com/playwright/mcp \
cli.js --headless --browser chromium --no-sandbox --port 8931Сервер будет доступен на порту 8931 и может быть доступен через любой MCP-клиент.
Вы можете собрать Docker-образ самостоятельно.
docker build -t mcr.microsoft.com/playwright/mcp .Программное использование
import http from 'node:http';
import { createConnection } from '@tontoko/fast-playwright-mcp';
import { SSEServerTransport } from '@modelcontextprotocol/sdk/server/sse.js';
http.createServer(async (req, res) => {
// ...
// Creates a headless Playwright MCP server with SSE transport
const connection = await createConnection({ browser: { launchOptions: { headless: true } } });
const transport = new SSEServerTransport('/messages', res);
await connection.connect(transport);
// ...
});Инструменты
browser_batch_execute
Заголовок: Выполнить пакет действий браузера
Описание: Выполнить несколько зарегистрированных действий браузера последовательно одним ответом.
Параметры:
steps(array): Массив шагов для последовательного выполнения. Рекомендуется для заполнения форм (несколько type→click), многошаговой навигации и любых рабочих процессов с 2+ известными шагами. Экономит 90% токенов по сравнению с отдельными вызовами. Пример: [{tool:"browser_navigate",arguments:{url:"https://example.com"}},{tool:"browser_type",arguments:{selectors:[{css:"#user"}],text:"john"}},{tool:"browser_click",arguments:{selectors:[{css:"#btn"}]}}]stopOnFirstError(boolean, необязательно): Остановить весь пакет при первой ошибкеglobalExpectation(необязательно): Ожидание по умолчанию для всех шагов. Рекомендуется: {includeSnapshot:false,snapshotOptions:{selector:"#app"},diffOptions:{enabled:true}}. Переопределение на уровне шага через steps[].expectation
Только чтение: false
browser_click
Заголовок: Выполнить клик на веб-странице
Описание: Выполнить клик на веб-странице
Параметры:
selectors(array): Массив селекторов элементов (макс. 5). Селекторы перебираются по порядку, пока один не сработает (механизм резервирования). Несколько совпадений вызывают ошибку со списком кандидатов. Поддерживает: ref (наивысший приоритет), CSS (#id, .class, tag), роль (button, textbox и т. д.), текстовое содержимое. Пример: [{css: "#submit"}, {role: "button", text: "Submit"}] — сначала пробует ID, затем резервный вариант role+textdoubleClick(boolean, необязательно): Двойной клик, если truebutton(string, необязательно): Кнопка мыши (по умолчанию: левая)expectation(object, необязательно): Конфигурация захвата состояния страницы. Используйте batch_execute для нескольких кликов
Только чтение: false
browser_close
Заголовок: Закрыть браузер
Описание: Закрыть страницу
Параметры: нет
Только чтение: false
browser_console_messages
Заголовок: Получить сообщения консоли
Описание: Возвращает все сообщения консоли
Параметры:
consoleOptions(object, необязательно): undefined
Только чтение: true
browser_diagnose
Заголовок: Диагностика страницы
Описание: Анализ сложности страницы, количества iframe, размера DOM, состояния модальных окон, статистики элементов и характеристик производительности.
Параметры:
searchForElements(object, необязательно): Поиск конкретных элементов и включение их в отчётincludePerformanceMetrics(boolean, необязательно): Включить метрики производительности в отчётincludeAccessibilityInfo(boolean, необязательно): Включить информацию о доступностиincludeTroubleshootingSuggestions(boolean, необязательно): Включить предложения по устранению неполадокdiagnosticLevel(string, необязательно): Уровень детализации диагностики: none (без диагностики), basic (только критические), standard (по умолчанию), detailed (с метриками), full (вся информация)useParallelAnalysis(boolean, необязательно): Использовать параллельный анализ Phase 2 для улучшения производительности и мониторинга ресурсовuseUnifiedSystem(boolean, необязательно): Использовать единую диагностическую систему Phase 3 с улучшенной обработкой ошибок и мониторингомconfigOverrides(object, необязательно): Переопределения конфигурации во время выполнения для диагностической системыincludeSystemStats(boolean, необязательно): Включить статистику единой системы и информацию о состоянииexpectation(object, необязательно): undefined
Только чтение: true
browser_drag
Заголовок: Перетаскивание мышью
Описание: Выполнить перетаскивание между двумя элементами
Параметры:
startSelectors(array): Селекторы исходного элемента для начала перетаскиванияendSelectors(array): Селекторы целевого элемента для окончания перетаскиванияexpectation(object, необязательно): Состояние страницы после перетаскивания. Используйте batch_execute для рабочих процессов
Только чтение: false
browser_evaluate
Заголовок: Выполнить JavaScript
Описание: Выполнить JavaScript-выражение на странице или элементе и вернуть результат
Параметры:
function(string): JS-функция: () => {...} или (element) => {...}selectors(array, необязательно): Необязательные селекторы элементов. Если указаны, функция получает элемент в качестве параметраexpectation(object, необязательно): Конфигурация состояния страницы. false для извлечения данных, true для изменений DOM
Только чтение: false
browser_file_upload
Заголовок: Загрузить файлы
Описание: Загрузить один или несколько файлов в поле ввода файла
Параметры:
paths(array): Абсолютные пути для загрузки (массив)expectation(object, необязательно): Конфигурация состояния страницы. Используйте batch_execute для click→upload
Только чтение: false
browser_find
Заголовок: Поиск в снимке страницы
Описание: Поиск по текущему снимку доступности и возврат компактного контекста совпадений.
Параметры:
query(string): undefinedregex(boolean, необязательно): undefinedcaseSensitive(boolean, необязательно): undefinedmaxResults(integer, необязательно): undefinedcontextLines(integer, необязательно): undefinedexpectation(object, необязательно): undefined
Только чтение: true
browser_find_elements
Заголовок: Поиск элементов
Описание: Поиск элементов на странице по нескольким критериям, таким как текст, роль, имя тега или атрибуты. Возвращает совпадающие элементы, отсортированные по уверенности.
Параметры:
searchCriteria(object): Критерии поиска элементовmaxResults(number, необязательно): Максимальное количество возвращаемых результатовincludeDiagnosticInfo(boolean, необязательно): Включить диагностическую информацию о страницеuseUnifiedSystem(boolean, необязательно): Использовать единую диагностическую систему для улучшенной обработки ошибокenableEnhancedDiscovery(boolean, необязательно): Включить расширенное обнаружение элементов с контекстными подсказкамиperformanceThreshold(number, необязательно): Порог производительности в миллисекундах для обнаружения элементовexpectation(object, необязательно): undefined
Только чтение: true
browser_handle_dialog
Заголовок: Обработка диалогового окна
Описание: Обработать диалоговое окно (alert, confirm, prompt)
Параметры:
accept(boolean): Принять (true) или отклонить (false)promptText(string, необязательно): Текст для диалоговых окон promptexpectation(object, необязательно): Состояние страницы после диалога. Используйте batch_execute для рабочих процессов
Только чтение: false
browser_hover
Заголовок: Наведение мыши
Описание: Навести указатель на элемент страницы
Параметры:
selectors(array): Массив селекторов элементов (макс. 5). Селекторы перебираются по порядку, пока один не сработает (механизм резервирования). Несколько совпадений вызывают ошибку со списком кандидатов. Поддерживает: ref (наивысший приоритет), CSS (#id, .class, tag), роль (button, textbox и т. д.), текстовое содержимое. Пример: [{css: "#submit"}, {role: "button", text: "Submit"}] — сначала пробует ID, затем резервный вариант role+textexpectation(object, необязательно): Состояние страницы после наведения. Используйте batch_execute для hover→click
Только чтение: false
browser_inspect_html
Заголовок: Инспекция HTML
Описание: Извлечение отфильтрованного HTML с настраиваемой глубиной, форматом вывода, ограничениями размера и автоматическим усечением.
Параметры:
selectors(array): Массив селекторов элементов для инспекцииdepth(number, необязательно): Максимальная глубина иерархии для извлеченияincludeStyles(boolean, необязательно): Включить вычисленные CSS-стилиmaxSize(number, необязательно): Максимальный размер в байтах (1KB–500KB)format(string, необязательно): Формат выводаincludeAttributes(boolean, необязательно): Включить атрибуты элементовpreserveWhitespace(boolean, необязательно): Сохранять пробельные символы в содержимомexcludeSelector(string, необязательно): CSS-селектор для исключения элементовincludeSuggestions(boolean, необязательно): Включить предложения CSS-селекторов в выводincludeChildren(boolean, необязательно): Включить дочерние элементы в извлечениеoptimizeForLLM(boolean, необязательно): Оптимизировать извлечённый HTML для потребления LLMexpectation(object, необязательно): Конфигурация состояния страницы (минимальная для инспекции HTML)
Только чтение: true
browser_navigate
Заголовок: Перейти по URL
Описание: Перейти по URL
Параметры:
url(string): URL для переходаexpectation(object, необязательно): Состояние страницы после перехода
Только чтение: false
browser_navigate_back
Заголовок: Вернуться на предыдущую страницу
Описание: Вернуться на предыдущую страницу
Параметры:
expectation(object, необязательно): Состояние страницы после возврата
Только чтение: false
browser_navigate_forward
Заголовок: Перейти на следующую страницу
Описание: Перейти на следующую страницу
Параметры:
expectation(object, необязательно): Состояние страницы после перехода вперёд
Только чтение: false
browser_network_requests
Заголовок: Список сетевых запросов
Описание: Возвращает сетевые запросы с момента загрузки страницы с возможностью фильтрации
Параметры:
urlPatterns(array, необязательно): Шаблоны URL для фильтрации (поддерживает regex)excludeUrlPatterns(array, необязательно): Шаблоны URL для исключения (имеют приоритет)statusRanges(array, необязательно): Диапазоны кодов состояния (например, [{min:200,max:299}])methods(array, необязательно): HTTP-методы для фильтрацииmaxRequests(number, необязательно): Максимальное количество возвращаемых запросов (по умолчанию: 20)newestFirst(boolean, необязательно): Сортировка по времени (по умолчанию: сначала новые)
Только чтение: true
browser_press_key
Заголовок: Нажать клавишу
Описание: Нажать клавишу на клавиатуре
Параметры:
key(string): Нажимаемая клавишаexpectation(object, необязательно): Конфигурация состояния страницы. Используйте batch_execute для нескольких клавиш
Только чтение: false
browser_resize
Название: Изменить размер окна браузера
Описание: Изменить размер окна браузера
Параметры:
width(number): Ширина окна браузераheight(number): Высота окна браузераexpectation(object, необязательно): undefined
Только чтение: false
browser_select_option
Название: Выбрать вариант
Описание: Выбрать вариант в выпадающем списке
Параметры:
selectors(array): Массив селекторов элементов (максимум 5). Селекторы перебираются по порядку, пока один из них не сработает (механизм запасных вариантов). Несколько совпадений вызывают ошибку со списком кандидатов. Поддерживаются: ref (наивысший приоритет), CSS (#id, .class, tag), role (button, textbox и т.п.), текстовое содержимое. Пример: [{css: "#submit"}, {role: "button", text: "Submit"}] — сначала пробуется ID, затем возвращается к role+textvalues(array): Значения для выбора (массив)expectation(object, необязательно): Состояние страницы после выбора. Для форм используйте batch_execute
Только чтение: false
browser_snapshot
Название: Снимок страницы
Описание: Создать снимок доступности текущей страницы
Параметры:
expectation(object, необязательно): Конфигурация состояния страницы
Только чтение: true
browser_take_screenshot
Название: Сделать скриншот
Описание: Сделать скриншот текущей страницы и вернуть данные изображения
Параметры:
type(string, необязательно): Формат изображения. Если не указан, определяется из имени файла или по умолчанию используется png.filename(string, необязательно): Имя файла для сохранения скриншота. По умолчанию используетсяpage-{timestamp}.{png|jpeg|webp}, если не указано.selectors(array, необязательно): Необязательные селекторы элементов для скриншотов отдельных элементов. Если не указаны, будет сделан скриншот области просмотра.scale(string, необязательно): Использовать CSS-пиксели или физические пиксели для скриншота.fullPage(boolean, необязательно): Если true, делается скриншот всей прокручиваемой страницы вместо текущей видимой области просмотра. Нельзя использовать со скриншотами отдельных элементов.expectation(object, необязательно): Дополнительная конфигурация состояния страницы
Только чтение: false
browser_type
Название: Ввод текста
Описание: Ввести текст в редактируемый элемент
Параметры:
selectors(array): Массив селекторов элементов (максимум 5), поддерживающих выбор по ref, role, CSS или по текстуtext(string): Текст для ввода в элементsubmit(boolean, необязательно): Нажать Enter после ввода, если trueslowly(boolean, необязательно): Вводить медленно для автодополнения, если trueexpectation(object, необязательно): Конфигурация состояния страницы. Для форм используйте batch_execute
Только чтение: false
browser_wait_for
Название: Ожидание
Описание: Ожидать появления или исчезновения текста либо наступления заданного времени
Параметры:
time(number, необязательно): Время ожидания в секундахtext(string, необязательно): undefinedtextGone(string, необязательно): undefinedexpectation(object, необязательно): Состояние страницы после ожидания
Только чтение: true
browser_tab_close
Название: Закрыть вкладку
Описание: Закрыть вкладку по индексу или закрыть текущую вкладку
Параметры:
index(number, необязательно): Индекс вкладки для закрытия (не указывайте для текущей)expectation(object, необязательно): Состояние страницы после закрытия
Только чтение: false
browser_tab_list
Название: Список вкладок
Описание: Вывести список вкладок браузера с заголовками и URL
Параметры:
expectation(object, необязательно): Конфигурация состояния страницы
Только чтение: true
browser_tab_new
Название: Открыть новую вкладку
Описание: Открыть новую вкладку
Параметры:
url(string, необязательно): URL новой вкладки (необязательно)expectation(object, необязательно): Состояние страницы новой вкладки
Только чтение: false
browser_tab_select
Название: Выбрать вкладку
Описание: Выбрать вкладку по индексу
Параметры:
index(number): Индекс выбираемой вкладкиexpectation(object, необязательно): Состояние страницы после переключения вкладки
Только чтение: false
browser_install
Название: Установить браузер, указанный в конфигурации
Описание: Установить браузер, указанный в конфигурации. Вызывайте это, если вы получили ошибку о том, что браузер не установлен.
Параметры: нет
Только чтение: false
browser_mouse_click_xy
Название: Клик
Описание: Клик по указанным координатам
Параметры:
element(string): undefinedx(number): Координата X (требуется --caps=vision)y(number): Координата Y (требуется --caps=vision)expectation(object, необязательно): Состояние страницы после клика. Предпочитайте ref-ссылки на элементы координатам
Только чтение: false
browser_mouse_drag_xy
Название: Перетаскивание мыши
Описание: Перетащить от одной координаты к другой
Параметры:
element(string): undefinedstartX(number): Начальная X (требуется --caps=vision)startY(number): Начальная Y (требуется --caps=vision)endX(number): Конечная XendY(number): Конечная Yexpectation(object, необязательно): Состояние страницы после перетаскивания. Предпочитайте ref-элементы координатам
Только чтение: false
browser_mouse_move_xy
Название: Переместить мышь
Описание: Переместить мышь в указанные координаты. Требуется возможность vision; при возможности предпочитайте взаимодействие через элементы.
Параметры:
element(string): undefinedx(number): Координата Xy(number): Координата Yexpectation(object, необязательно): undefined
Только чтение: false
browser_pdf_save
Название: Сохранить как PDF
Описание: Сохранить страницу в PDF
Параметры:
filename(string, необязательно): Имя файла для сохранения PDF. По умолчаниюpage-{timestamp}.pdf, если не указано.
Только чтение: false
browser_dashboard
Название: Открыть панель браузера
Описание: Открыть встроенный предпросмотр браузера и панель выбора вкладок.
Параметры: нет
Только чтение: true
Примеры оптимизации токенов
Fast Server предоставляет расширенную оптимизацию токенов с помощью управления ожиданиями и пакетного выполнения:
Базовое управление ожиданиями
{
"name": "browser_navigate",
"arguments": {
"url": "https://example.com",
"expectation": {
"includeSnapshot": false,
"includeConsole": false,
"includeTabs": false
}
}
}Варианты ожиданий
includeSnapshot(boolean, по умолчанию: зависит от инструмента): Включать снимок доступности страницыincludeConsole(boolean, по умолчанию: зависит от инструмента): Включать сообщения консоли браузераincludeDownloads(boolean, по умолчанию: true): Включать информацию о загрузкахincludeTabs(boolean, по умолчанию: зависит от инструмента): Включать информацию о вкладкахincludeCode(boolean, по умолчанию: true): Включать выполненный код в ответ
Расширенные параметры снимков
{
"name": "browser_click",
"arguments": {
"element": "Login button",
"ref": "#login-btn",
"expectation": {
"includeSnapshot": true,
"snapshotOptions": {
"selector": ".dashboard",
"maxLength": 1000,
"format": "text"
}
}
}
}Параметры фильтрации консоли
{
"name": "browser_navigate",
"arguments": {
"url": "https://example.com",
"expectation": {
"includeConsole": true,
"consoleOptions": {
"levels": ["error", "warn"],
"maxMessages": 5,
"patterns": ["^Error:"],
"removeDuplicates": true
}
}
}
}Пакетное выполнение
Выполняйте несколько действий браузера в одном запросе с оптимизированной обработкой ответа и гибким контролем ошибок.
Базовое пакетное выполнение
{
"name": "browser_batch_execute",
"arguments": {
"steps": [
{
"tool": "browser_navigate",
"arguments": { "url": "https://example.com/login" }
},
{
"tool": "browser_type",
"arguments": {
"element": "username field",
"ref": "#username",
"text": "testuser"
}
},
{
"tool": "browser_type",
"arguments": {
"element": "password field",
"ref": "#password",
"text": "password"
}
},
{
"tool": "browser_click",
"arguments": { "element": "login button", "ref": "#login-btn" }
}
]
}
}Расширенная конфигурация пакетного выполнения
{
"name": "browser_batch_execute",
"arguments": {
"steps": [
{
"tool": "browser_navigate",
"arguments": { "url": "https://example.com" },
"expectation": { "includeSnapshot": false },
"continueOnError": true
},
{
"tool": "browser_click",
"arguments": { "element": "button", "ref": "#submit" },
"expectation": {
"includeSnapshot": true,
"snapshotOptions": { "selector": ".result-area" }
}
}
],
"stopOnFirstError": false,
"globalExpectation": {
"includeConsole": false,
"includeTabs": false
}
}
}Параметры обработки ошибок
continueOnError(на шаг): Продолжить выполнение пакета, даже если этот шаг завершится ошибкойstopOnFirstError(глобально): Остановить весь пакет при первой ошибкеГибкая комбинация позволяет создавать устойчивые сценарии автоматизации
Значения по умолчанию для конкретных инструментов
Каждый инструмент имеет оптимизированные значения по умолчанию в зависимости от типовых сценариев использования:
Инструменты навигации (
browser_navigate): включают полный контекст для проверкиИнтерактивные инструменты (
browser_click,browser_type): включают снимок, но минимальное журналированиеИнструменты скриншотов и снимков: исключают дополнительный контекст
Выполнение кода: включают вывод консоли, но минимум остальной информации
Операции ожидания: минимальный вывод для эффективности
Преимущества производительности
Сокращение токенов: уменьшение использования токенов на 50-80% при оптимизированных ожиданиях
Более быстрое выполнение: ускорение в 2-5 раз при пакетном выполнении
Снижение задержки: меньше обменов между клиентом и сервером
Оптимизация затрат: снижение расходов на API за счёт уменьшения потребления токенов
Обнаружение изменений в ответе
Fast Server включает автоматическое обнаружение различий (diff) для эффективного отслеживания изменений между последовательными выполнениями инструментов:
{
"name": "browser_click",
"arguments": {
"element": "Load more button",
"ref": "#load-more",
"expectation": {
"includeSnapshot": true,
"diffOptions": {
"enabled": true,
"threshold": 0.1,
"format": "unified",
"maxDiffLines": 50,
"context": 3
}
}
}
}Преимущества обнаружения изменений
Минимальное использование токенов: отображается только изменившийся контент вместо полных снимков
Отслеживание изменений: автоматически определяет, что изменилось после действий
Гибкие форматы: выберите между объединённым, split или минимальным форматом diff
Умное кэширование: сравнение с предыдущим ответом того же инструмента
Когда использовать обнаружение изменений
Взаимодействия с интерфейсом без навигации: клики, ввод текста, эффекты наведения
Динамические обновления контента: загрузка дополнительных элементов, обновления в реальном времени
Взаимодействие с формами: отслеживание изменений при заполнении форм
Выборочный мониторинг: используйте CSS-селекторы для отслеживания конкретных областей
{
"name": "browser_type",
"arguments": {
"element": "Search input",
"ref": "#search",
"text": "playwright",
"expectation": {
"includeSnapshot": true,
"snapshotOptions": {
"selector": "#search-results"
},
"diffOptions": {
"enabled": true,
"format": "minimal"
}
}
}
}Лучшие практики
Используйте пакетное выполнение для многошаговых сценариев
Включайте обнаружение изменений для действий без навигации по странице
Отключайте снимки для промежуточных шагов, которые не требуют проверки
Используйте выборочные снимки с CSS-селекторами для больших страниц
Фильтруйте сообщения консоли до нужных уровней
Комбинируйте глобальные и пошаговые ожидания для точного контроля
Используйте минимальный формат diff для максимальной экономии токенов
Примеры диагностической системы
Поиск альтернативных элементов при неработающих селекторах:
{
"name": "browser_find_elements",
"arguments": {
"searchCriteria": {
"text": "Submit",
"role": "button"
},
"maxResults": 5
}
}Создание подробной диагностики страницы:
{
"name": "browser_diagnose",
"arguments": {
"includePerformanceMetrics": true,
"includeAccessibilityInfo": true,
"includeTroubleshootingSuggestions": true
}
}Отладка сбоев автоматизации с расширенными сообщениями об ошибках: Все инструменты автоматически предоставляют расширенные сообщения об ошибках, включая:
Предложения альтернативных элементов
Анализ структуры страницы
Советы по устранению неполадок с учётом контекста
Сведения о производительности
Фильтрация сетевых запросов
Инструмент browser_network_requests предоставляет расширенные возможности фильтрации, позволяющие сократить использование токенов на 80-95% при работе с сетевыми журналами.
Примеры базового использования
// Filter API requests only
{
"name": "browser_network_requests",
"arguments": {
"urlPatterns": ["api/", "/graphql"]
}
}
// Exclude analytics and tracking
{
"name": "browser_network_requests",
"arguments": {
"excludeUrlPatterns": ["analytics", "tracking", "ads"]
}
}
// Success responses only
{
"name": "browser_network_requests",
"arguments": {
"statusRanges": [{ "min": 200, "max": 299 }]
}
}
// Recent errors only
{
"name": "browser_network_requests",
"arguments": {
"statusRanges": [{ "min": 400, "max": 599 }],
"maxRequests": 5,
"newestFirst": true
}
}Расширенная фильтрация
// Complex filtering for API debugging
{
"name": "browser_network_requests",
"arguments": {
"urlPatterns": ["/api/users", "/api/posts"],
"excludeUrlPatterns": ["/api/health"],
"methods": ["GET", "POST"],
"statusRanges": [
{ "min": 200, "max": 299 },
{ "min": 400, "max": 499 }
],
"maxRequests": 10,
"newestFirst": true
}
}
// Monitor only failed requests
{
"name": "browser_network_requests",
"arguments": {
"statusRanges": [
{ "min": 400, "max": 499 },
{ "min": 500, "max": 599 }
],
"maxRequests": 3
}
}Поддержка регулярных выражений
{
"name": "browser_network_requests",
"arguments": {
"urlPatterns": ["^/api/v[0-9]+/users$"],
"excludeUrlPatterns": ["\\.(css|js|png)$"]
}
}Преимущества оптимизации токенов
Значительное сокращение: на 80-95% меньше токенов для больших приложений
Точечная отладка: просмотр только релевантной сетевой активности
Отслеживание производительности: контроль конкретных конечных точек и шаблонов ошибок
Экономия: снижение расходов на API благодаря уменьшенному использованию токенов
Когда использовать сетевую фильтрацию
Отладка API: сосредоточьтесь на конкретных конечных точках и методах
Мониторинг ошибок: отслеживайте только неудачные запросы
Анализ производительности: наблюдайте за медленными или проблемными конечными точками
Большие приложения: сократите перегружающие сетевые журналы
Управление токенами: оставайтесь в пределах контекстного ограничения LLM
Руководство по миграции
Существующий код продолжает работать без изменений. Оптимизация:
Начните с добавления
expectation: { includeSnapshot: false }к промежуточным шагамИспользуйте пакетное выполнение для последовательностей из 3+ операций
Постепенно уточняйте ожидания в соответствии с вашими конкретными потребностями
Используйте диагностические инструменты, когда автоматизация дает сбой или требует отладки
Установите
--tool-profile=fullперед обновлением, если клиент зависит от полного статического ответаtools/list.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- -licenseNot gradedqualityNot gradedmaintenanceEnables browser automation and web interaction through structured accessibility snapshots using Playwright. Provides fast, deterministic web page interaction without requiring screenshots or vision models.4,588,713
- AlicenseNot gradedqualityDmaintenanceEnables LLMs to perform browser automation and web page interactions using Playwright's accessibility tree instead of screenshots. Provides fast, deterministic web automation through structured data without requiring vision models.4,588,713Apache 2.0
- AlicenseNot gradedqualityDmaintenanceProvides browser automation capabilities for LLMs using Playwright's accessibility tree instead of screenshots. It enables models to interact with web pages through fast, structured, and deterministic data snapshots.4,588,713Apache 2.0
- AlicenseNot gradedqualityDmaintenanceProvides browser automation capabilities for LLMs using Playwright, leveraging structured accessibility snapshots to interact with web pages without needing vision models. It enables tasks like web navigation, data extraction, and automated testing through a lightweight and deterministic toolset.16Apache 2.0
Related MCP Connectors
AI-powered browser automation — navigate, click, fill forms, and extract data from any website.
Capture screenshots, detect visual regressions between page versions, and analyze with AI.
Automate cloud browsers to navigate websites, interact with elements, and extract structured data.…
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/tontoko/fast-playwright-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server