Skip to main content
Glama

Playwright MCP

Сервер протокола контекста модели (MCP), предоставляющий возможности автоматизации браузера с помощью Playwright. Этот сервер позволяет LLM взаимодействовать с веб-страницами через структурированные снимки доступности, обходя необходимость в скриншотах или моделях, настроенных на визуальное восприятие.

Playwright MCP vs Playwright CLI

Этот пакет предоставляет интерфейс MCP для Playwright. Если вы используете агент кода, вам может быть полезнее использовать CLI+SKILLS.

  • CLI: Современные агенты кода все чаще отдают предпочтение рабочим процессам на основе CLI, представленным как SKILLs, а не MCP, потому что вызовы CLI более эффективны с точки зрения токенов: они избегают загрузки больших схем инструментов и подробных деревьев доступности в контекст модели, позволяя агентам действовать через краткие, целенаправленные команды. Это делает CLI + SKILLs более подходящими для высокопроизводительных агентов кода, которые должны балансировать автоматизацию браузера с большими кодовыми базами, тестами и рассуждениями в ограниченных контекстных окнах.Узнайте больше о Playwright CLI с SKILLS.

  • MCP: MCP остается актуальным для специализированных агентских циклов, которые выигрывают от постоянного состояния, богатой интроспекции и итеративного рассуждения над структурой страницы, таких как исследовательская автоматизация, самовосстанавливающиеся тесты или длительные автономные рабочие процессы, где поддержание непрерывного контекста браузера перевешивает опасения по поводу стоимости токенов.

Ключевые особенности

  • Быстрый и легковесный. Использует дерево доступности Playwright, а не ввод на основе пикселей.

  • Дружественный к LLM. Не требуются модели зрения, работает исключительно на структурированных данных.

  • Детерминированное применение инструментов. Избегает неоднозначности, распространенной в подходах, основанных на скриншотах.

Требования

  • Node.js 18 или новее

  • VS Code, Cursor, Windsurf, Claude Desktop, Goose, Grok, Junie или любой другой MCP-клиент

Начало работы

Сначала установите сервер Playwright MCP в вашем клиенте.

Стандартная конфигурация работает в большинстве инструментов:

{
  "mcpServers": {
    "playwright": {
      "command": "npx",
      "args": [
        "@playwright/mcp@latest"
      ]
    }
  }
}

Добавьте через экран настроек расширения Amp VS Code или обновив файл settings.json:

"amp.mcpServers": {
  "playwright": {
    "command": "npx",
    "args": [
      "@playwright/mcp@latest"
    ]
  }
}

Настройка Amp CLI:

Добавьте с помощью команды amp mcp add ниже

amp mcp add playwright -- npx @playwright/mcp@latest

Добавьте через настройки Antigravity или обновив файл конфигурации:

{
  "mcpServers": {
    "playwright": {
      "command": "npx",
      "args": [
        "@playwright/mcp@latest"
      ]
    }
  }
}

Используйте CLI Claude Code, чтобы добавить сервер Playwright MCP:

claude mcp add playwright npx @playwright/mcp@latest

Следуйте руководству по установке MCP, используйте стандартную конфигурацию выше.

Следуйте инструкциям в разделе Configuring MCP Servers

Пример: Локальная настройка

Добавьте следующее в ваш файл cline_mcp_settings.json:

{
  "mcpServers": {
    "playwright": {
      "type": "stdio",
      "command": "npx",
      "timeout": 30,
      "args": [
        "-y",
        "@playwright/mcp@latest"
      ],
      "disabled": false
    }
  }
}

Используйте CLI Codex, чтобы добавить сервер Playwright MCP:

codex mcp add playwright npx "@playwright/mcp@latest"

Или создайте или отредактируйте файл конфигурации ~/.codex/config.toml и добавьте:

[mcp_servers.playwright]
command = "npx"
args = ["@playwright/mcp@latest"]

Для получения дополнительной информации см. документацию Codex MCP.

Используйте CLI Copilot для интерактивного добавления сервера Playwright MCP:

/mcp add

Или создайте или отредактируйте файл конфигурации ~/.copilot/mcp-config.json и добавьте:

{
  "mcpServers": {
    "playwright": {
      "type": "local",
      "command": "npx",
      "tools": [
        "*"
      ],
      "args": [
        "@playwright/mcp@latest"
      ]
    }
  }
}

Для получения дополнительной информации см. документацию Copilot CLI.

Нажмите кнопку для установки:

Или установите вручную:

Перейдите в Cursor Settings -> MCP -> Add new MCP Server. Дайте любое имя, используйте тип command с командой npx @playwright/mcp@latest. Вы также можете проверить конфигурацию или добавить аргументы команды, нажав Edit.

Используйте CLI Factory, чтобы добавить сервер Playwright MCP:

droid mcp add playwright "npx @playwright/mcp@latest"

Или введите /mcp в Factory droid, чтобы открыть интерактивный интерфейс для управления MCP-серверами.

Для получения дополнительной информации см. документацию Factory MCP.

Следуйте руководству по установке MCP, используйте стандартную конфигурацию выше.

Нажмите кнопку для установки:

Установить в Goose

Или установите вручную:

Перейдите в Advanced settings -> Extensions -> Add custom extension. Дайте любое имя, используйте тип STDIO и установите command в npx @playwright/mcp. Нажмите "Add Extension".

Используйте CLI Grok, чтобы добавить сервер Playwright MCP:

grok mcp add playwright -- npx @playwright/mcp@latest

Или создайте или отредактируйте файл конфигурации ~/.grok/config.toml и добавьте:

[mcp_servers.playwright]
command = "npx"
args = ["@playwright/mcp@latest"]

Для получения дополнительной информации см. документацию Grok MCP.

Чтобы добавить сервер Playwright MCP в Junie CLI:

  1. Введите /mcp

  2. Нажмите Ctrl+A, чтобы добавить новый MCP-сервер

  3. Выберите Playwright из списка

Или добавьте в .junie/mcp/mcp.json:

{
  "mcpServers": {
    "Playwright": {
      "command": "npx",
      "args": [
        "-y",
        "@playwright/mcp@latest"
      ]
    }
  }
}

Для получения дополнительной информации см. документацию по конфигурации Junie MCP.

Добавить в Kiro

Следуйте документации по MCP-серверам. Например, в .kiro/settings/mcp.json:

{
  "mcpServers": {
    "playwright": {
      "command": "npx",
      "args": [
        "@playwright/mcp@latest"
      ]
    }
  }
}

Нажмите кнопку для установки:

Добавить MCP-сервер playwright в LM Studio

Или установите вручную:

Перейдите в Program на правой боковой панели -> Install -> Edit mcp.json. Используйте стандартную конфигурацию выше.

Следуйте документации по MCP-серверам. Например, в ~/.config/opencode/opencode.json:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "playwright": {
      "type": "local",
      "command": [
        "npx",
        "@playwright/mcp@latest"
      ],
      "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":"playwright","command":"npx","args":["@playwright/mcp@latest"]}'

После установки сервер Playwright MCP будет доступен для использования с агентом GitHub Copilot в VS Code.

Перейдите в Settings -> AI -> Manage MCP Servers -> + Add, чтобы добавить MCP-сервер. Используйте стандартную конфигурацию выше.

Или используйте слеш-команду /add-mcp в приглашении Warp и вставьте стандартную конфигурацию сверху:

{
  "mcpServers": {
    "playwright": {
      "command": "npx",
      "args": [
        "@playwright/mcp@latest"
      ]
    }
  }
}

Следуйте документации Windsurf MCP. Используйте стандартную конфигурацию выше.

Конфигурация

Сервер Playwright MCP поддерживает следующие аргументы. Они могут быть указаны в JSON-конфигурации выше, как часть списка "args":

Опция

Описание

--allowed-hosts <hosts...>

список хостов, разделенных запятыми, с которых этому серверу разрешено обслуживать. По умолчанию используется хост, к которому привязан сервер. Передайте '*' для отключения проверки хоста.env PLAYWRIGHT_MCP_ALLOWED_HOSTS

--allowed-origins

список ДОВЕРЕННЫХ источников, разделенных точкой с запятой, для разрешения запросов браузера. По умолчанию разрешены все. Важно: не является границей безопасности и не влияет на перенаправления.env PLAYWRIGHT_MCP_ALLOWED_ORIGINS

--allow-unrestricted-file-access

разрешить доступ к файлам за пределами корневых каталогов рабочей области. Также разрешает неограниченный доступ к URL-адресам file://. По умолчанию доступ к файловой системе ограничен только корневыми каталогами рабочей области (или текущим рабочим каталогом, если корни не настроены), а переход по URL-адресам file:// заблокирован.env PLAYWRIGHT_MCP_ALLOW_UNRESTRICTED_FILE_ACCESS

--blocked-origins

список источников, разделенных точкой с запятой, которые браузеру запрещено запрашивать. Черный список проверяется перед белым списком. Если используется без белого списка, запросы, не соответствующие черному списку, все равно разрешены. Важно: не является границей безопасности и не влияет на перенаправления.env PLAYWRIGHT_MCP_BLOCKED_ORIGINS

--block-service-workers

блокировать сервис-воркеровenv PLAYWRIGHT_MCP_BLOCK_SERVICE_WORKERS

--browser

браузер или канал Chrome для использования, возможные значения: chrome, firefox, webkit, msedge.env PLAYWRIGHT_MCP_BROWSER

--caps

список дополнительных возможностей, разделенных запятыми, для включения, возможные значения: vision, pdf, devtools.env PLAYWRIGHT_MCP_CAPS

--cdp-endpoint

конечная точка CDP для подключения.env PLAYWRIGHT_MCP_CDP_ENDPOINT

--cdp-header <headers...>

заголовки CDP для отправки с запросом на подключение, можно указать несколько.env PLAYWRIGHT_MCP_CDP_HEADERS

--cdp-timeout

таймаут в миллисекундах для подключения к конечной точке CDP, по умолчанию 30000msenv PLAYWRIGHT_MCP_CDP_TIMEOUT

--codegen

укажите язык для генерации кода, возможные значения: "typescript", "python", "java", "csharp", "none". По умолчанию "typescript".env PLAYWRIGHT_MCP_CODEGEN

--config

путь к файлу конфигурации.env PLAYWRIGHT_MCP_CONFIG

--console-level

уровень возвращаемых сообщений консоли: "error", "warning", "info", "debug". Каждый уровень включает сообщения более серьезных уровней.env PLAYWRIGHT_MCP_CONSOLE_LEVEL

--device

устройство для эмуляции, например: "iPhone 15"env PLAYWRIGHT_MCP_DEVICE

--mobile

эмулировать общее мобильное устройство (Pixel 10 для Chromium, iPhone 17 для WebKit). Мобильные страницы обычно легче, что экономит токены. Нельзя комбинировать с --device.env PLAYWRIGHT_MCP_MOBILE

--executable-path

путь к исполняемому файлу браузера.env PLAYWRIGHT_MCP_EXECUTABLE_PATH

--extension

Подключиться к запущенному экземпляру браузера (только Edge/Chrome). Требуется установка "Playwright Extension".env PLAYWRIGHT_MCP_EXTENSION

--endpoint

Привязанная конечная точка браузера для подключения.env PLAYWRIGHT_MCP_ENDPOINT

--grant-permissions <permissions...>

Список разрешений для предоставления контексту браузера, например "geolocation", "clipboard-read", "clipboard-write".env PLAYWRIGHT_MCP_GRANT_PERMISSIONS

--headless

запустить браузер в безголовом режиме, по умолчанию с графическим интерфейсомenv PLAYWRIGHT_MCP_HEADLESS

--host

хост для привязки сервера. По умолчанию localhost. Используйте 0.0.0.0 для привязки ко всем интерфейсам.env PLAYWRIGHT_MCP_HOST

--ignore-https-errors

игнорировать ошибки HTTPSenv PLAYWRIGHT_MCP_IGNORE_HTTPS_ERRORS

--init-page <path...>

путь к файлу TypeScript для выполнения на объекте страницы Playwrightenv PLAYWRIGHT_MCP_INIT_PAGE

--init-script <path...>

путь к файлу JavaScript для добавления в качестве скрипта инициализации. Скрипт будет выполняться на каждой странице перед любыми скриптами страницы. Можно указать несколько раз.env PLAYWRIGHT_MCP_INIT_SCRIPT

--isolated

хранить профиль браузера в памяти, не сохранять на диск.env PLAYWRIGHT_MCP_ISOLATED

--image-responses

отправлять ли ответы с изображениями клиенту. Может быть "allow" или "omit", по умолчанию "allow".env PLAYWRIGHT_MCP_IMAGE_RESPONSES

--no-sandbox

отключить песочницу для всех типов процессов, которые обычно находятся в песочнице.env PLAYWRIGHT_MCP_NO_SANDBOX

--output-dir

путь к каталогу для выходных файлов.env PLAYWRIGHT_MCP_OUTPUT_DIR

--output-max-size

Порог для вытеснения старых выходных файлов, в байтах.env PLAYWRIGHT_MCP_OUTPUT_MAX_SIZE

--port

порт для прослушивания транспорта SSE.env PLAYWRIGHT_MCP_PORT

--proxy-bypass

домены, разделенные запятыми, для обхода прокси, например ".com,chromium.org,.domain.com"env PLAYWRIGHT_MCP_PROXY_BYPASS

--proxy-server

укажите прокси-сервер, например "http://myproxy:3128" или "socks5://myproxy:8080"env PLAYWRIGHT_MCP_PROXY_SERVER

--sandbox

включить песочницу для всех типов процессов, которые обычно не находятся в песочнице.env PLAYWRIGHT_MCP_SANDBOX

--save-session

Сохранять ли сессию Playwright MCP в выходной каталог.env PLAYWRIGHT_MCP_SAVE_SESSION

--secrets

путь к файлу, содержащему секреты в формате dotenvenv PLAYWRIGHT_MCP_SECRETS_FILE

--shared-browser-context

повторно использовать один и тот же контекст браузера между всеми подключенными HTTP-клиентами.env PLAYWRIGHT_MCP_SHARED_BROWSER_CONTEXT

--snapshot-boxes

включать ограничивающую рамку каждого элемента как [box=x,y,width,height] в снимках. Координаты относительно области просмотра, в CSS-пикселях.env PLAYWRIGHT_MCP_SNAPSHOT_BOXES

--snapshot-mode

при создании снимков для ответов указывает режим использования. Может быть "full" или "none". По умолчанию "full".env PLAYWRIGHT_MCP_SNAPSHOT_MODE

--storage-state

путь к файлу состояния хранилища для изолированных сессий.env PLAYWRIGHT_MCP_STORAGE_STATE

--test-id-attribute

укажите атрибут для идентификаторов тестов, по умолчанию "data-testid"env PLAYWRIGHT_MCP_TEST_ID_ATTRIBUTE

--timeout-action

укажите таймаут действия в миллисекундах, по умолчанию 5000msenv PLAYWRIGHT_MCP_TIMEOUT_ACTION

--timeout-navigation

укажите таймаут навигации в миллисекундах, по умолчанию 60000msenv PLAYWRIGHT_MCP_TIMEOUT_NAVIGATION

--timeout-settle

сколько ждать после каждого действия для завершения запущенной работы, в миллисекундах, по умолчанию 500msenv PLAYWRIGHT_MCP_TIMEOUT_SETTLE

--user-agent

укажите строку user agentenv PLAYWRIGHT_MCP_USER_AGENT

--user-data-dir

путь к каталогу пользовательских данных. Если не указан, будет создан временный каталог.env PLAYWRIGHT_MCP_USER_DATA_DIR

--viewport-size

укажите размер области просмотра браузера в пикселях, например "1280x720"env PLAYWRIGHT_MCP_VIEWPORT_SIZE

Профиль пользователя

Вы можете запускать Playwright MCP с постоянным профилем, как обычный браузер (по умолчанию), в изолированных контекстах для тестовых сессий или подключаться к существующему браузеру через расширение.

Постоянный профиль

Вся информация о входе в систему будет сохранена в постоянном профиле; вы можете удалить его между сессиями, если хотите очистить офлайн-состояние. Постоянный профиль находится в следующих расположениях, и вы можете переопределить его с помощью аргумента --user-data-dir.

# Windows
%USERPROFILE%\AppData\Local\ms-playwright\mcp-{channel}-{workspace-hash}

# macOS
- ~/Library/Caches/ms-playwright/mcp-{channel}-{workspace-hash}

# Linux
- ~/.cache/ms-playwright/mcp-{channel}-{workspace-hash}

{workspace-hash} вычисляется из корня рабочей области MCP-клиента, поэтому разные проекты автоматически получают отдельные профили.

[!IMPORTANT] Постоянный профиль может использоваться только одним экземпляром браузера одновременно, поэтому одновременные MCP-клиенты, использующие одну рабочую область, будут конфликтовать. Чтобы запустить несколько клиентов параллельно, запустите каждый дополнительный клиент с флагом --isolated или укажите ему отдельный --user-data-dir.

Изолированный

В изолированном режиме каждая сессия запускается в изолированном профиле. Каждый раз, когда вы просите MCP закрыть браузер, сессия закрывается, и все данные хранилища для этой сессии теряются. Вы можете предоставить начальное состояние хранилища браузеру через contextOptions в конфигурации или через аргумент --storage-state. Узнайте больше о состоянии хранилища здесь.

{
  "mcpServers": {
    "playwright": {
      "command": "npx",
      "args": [
        "@playwright/mcp@latest",
        "--isolated",
        "--storage-state={path/to/storage.json}"
      ]
    }
  }
}

Расширение браузера

Расширение Playwright MCP для Chrome позволяет подключаться к существующим вкладкам браузера и использовать ваши авторизованные сессии и состояние браузера. См. microsoft/playwright › packages/extension для инструкций по установке и настройке.

Начальное состояние

Существует несколько способов предоставить начальное состояние контексту браузера или странице.

Для состояния хранилища вы можете:

  • Начать с каталога пользовательских данных, используя аргумент --user-data-dir. Это сохранит все данные браузера между сессиями.

  • Начать с файла состояния хранилища, используя аргумент --storage-state. Это загрузит cookies и локальное хранилище из файла в изолированный контекст браузера.

Для состояния страницы вы можете использовать:

  • --init-page для указания TypeScript-файла, который будет выполнен на объекте страницы Playwright. Это позволяет запускать произвольный код для настройки страницы.

// init-page.ts
export default async ({ page }) => {
  await page.context().grantPermissions(['geolocation']);
  await page.context().setGeolocation({ latitude: 37.7749, longitude: -122.4194 });
  await page.setViewportSize({ width: 1280, height: 720 });
};
  • --init-script для указания JavaScript-файла, который будет добавлен как скрипт инициализации. Скрипт будет выполняться на каждой странице перед любыми скриптами этой страницы. Это полезно для переопределения API браузера или настройки окружения.

// init-script.js
window.isPlaywrightMCP = true;

Файл конфигурации

Сервер Playwright MCP можно настроить с помощью JSON-файла конфигурации. Вы можете указать файл конфигурации, используя опцию командной строки --config:

npx @playwright/mcp@latest --config path/to/config.json
{
  /**
   * The browser to use.
   */
  browser?: {
    /**
     * The type of browser to use.
     */
    browserName?: 'chromium' | 'firefox' | 'webkit';

    /**
     * Keep the browser profile in memory, do not save it to disk.
     */
    isolated?: boolean;

    /**
     * Path to a user data directory for browser profile persistence.
     * Temporary directory is created by default.
     */
    userDataDir?: string;

    /**
     * Launch options passed to
     * @see https://playwright.dev/docs/api/class-browsertype#browser-type-launch-persistent-context
     *
     * This is useful for settings options like `channel`, `headless`, `executablePath`, etc.
     */
    launchOptions?: playwright.LaunchOptions;

    /**
     * Context options for the browser context.
     *
     * This is useful for settings options like `viewport`.
     */
    contextOptions?: playwright.BrowserContextOptions;

    /**
     * Chrome DevTools Protocol endpoint to connect to an existing browser instance in case of Chromium family browsers.
     */
    cdpEndpoint?: string;

    /**
     * CDP headers to send with the connect request.
     */
    cdpHeaders?: Record<string, string>;

    /**
     * Timeout in milliseconds for connecting to CDP endpoint. Defaults to 30000 (30 seconds). Pass 0 to disable timeout.
     */
    cdpTimeout?: number;

    /**
     * Remote endpoint to connect to an existing Playwright server. May be a
     * WebSocket URL string, or a [ConnectOptions] object that mirrors the
     * `connectOptions` shape used by the test runner. When passed as an object,
     * `exposeNetwork`, `headers`, `slowMo`, and `timeout` are forwarded to the
     * underlying connect call.
     */
    remoteEndpoint?: string | playwright.ConnectOptions & { endpoint: string };

    /**
     * Paths to TypeScript files to add as initialization scripts for Playwright page.
     */
    initPage?: string[];

    /**
     * Paths to JavaScript files to add as initialization scripts.
     * The scripts will be evaluated in every page before any of the page's scripts.
     */
    initScript?: string[];
  },

  /**
   * Connect to a running browser instance (Edge/Chrome only). If specified, `browser`
   * config is ignored.
   * Requires the "Playwright Extension" to be installed.
   */
  extension?: boolean;

  server?: {
    /**
     * The port to listen on for SSE or MCP transport.
     */
    port?: number;

    /**
     * The host to bind the server to. Default is localhost. Use 0.0.0.0 to bind to all interfaces.
     */
    host?: string;

    /**
     * The hosts this server is allowed to serve from. Defaults to the host server is bound to.
     * This is not for CORS, but rather for the DNS rebinding protection.
     */
    allowedHosts?: string[];
  },

  /**
   * List of enabled tool capabilities. Possible values:
   *   - 'core': Core browser automation features.
   *   - 'pdf': PDF generation and manipulation.
   *   - 'vision': Coordinate-based interactions.
   *   - 'devtools': Developer tools features.
   */
  capabilities?: ToolCapability[];

  /**
   * Whether to save the Playwright session into the output directory.
   */
  saveSession?: boolean;

  /**
   * Reuse the same browser context between all connected HTTP clients.
   */
  sharedBrowserContext?: boolean;

  /**
   * Secrets are used to replace matching plain text in the tool responses to prevent the LLM
   * from accidentally getting sensitive data. It is a convenience and not a security feature,
   * make sure to always examine information coming in and from the tool on the client.
   */
  secrets?: Record<string, string>;

  /**
   * The directory to save output files.
   */
  outputDir?: string;

  /**
   * Threshold for evicting old output files, in bytes.
   */
  outputMaxSize?: number;

  console?: {
    /**
     * The level of console messages to return. Each level includes the messages of more severe levels. Defaults to "info".
     */
    level?: 'error' | 'warning' | 'info' | 'debug';
  },

  network?: {
    /**
     * List of origins to allow the browser to request. Default is to allow all. Origins matching both `allowedOrigins` and `blockedOrigins` will be blocked.
     *
     * Supported formats:
     * - Full origin: `https://example.com:8080` - matches only that origin
     * - Wildcard port: `http://localhost:*` - matches any port on localhost with http protocol
     */
    allowedOrigins?: string[];

    /**
     * List of origins to block the browser to request. Origins matching both `allowedOrigins` and `blockedOrigins` will be blocked.
     *
     * Supported formats:
     * - Full origin: `https://example.com:8080` - matches only that origin
     * - Wildcard port: `http://localhost:*` - matches any port on localhost with http protocol
     */
    blockedOrigins?: string[];
  };

  /**
   * Specify the attribute to use for test ids, defaults to "data-testid".
   */
  testIdAttribute?: string;

  timeouts?: {
    /*
     * Configures default action timeout: https://playwright.dev/docs/api/class-page#page-set-default-timeout. Defaults to 5000ms.
     */
    action?: number;

    /*
     * Configures default navigation timeout: https://playwright.dev/docs/api/class-page#page-set-default-navigation-timeout. Defaults to 60000ms.
     */
    navigation?: number;

    /**
     * Configures default expect timeout: https://playwright.dev/docs/test-timeouts#expect-timeout. Defaults to 5000ms.
     */
    expect?: number;

    /**
     * How long to wait after each action for triggered work (navigations, requests) to settle before responding. Defaults to 500ms.
     */
    settle?: number;
  };

  /**
   * Whether to send image responses to the client. Can be "allow", "omit", or "auto". Defaults to "auto", which sends images if the client can display them.
   */
  imageResponses?: 'allow' | 'omit';

  snapshot?: {
    /**
     * When taking snapshots for responses, specifies the mode to use.
     */
    mode?: 'full' | 'none';

    /**
     * Whether to include each element's bounding box as [box=x,y,width,height] in snapshots.
     * Coordinates are viewport-relative, in CSS pixels (Element.getBoundingClientRect).
     */
    boxes?: boolean;
  };

  /**
   * allowUnrestrictedFileAccess acts as a guardrail to prevent the LLM from accidentally
   * wandering outside its intended workspace. It is a convenience defense to catch unintended
   * file access, not a secure boundary; a deliberate attempt to reach other directories can be
   * easily worked around, so always rely on client-level permissions for true security.
   */
  allowUnrestrictedFileAccess?: boolean;

  /**
   * Specify the language to use for code generation.
   */
  codegen?: 'typescript' | 'python' | 'java' | 'csharp' | 'none';
}

Автономный MCP-сервер

При запуске браузера с графическим интерфейсом в системе без дисплея или из рабочих процессов IDE запускайте MCP-сервер из окружения с переменной DISPLAY и передавайте флаг --port для включения HTTP-транспорта.

npx @playwright/mcp@latest --port 8931

Затем в конфигурации MCP-клиента укажите url на HTTP-эндпоинт:

{
  "mcpServers": {
    "playwright": {
      "url": "http://localhost:8931/mcp"
    }
  }
}

Related MCP server: Playwright MCP Server

Безопасность

Playwright MCP не является границей безопасности. См. Рекомендации по безопасности MCP для получения рекомендаций по защите вашего развертывания.

ПРИМЕЧАНИЕ: В настоящее время реализация 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 \
  -p 8931:8931 \
  mcr.microsoft.com/playwright/mcp \
  /app/cli.js --headless --browser chromium --no-sandbox --port 8931 --host 0.0.0.0

Сервер будет слушать на порту хоста 8931 и будет доступен любому MCP-клиенту.

Вы можете собрать Docker-образ самостоятельно.

docker build -t mcr.microsoft.com/playwright/mcp .
import http from 'http';

import { createConnection } from '@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_click

    • Название: Клик

    • Описание: Выполнить клик на веб-странице

    • Параметры:

      • element (string, опционально): Человекочитаемое описание элемента, используемое для получения разрешения на взаимодействие с элементом

      • target (string): Точная ссылка на целевой элемент из снимка страницы или уникальный селектор элемента

      • doubleClick (boolean, опционально): Выполнять ли двойной клик вместо одинарного

      • button (string, опционально): Кнопка для клика, по умолчанию левая

      • modifiers (array, опционально): Клавиши-модификаторы для нажатия

    • Только чтение: false

  • browser_close

    • Название: Закрыть браузер

    • Описание: Закрыть страницу

    • Параметры: Нет

    • Только чтение: false

  • browser_console_messages

    • Название: Получить сообщения консоли

    • Описание: Возвращает все сообщения консоли

    • Параметры:

      • level (string): Уровень сообщений консоли для возврата. Каждый уровень включает сообщения более серьезных уровней. По умолчанию "info".

      • all (boolean, опционально): Возвращать все сообщения консоли с начала сессии, а не только с последней навигации. По умолчанию false.

      • filename (string, опционально): Имя файла для сохранения сообщений консоли. Если не указано, сообщения возвращаются в виде текста.

    • Только чтение: true

  • browser_drag

    • Название: Перетаскивание мышью

    • Описание: Выполнить перетаскивание между двумя элементами

    • Параметры:

      • startElement (string, опционально): Человекочитаемое описание исходного элемента, используемое для получения разрешения на взаимодействие с элементом

      • startTarget (string): Точная ссылка на целевой элемент из снимка страницы или уникальный селектор элемента

      • endElement (string, опционально): Человекочитаемое описание целевого элемента, используемое для получения разрешения на взаимодействие с элементом

      • endTarget (string): Точная ссылка на целевой элемент из снимка страницы или уникальный селектор элемента

    • Только чтение: false

  • browser_drop

    • Название: Сбросить файлы или данные на элемент

    • Описание: Сбросить файлы или данные с MIME-типом на элемент, как если бы они были перетащены извне страницы. Должен быть указан хотя бы один из параметров "paths" или "data".

    • Параметры:

      • element (string, опционально): Человекочитаемое описание элемента, используемое для получения разрешения на взаимодействие с элементом

      • target (string): Точная ссылка на целевой элемент из снимка страницы или уникальный селектор элемента

      • paths (array, опционально): Абсолютные пути к файлам для сброса на элемент.

      • data (object, опционально): Данные для сброса в виде карты MIME-типа к строковому значению (например, {"text/plain": "hello", "text/uri-list": "https://example.com"}).

    • Только чтение: false

  • browser_evaluate

    • Название: Выполнить JavaScript

    • Описание: Выполнить JavaScript-выражение на странице или элементе

    • Параметры:

      • element (string, опционально): Человекочитаемое описание элемента, используемое для получения разрешения на взаимодействие с элементом

      • target (string, опционально): Точная ссылка на целевой элемент из снимка страницы или уникальный селектор элемента

      • function (string): () => { /* код / } или (element) => { / код */ } если указан элемент

      • filename (string, опционально): Имя файла для сохранения результата. Если не указано, результат возвращается в виде текста.

    • Только чтение: false

  • browser_file_upload

    • Название: Загрузить файлы

    • Описание: Загрузить один или несколько файлов

    • Параметры:

      • paths (array, опционально): Абсолютные пути к файлам для загрузки. Может быть один файл или несколько. Если опущено, выбор файла отменяется.

    • Только чтение: false

  • browser_fill_form

    • Название: Заполнить форму

    • Описание: Заполнить несколько полей формы

    • Параметры:

      • fields (array): Поля для заполнения

    • Только чтение: false

  • browser_find

    • Название: Найти в снимке страницы

    • Описание: Поиск в снимке доступности текущей страницы по тексту или регулярному выражению. Возвращает соответствующие узлы снимка с несколькими строками окружающего контекста (как фрагменты поиска), каждый показан под своим путем от корня дерева, что дешевле, чем захват всего снимка, когда нужно только найти элемент и его ссылку.

    • Параметры:

      • text (string, опционально): Простой текст для поиска в снимке страницы (поиск подстроки без учета регистра). Укажите либо text, либо regex, но не оба.

      • regex (string, опционально): Регулярное выражение для поиска в снимке страницы. По умолчанию поиск чувствителен к регистру; оберните шаблон в косые черты, чтобы добавить флаги, например "/error/i" для регистронезависимого поиска. Укажите либо text, либо regex, но не оба.

    • Только чтение: true

  • browser_handle_dialog

    • Название: Обработать диалог

    • Описание: Обработать диалог

    • Параметры:

      • accept (boolean): Принять диалог или нет.

      • promptText (string, опционально): Текст подсказки в случае диалога с вводом.

    • Только чтение: false

  • browser_hover

    • Название: Навести мышь

    • Описание: Навести курсор на элемент на странице

    • Параметры:

      • element (string, опционально): Человекочитаемое описание элемента, используемое для получения разрешения на взаимодействие с элементом

      • target (string): Точная ссылка на целевой элемент из снимка страницы или уникальный селектор элемента

    • Только чтение: false

  • browser_navigate

    • Название: Перейти по URL

    • Описание: Перейти по URL

    • Параметры:

      • url (string): URL для перехода

    • Только чтение: false

  • browser_navigate_back

    • Название: Назад

    • Описание: Вернуться на предыдущую страницу в истории

    • Параметры: Нет

    • Только чтение: false

  • browser_network_request

    • Название: Показать детали сетевого запроса

    • Описание: Возвращает полные детали (заголовки и тело) одного сетевого запроса или одну часть, если указан part. Используйте номер из browser_network_requests.

    • Параметры:

      • index (integer): 1-индексированный номер запроса, как выведено browser_network_requests.

      • part (string, опционально): Вернуть только эту часть запроса. Опустите для возврата полных деталей.

      • filename (string, опционально): Имя файла для сохранения результата. Если не указано, вывод возвращается в виде текста.

    • Только чтение: true

  • browser_network_requests

    • Название: Список сетевых запросов

    • Описание: Возвращает нумерованный список сетевых запросов с момента загрузки страницы. Используйте browser_network_request с номером для получения полных деталей.

    • Параметры:

      • static (boolean): Включать ли успешные статические ресурсы, такие как изображения, шрифты, скрипты и т.д. По умолчанию false.

      • filter (string, опционально): Возвращать только запросы, URL которых соответствует этому регулярному выражению (например, "/api/.*user").

      • filename (string, опционально): Имя файла для сохранения сетевых запросов. Если не указано, запросы возвращаются в виде текста.

    • Только чтение: true

  • browser_press_key

    • Title: Нажатие клавиши

    • Description: Нажать клавишу на клавиатуре

    • Parameters:

      • key (string): Имя клавиши для нажатия или символ для генерации, например ArrowLeft или a

    • Read-only: false

  • browser_resize

    • Title: Изменить размер окна браузера

    • Description: Изменить размер окна браузера

    • Parameters:

      • width (number): Ширина окна браузера

      • height (number): Высота окна браузера

    • Read-only: false

  • browser_run_code_unsafe

    • Title: Запустить код Playwright (небезопасно)

    • Description: Запустить фрагмент кода Playwright. Небезопасно: выполняет произвольный JavaScript в процессе сервера Playwright и эквивалентно удаленному выполнению кода (RCE).

    • Parameters:

      • code (string, optional): Функция JavaScript, содержащая код Playwright для выполнения. Она будет вызвана с одним аргументом, page, который вы можете использовать для любого взаимодействия со страницей. Например: async (page) => { await page.getByRole('button', { name: 'Submit' }).click(); return await page.title(); }

      • filename (string, optional): Загрузить код из указанного файла. Если указаны и code, и filename, code будет проигнорирован.

    • Read-only: false

  • browser_select_option

    • Title: Выбрать опцию

    • Description: Выбрать опцию в выпадающем списке

    • Parameters:

      • element (string, optional): Описание элемента на человеческом языке, используемое для получения разрешения на взаимодействие с элементом

      • target (string): Точная ссылка на целевой элемент из снимка страницы или уникальный селектор элемента

      • values (array): Массив значений для выбора в выпадающем списке. Может быть одним значением или несколькими.

    • Read-only: false

  • browser_snapshot

    • Title: Снимок страницы

    • Description: Захватить снимок доступности текущей страницы; это лучше, чем скриншот

    • Parameters:

      • target (string, optional): Точная ссылка на целевой элемент из снимка страницы или уникальный селектор элемента

      • filename (string, optional): Сохранить снимок в файл Markdown вместо возврата в ответе.

      • depth (number, optional): Ограничить глубину дерева снимка

      • boxes (boolean, optional): Включать ограничивающую рамку каждого элемента в формате [box=x,y,width,height] в снимок. Координаты относительно области просмотра, в CSS-пикселях (Element.getBoundingClientRect)

    • Read-only: true

  • browser_take_screenshot

    • Title: Сделать скриншот

    • Description: Сделать скриншот текущей страницы. Вы не можете выполнять действия на основе скриншота; используйте browser_snapshot для действий.

    • Parameters:

      • element (string, optional): Описание элемента на человеческом языке, используемое для получения разрешения на взаимодействие с элементом

      • target (string, optional): Точная ссылка на целевой элемент из снимка страницы или уникальный селектор элемента

      • type (string, optional): Формат изображения для скриншота. Если не указан, определяется по расширению имени файла, иначе png.

      • filename (string, optional): Имя файла для сохранения скриншота. По умолчанию page-{timestamp}.{png|jpeg|webp}, если не указано. Предпочтительно использовать относительные имена файлов, чтобы оставаться в выходной директории.

      • fullPage (boolean, optional): Если true, делает скриншот всей прокручиваемой страницы, а не текущей видимой области. Нельзя использовать с элементом скриншотов.

      • scale (string): Масштаб разрешения изображения. "css" создает скриншот размером в CSS-пикселях (меньше, единообразно на разных устройствах). "device" создает скриншот высокого разрешения с использованием пикселей устройства (больше, учитывает коэффициент пикселей устройства). По умолчанию css.

    • Read-only: true

  • browser_type

    • Title: Ввести текст

    • Description: Ввести текст в редактируемый элемент

    • Parameters:

      • element (string, optional): Описание элемента на человеческом языке, используемое для получения разрешения на взаимодействие с элементом

      • target (string): Точная ссылка на целевой элемент из снимка страницы или уникальный селектор элемента

      • text (string): Текст для ввода в элемент

      • submit (boolean, optional): Отправлять ли введенный текст (нажать Enter после)

      • slowly (boolean, optional): Вводить ли по одному символу за раз. Полезно для активации обработчиков клавиш на странице. По умолчанию весь текст вводится сразу.

    • Read-only: false

  • browser_wait_for

    • Title: Ожидание

    • Description: Ожидать появления или исчезновения текста или истечения указанного времени

    • Parameters:

      • time (number, optional): Время ожидания в секундах

      • text (string, optional): Текст, который нужно ожидать

      • textGone (string, optional): Текст, который нужно ожидать для исчезновения

    • Read-only: false

  • browser_tabs

    • Title: Управление вкладками

    • Description: Список, создание, закрытие или выбор вкладки браузера.

    • Parameters:

      • action (string): Операция для выполнения

      • index (number, optional): Индекс вкладки, используется для закрытия/выбора. Если опущен для закрытия, закрывается текущая вкладка.

      • url (string, optional): URL для перехода на новую вкладку, используется для новой.

    • Read-only: false

  • browser_get_config

    • Title: Получить конфигурацию

    • Description: Получить окончательную разрешенную конфигурацию после объединения параметров CLI, переменных окружения и файла конфигурации.

    • Parameters: None

    • Read-only: true

  • browser_network_state_set

    • Title: Установить состояние сети

    • Description: Устанавливает состояние сети браузера в онлайн или офлайн. В режиме офлайн все сетевые запросы будут неудачными.

    • Parameters:

      • state (string): Установите "offline" для имитации режима офлайн, "online" для восстановления сетевого подключения

    • Read-only: false

  • browser_route

    • Title: Имитировать сетевые запросы

    • Description: Настроить маршрут для имитации сетевых запросов, соответствующих шаблону URL

    • Parameters:

      • pattern (string): Шаблон URL для сопоставления (например, "/api/users", "/*.{png,jpg}")

      • status (number, optional): HTTP-статус код для возврата (по умолчанию: 200)

      • body (string, optional): Тело ответа (текст или строка JSON)

      • contentType (string, optional): Заголовок Content-Type (например, "application/json", "text/html")

      • headers (array, optional): Заголовки для добавления в формате "Name: Value"

      • removeHeaders (string, optional): Разделенный запятыми список имен заголовков для удаления из запроса

    • Read-only: false

  • browser_route_list

    • Title: Список сетевых маршрутов

    • Description: Перечислить все активные сетевые маршруты

    • Parameters: None

    • Read-only: true

  • browser_unroute

    • Title: Удалить сетевые маршруты

    • Description: Удалить сетевые маршруты, соответствующие шаблону (или все маршруты, если шаблон не указан)

    • Parameters:

      • pattern (string, optional): Шаблон URL для удаления маршрута (опустите, чтобы удалить все маршруты)

    • Read-only: false

  • browser_cookie_clear

    • Title: Очистить куки

    • Description: Очистить все куки

    • Parameters: None

    • Read-only: false

  • browser_cookie_delete

    • Title: Удалить куку

    • Description: Удалить конкретную куку

    • Parameters:

      • name (string): Имя куки для удаления

    • Read-only: false

  • browser_cookie_get

    • Title: Получить куку

    • Description: Получить конкретную куку по имени

    • Parameters:

      • name (string): Имя куки для получения

    • Read-only: true

  • browser_cookie_list

    • Title: Список кук

    • Description: Перечислить все куки (опционально отфильтрованные по домену/пути)

    • Parameters:

      • domain (string, optional): Фильтровать куки по домену

      • path (string, optional): Фильтровать куки по пути

    • Read-only: true

  • browser_cookie_set

    • Title: Установить куку

    • Description: Установить куку с опциональными флагами (domain, path, expires, httpOnly, secure, sameSite)

    • Parameters:

      • name (string): Имя куки

      • value (string): Значение куки

      • domain (string, optional): Домен куки

      • path (string, optional): Путь куки

      • expires (number, optional): Срок действия куки как метка времени Unix

      • httpOnly (boolean, optional): Является ли кука HTTP-only

      • secure (boolean, optional): Является ли кука безопасной (secure)

      • sameSite (string, optional): Атрибут SameSite куки

    • Read-only: false

  • browser_localstorage_clear

    • Title: Очистить localStorage

    • Description: Очистить весь localStorage

    • Parameters: None

    • Read-only: false

  • browser_localstorage_delete

    • Title: Удалить элемент localStorage

    • Description: Удалить элемент localStorage

    • Parameters:

      • key (string): Ключ для удаления

    • Read-only: false

  • browser_localstorage_get

    • Title: Получить элемент localStorage

    • Description: Получить элемент localStorage по ключу

    • Parameters:

      • key (string): Ключ для получения

    • Read-only: true

  • browser_localstorage_list

    • Title: Список localStorage

    • Description: Перечислить все пары ключ-значение localStorage

    • Parameters: None

    • Read-only: true

  • browser_localstorage_set

    • Title: Установить элемент localStorage

    • Description: Установить элемент localStorage

    • Parameters:

      • key (string): Ключ для установки

      • value (string): Значение для установки

    • Read-only: false

  • browser_sessionstorage_clear

    • Title: Очистить sessionStorage

    • Description: Очистить весь sessionStorage

    • Parameters: None

    • Read-only: false

  • browser_sessionstorage_delete

    • Title: Удалить элемент sessionStorage

    • Description: Удалить элемент sessionStorage

    • Parameters:

      • key (string): Ключ для удаления

    • Read-only: false

  • browser_sessionstorage_get

    • Title: Получить элемент sessionStorage

    • Description: Получить элемент sessionStorage по ключу

    • Parameters:

      • key (string): Ключ для получения

    • Read-only: true

  • browser_sessionstorage_list

    • Title: Список sessionStorage

    • Description: Перечислить все пары ключ-значение sessionStorage

    • Parameters: None

    • Read-only: true

  • browser_sessionstorage_set

    • Название: Установить элемент sessionStorage

    • Описание: Установить элемент sessionStorage

    • Параметры:

      • key (строка): Ключ для установки

      • value (строка): Значение для установки

    • Только для чтения: false

  • browser_set_storage_state

    • Название: Восстановить состояние хранилища

    • Описание: Восстановить состояние хранилища (cookies, локальное хранилище) из файла. Это очищает существующие cookies и локальное хранилище перед восстановлением.

    • Параметры:

      • filename (строка): Путь к файлу состояния хранилища для восстановления

    • Только для чтения: false

  • browser_storage_state

    • Название: Сохранить состояние хранилища

    • Описание: Сохранить состояние хранилища (cookies, локальное хранилище) в файл для последующего использования

    • Параметры:

      • filename (строка, необязательно): Имя файла для сохранения состояния хранилища. По умолчанию storage-state-{timestamp}.json, если не указано.

    • Только для чтения: true

  • browser_annotate

    • Название: Аннотировать текущую страницу

    • Описание: Открыть панель Playwright Dashboard в режиме аннотации для текущей страницы и дождаться, пока пользователь нарисует аннотации. Возвращает аннотированный скриншот, ARIA-снимок и список аннотаций.

    • Параметры: Нет

    • Только для чтения: true

  • browser_hide_highlight

    • Название: Скрыть подсветку элемента

    • Описание: Удалить наложенную подсветку, ранее добавленную для элемента.

    • Параметры:

      • element (строка, необязательно): Понятное человеку описание элемента, использованное при добавлении подсветки; должно совпадать со значением, переданным в browser_highlight.

      • target (строка, необязательно): Точная ссылка на целевой элемент из снимка страницы или уникальный селектор элемента

    • Только для чтения: true

  • browser_highlight

    • Название: Подсветить элемент

    • Описание: Показать постоянную наложенную подсветку вокруг элемента на странице.

    • Параметры:

      • element (строка, необязательно): Понятное человеку описание элемента, использованное для получения разрешения на взаимодействие с элементом

      • target (строка): Точная ссылка на целевой элемент из снимка страницы или уникальный селектор элемента

      • style (строка, необязательно): Дополнительный встроенный CSS, применяемый к наложенной подсветке, например "outline: 2px dashed red".

    • Только для чтения: true

  • browser_resume

    • Название: Возобновить выполнение приостановленного скрипта

    • Описание: Возобновить выполнение скрипта после его приостановки. При вызове с параметром step, установленным в true, выполнение снова приостановится перед следующим действием.

    • Параметры:

      • step (логический, необязательно): Если true, выполнение снова приостановится перед следующим действием, что позволяет пошаговую отладку.

      • location (строка, необязательно): Приостановить выполнение в конкретном <файл>:<строка>, например "example.spec.ts:42".

    • Только для чтения: false

  • browser_start_tracing

    • Название: Начать трассировку

    • Описание: Начать запись трассировки

    • Параметры: Нет

    • Только для чтения: true

  • browser_start_video

    • Название: Начать видео

    • Описание: Начать запись видео

    • Параметры:

      • filename (строка, необязательно): Имя файла для сохранения видео.

      • size (объект, необязательно): Размер видео

    • Только для чтения: true

  • browser_stop_tracing

    • Название: Остановить трассировку

    • Описание: Остановить запись трассировки

    • Параметры: Нет

    • Только для чтения: true

  • browser_stop_video

    • Название: Остановить видео

    • Описание: Остановить запись видео

    • Параметры: Нет

    • Только для чтения: true

  • browser_video_chapter

    • Название: Глава видео

    • Описание: Добавить маркер главы в запись видео. Показывает полноэкранную карточку главы с размытым фоном.

    • Параметры:

      • title (строка): Название главы

      • description (строка, необязательно): Описание главы

      • duration (число, необязательно): Продолжительность отображения карточки главы в миллисекундах

    • Только для чтения: true

  • browser_video_hide_actions

    • Название: Скрыть наложения действий

    • Описание: Прекратить аннотирование действий, выполняемых на странице.

    • Параметры: Нет

    • Только для чтения: true

  • browser_video_show_actions

    • Название: Показать наложения действий

    • Описание: Аннотировать последующие действия, выполняемые на странице, с помощью выноски, которая называет действие и подсвечивает целевой элемент. Полезно при записи видео или трансляции экрана.

    • Параметры:

      • duration (число, необязательно): Как долго каждая аннотация действия остается на экране, в миллисекундах. По умолчанию 500.

      • position (строка, необязательно): Где разместить название действия относительно страницы. По умолчанию вверху справа.

      • cursor (строка, необязательно): Оформление курсора для действий указателя. "pointer" (по умолчанию) анимирует указатель мыши от предыдущей точки действия к следующей; "none" отключает оформление курсора.

    • Только для чтения: true

  • browser_mouse_click_xy

    • Название: Щелчок

    • Описание: Щелкнуть кнопкой мыши в заданной позиции

    • Параметры:

      • x (число): Координата X

      • y (число): Координата Y

      • button (строка, необязательно): Кнопка для щелчка, по умолчанию левая

      • clickCount (число, необязательно): Количество щелчков, по умолчанию 1

      • delay (число, необязательно): Время ожидания между нажатием и отпусканием кнопки мыши в миллисекундах, по умолчанию 0

    • Только для чтения: false

  • browser_mouse_down

    • Название: Нажать кнопку мыши

    • Описание: Нажать кнопку мыши

    • Параметры:

      • button (строка, необязательно): Кнопка для нажатия, по умолчанию левая

    • Только для чтения: false

  • browser_mouse_drag_xy

    • Название: Перетащить мышью

    • Описание: Перетащить левой кнопкой мыши в заданную позицию

    • Параметры:

      • startX (число): Начальная координата X

      • startY (число): Начальная координата Y

      • endX (число): Конечная координата X

      • endY (число): Конечная координата Y

    • Только для чтения: false

  • browser_mouse_move_xy

    • Название: Переместить мышь

    • Описание: Переместить мышь в заданную позицию

    • Параметры:

      • x (число): Координата X

      • y (число): Координата Y

    • Только для чтения: false

  • browser_mouse_up

    • Название: Отпустить кнопку мыши

    • Описание: Отпустить кнопку мыши

    • Параметры:

      • button (строка, необязательно): Кнопка для отпускания, по умолчанию левая

    • Только для чтения: false

  • browser_mouse_wheel

    • Название: Прокрутить колесико мыши

    • Описание: Прокрутить колесико мыши

    • Параметры:

      • deltaX (число): Дельта X

      • deltaY (число): Дельта Y

    • Только для чтения: false

  • browser_pdf_save

    • Название: Сохранить как PDF

    • Описание: Сохранить страницу как PDF

    • Параметры:

      • filename (строка, необязательно): Имя файла для сохранения PDF. По умолчанию page-{timestamp}.pdf, если не указано. Предпочтительно использовать относительные имена файлов, чтобы оставаться в пределах выходного каталога.

    • Только для чтения: true

  • browser_generate_locator

    • Название: Создать локатор для элемента

    • Описание: Сгенерировать локатор для указанного элемента для использования в тестах

    • Параметры:

      • element (строка, необязательно): Понятное человеку описание элемента, использованное для получения разрешения на взаимодействие с элементом

      • target (строка): Точная ссылка на целевой элемент из снимка страницы или уникальный селектор элемента

    • Только для чтения: true

  • browser_verify_element_visible

    • Название: Проверить видимость элемента

    • Описание: Проверить, что элемент виден на странице

    • Параметры:

      • role (строка): РОЛЬ элемента. Можно найти в снимке следующим образом: - {ROLE} "Доступное имя":

      • accessibleName (строка): ДОСТУПНОЕ_ИМЯ элемента. Можно найти в снимке следующим образом: - role "{ДОСТУПНОЕ_ИМЯ}"

    • Только для чтения: false

  • browser_verify_list_visible

    • Название: Проверить видимость списка

    • Описание: Проверить, что список виден на странице

    • Параметры:

      • element (строка): Понятное человеку описание списка

      • target (строка): Точная ссылка на целевой элемент, указывающая на список

      • items (массив): Элементы для проверки

    • Только для чтения: false

  • browser_verify_text_visible

    • Название: Проверить видимость текста

    • Описание: Проверить, что текст виден на странице. По возможности используйте browser_verify_element_visible.

    • Параметры:

      • text (строка): ТЕКСТ для проверки. Можно найти в снимке следующим образом: - role "Доступное имя": {ТЕКСТ} или так: - text: {ТЕКСТ}

    • Только для чтения: false

  • browser_verify_value

    • Название: Проверить значение

    • Описание: Проверить значение элемента

    • Параметры:

      • type (строка): Тип элемента

      • element (строка): Понятное человеку описание элемента

      • target (строка): Точная ссылка на целевой элемент из снимка страницы

      • value (строка): Значение для проверки. Для флажка используйте "true" или "false".

    • Только для чтения: false

Install Server
A
license - permissive license
B
quality
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • A
    license
    -
    quality
    D
    maintenance
    A 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.
    6
    Apache 2.0
  • A
    license
    B
    quality
    D
    maintenance
    A 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.
    7
    17,591
    Apache 2.0
  • A
    license
    -
    quality
    D
    maintenance
    A Model Context Protocol server that provides browser automation capabilities by allowing LLMs to interact with web pages through structured accessibility snapshots. It enables fast, lightweight interaction with web content without the need for vision-tuned models or visual processing.
    Apache 2.0

View all related MCP servers

Related MCP Connectors

  • E2LLM gives your AI eyes and hands in a real browser: structured perception (SiFR) plus action.

  • Live browser debugging for AI assistants — DOM, console, network via MCP.

  • AI-powered browser automation — navigate, click, fill forms, and extract data from any website.

View all MCP Connectors

Latest Blog Posts

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/DavidG-BLW/MCP_DOCS'

If you have feedback or need assistance with the MCP directory API, please join our Discord server