Playwright MCP

公式

Playwrightの公式MCPサーバー。ブラウザ自動化、ページ検査、スクリーンショット、およびClaude、Cursor、その他のAIエージェントからのWeb操作に対応。

Playwright MCPで何ができますか?

  • Webページの操作と対話 — アシスタントにURLを開く、要素をクリックする、フォームに入力する、またはPlaywrightのブラウザ自動化を使用して構造化されたアクセシビリティスナップショットを抽出するよう依頼します。
  • ブラウザの動作を設定--browser--device--viewport-size--user-agent 引数を使用して、ブラウザの種類、ビューポートサイズ、デバイスエミュレーション、またはユーザーエージェントを設定します。
  • セッションと認証を管理 — 永続プロファイル(--user-data-dir)、分離セッション(--isolated)、またはストレージ状態ファイル(--storage-state)を使用して、実行間のログイン状態を制御します。
  • 既存のブラウザに接続--extension フラグを使用して実行中のChromeまたはEdgeインスタンスにアタッチし、再認証せずにログイン済みセッションを再利用します。
  • 出力とスナップショットを制御--output-dir--output-mode--snapshot-mode を使用して、コンソールメッセージ、ネットワークログ、アクセシビリティスナップショットをファイルまたは標準出力にキャプチャします。

ドキュメント

Playwright MCP

Playwright を使用したブラウザ自動化機能を提供する Model Context Protocol (MCP) サーバーです。このサーバーにより、LLM は構造化されたアクセシビリティスナップショットを通じて Web ページと対話できるようになり、スクリーンショットや視覚的に調整されたモデルが不要になります。

Playwright MCP と Playwright CLI の比較

このパッケージは、Playwright への MCP インターフェースを提供します。コーディングエージェント を使用している場合は、代わりに CLI+SKILLS を使用する方がメリットがあるかもしれません。

  • CLI: 最近のコーディングエージェントは、MCP よりも SKILL として公開される CLI ベースのワークフローを好む傾向が強まっています。CLI 呼び出しは、大きなツールスキーマや冗長なアクセシビリティツリーをモデルコンテキストに読み込むことを避けるため、トークン効率が高く、エージェントは簡潔で目的に特化したコマンドを通じて動作できます。これにより、CLI + SKILL は、限られたコンテキストウィンドウ内でブラウザ自動化と大規模なコードベース、テスト、推論のバランスを取る必要がある高スループットのコーディングエージェントに適しています。
    Playwright CLI with 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"
      ]
    }
  }
}

Install in VS Code Install in VS Code Insiders

Amp

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

Antigravity 設定から、または設定ファイルを更新して追加します:

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

Claude Code CLI を使用して Playwright MCP サーバーを追加します:

claude mcp add playwright npx @playwright/mcp@latest
Claude Desktop

MCP インストール ガイド に従い、上記の標準設定を使用します。

Cline

Configuring MCP Servers セクションの手順に従ってください

例: ローカルセットアップ

cline_mcp_settings.json ファイルに以下を追加します:

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

Codex CLI を使用して Playwright MCP サーバーを追加します:

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

または、設定ファイル ~/.codex/config.toml を作成または編集して以下を追加します:

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

詳細については、Codex MCP ドキュメント を参照してください。

Copilot

Copilot CLI を使用して Playwright MCP サーバーを対話的に追加します:

/mcp add

または、設定ファイル ~/.copilot/mcp-config.json を作成または編集して以下を追加します:

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

詳細については、Copilot CLI ドキュメント を参照してください。

Cursor

ボタンをクリックしてインストール:

Install in Cursor

または手動でインストール:

Cursor Settings -> MCP -> Add new MCP Server に移動します。任意の名前を付け、タイプ command を使用し、コマンド npx @playwright/mcp@latest を指定します。Edit をクリックして、設定の確認やコマンド引数の追加もできます。

Factory

Factory CLI を使用して Playwright MCP サーバーを追加します:

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

または、Factory droid 内で /mcp と入力して、MCP サーバーを管理するためのインタラクティブ UI を開きます。

詳細については、Factory MCP ドキュメント を参照してください。

Gemini CLI

MCP インストール ガイド に従い、上記の標準設定を使用します。

Goose

ボタンをクリックしてインストール:

Install in Goose

または手動でインストール:

Advanced settings -> Extensions -> Add custom extension に移動します。任意の名前を付け、タイプ STDIO を使用し、commandnpx @playwright/mcp に設定します。「Add Extension」をクリックします。

Grok

Grok CLI を使用して Playwright MCP サーバーを追加します:

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

または、設定ファイル ~/.grok/config.toml を作成または編集して以下を追加します:

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

詳細については、Grok MCP ドキュメント を参照してください。

Junie

Junie CLI で Playwright MCP サーバーを追加するには:

  1. /mcp と入力します
  2. Ctrl+A を押して新しい MCP サーバーを追加します
  3. リストから Playwright を選択します

または、.junie/mcp/mcp.json に追加します:

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

詳細については、Junie MCP 設定ドキュメント を参照してください。

Kiro

Add to Kiro

MCP サーバー ドキュメント に従ってください。例: .kiro/settings/mcp.json 内:

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

ボタンをクリックしてインストール:

Add MCP Server playwright to LM Studio

または手動でインストール:

右サイドバーの Program -> Install -> Edit mcp.json に移動します。上記の標準設定を使用します。

opencode

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 で Qodo Gen チャットパネルを開く → Connect more tools → + Add new MCP → 上記の標準設定を貼り付けます。

Save をクリックします。

VS Code

ボタンをクリックしてインストール:

Install in VS Code Install in VS Code Insiders

または手動でインストール:

MCP インストール ガイド に従い、上記の標準設定を使用します。VS Code CLI を使用して Playwright MCP サーバーをインストールすることもできます:

# For VS Code
code --add-mcp '{"name":"playwright","command":"npx","args":["@playwright/mcp@latest"]}'

インストール後、Playwright MCP サーバーは VS Code の GitHub Copilot エージェントで使用できるようになります。

Warp

Settings -> AI -> Manage MCP Servers -> + Add に移動して MCP サーバーを追加 します。上記の標準設定を使用します。

または、Warp プロンプトでスラッシュコマンド /add-mcp を使用し、上記の標準設定を貼り付けます:

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

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ワークスペースルート外のファイルへのアクセスを許可します。file:// URL への無制限アクセスも許可します。デフォルトでは、ファイルシステムへのアクセスはワークスペースルートディレクトリ(またはルートが設定されていない場合は cwd)のみに制限され、file:// URL へのナビゲーションはブロックされます。
env PLAYWRIGHT_MCP_ALLOW_UNRESTRICTED_FILE_ACCESS
--blocked-origins ブラウザがリクエストするのをブロックするオリジンのセミコロン区切りリスト。ブロックリストは許可リストより先に評価されます。許可リストなしで使用した場合、ブロックリストに一致しないリクエストは引き続き許可されます。重要: セキュリティ境界としては機能せず、リダイレクトにも影響しません
env PLAYWRIGHT_MCP_BLOCKED_ORIGINS
--block-service-workersService Worker をブロックします
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 エンドポイントへの接続タイムアウト(ミリ秒)。デフォルトは 30000ms です
env PLAYWRIGHT_MCP_CDP_TIMEOUT
--codegen コード生成に使用する言語を指定します。指定可能な値: "typescript", "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一般的なモバイルデバイスをエミュレートします(Chromium の場合は Pixel 10、WebKit の場合は iPhone 17)。モバイルページは通常軽量であるため、トークンを節約できます。--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-errorsHTTPS エラーを無視します
env PLAYWRIGHT_MCP_IGNORE_HTTPS_ERRORS
--init-page <path...>Playwright の page オブジェクトで評価する TypeScript ファイルへのパス
env 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
--output-mode スナップショット、コンソールメッセージ、ネットワークログをファイルに保存するか、標準出力に出力するか。"file" または "stdout" を指定できます。デフォルトは "stdout" です。
env PLAYWRIGHT_MCP_OUTPUT_MODE
--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-sessionPlaywright MCP セッションを出力ディレクトリに保存するかどうか。
env PLAYWRIGHT_MCP_SAVE_SESSION
--secrets dotenv 形式のシークレットを含むファイルへのパス
env PLAYWRIGHT_MCP_SECRETS_FILE
--shared-browser-context接続されているすべての HTTP クライアント間で同じブラウザコンテキストを再利用します。
env PLAYWRIGHT_MCP_SHARED_BROWSER_CONTEXT
--snapshot-mode レスポンスのスナップショットを取得する際のモードを指定します。"full" または "none" を指定できます。デフォルトは "full" です。
env PLAYWRIGHT_MCP_SNAPSHOT_MODE
--storage-state 分離セッション用のストレージ状態ファイルへのパス。
env PLAYWRIGHT_MCP_STORAGE_STATE
--test-id-attribute テスト ID に使用する属性を指定します。デフォルトは "data-testid" です
env PLAYWRIGHT_MCP_TEST_ID_ATTRIBUTE
--timeout-action アクションのタイムアウトをミリ秒単位で指定します。デフォルトは 5000ms です
env PLAYWRIGHT_MCP_TIMEOUT_ACTION
--timeout-navigation ナビゲーションのタイムアウトをミリ秒単位で指定します。デフォルトは 60000ms です
env PLAYWRIGHT_MCP_TIMEOUT_NAVIGATION
--user-agent ユーザーエージェント文字列を指定します
env 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] 永続プロファイルは一度に 1 つのブラウザインスタンスでのみ使用できるため、同じワークスペースを共有する同時 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 引数を使用してストレージ状態ファイルから開始します。これにより、ファイルから Cookie とローカルストレージが分離されたブラウザコンテキストに読み込まれます。

ページ状態については、次を使用できます。

  • --init-page で、Playwright の page オブジェクトで評価される TypeScript ファイルを指定します。これにより、任意のコードを実行してページをセットアップできます。
// 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;
  };

  /**
   * 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';
  };

  /**
   * 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' | 'none';
}

スタンドアロン MCP サーバー

ディスプレイがないシステムや IDE のワーカープロセスからヘッド付きブラウザを実行する場合は、 DISPLAY が設定された環境から MCP サーバーを実行し、--port フラグを渡して HTTP トランスポートを有効にします。

npx @playwright/mcp@latest --port 8931

次に、MCP クライアント設定で、url を HTTP エンドポイントに設定します。

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

セキュリティ

Playwright MCP はセキュリティ境界ではありません。デプロイメントの保護に関するガイダンスについては、MCP セキュリティのベストプラクティスを参照してください。

Docker

注: 現在、Docker 実装はヘッドレス 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
    • タイトル: クリック
    • 説明: Webページ上でクリックを実行します
    • パラメータ:
      • 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
    • タイトル: マウスドラッグ
    • 説明: 2つの要素間でドラッグアンドドロップを実行します
    • パラメータ:
      • startElement (string, オプション): 要素とのインタラクション許可を得るために使用される、人間が読めるソース要素の説明
      • startTarget (string): ページスナップショットからの正確な対象要素参照、または一意の要素セレクタ
      • endElement (string, オプション): 要素とのインタラクション許可を得るために使用される、人間が読めるターゲット要素の説明
      • endTarget (string): ページスナップショットからの正確な対象要素参照、または一意の要素セレクタ
    • 読み取り専用: false
  • browser_drop
    • タイトル: 要素にファイルまたはデータをドロップ
    • 説明: ページ外からドラッグされたかのように、ファイルまたはMIMEタイプ付きデータを要素にドロップします。"paths"または"data"の少なくとも1つを指定する必要があります。
    • パラメータ:
      • 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): () => { /* code / } または要素が提供される場合は (element) => { / code */ }
      • filename (string, オプション): 結果を保存するファイル名。指定しない場合、結果はテキストとして返されます。
    • 読み取り専用: false
  • browser_file_upload
    • タイトル: ファイルをアップロード
    • 説明: 1つまたは複数のファイルをアップロードします
    • パラメータ:
      • 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): browser_network_requestsで表示される、1から始まるリクエストのインデックス。
      • 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
    • タイトル: キーを押す
    • 説明: キーボードのキーを押します
    • パラメータ:
      • key (string): 押すキーの名前、または生成する文字(例: ArrowLefta
    • 読み取り専用: false
  • browser_resize
    • タイトル: ブラウザウィンドウのサイズ変更
    • 説明: ブラウザウィンドウのサイズを変更します
    • パラメータ:
      • width (number): ブラウザウィンドウの幅
      • height (number): ブラウザウィンドウの高さ
    • 読み取り専用: false
  • browser_run_code_unsafe
    • タイトル: Playwrightコードを実行(安全でない)
    • 説明: Playwrightコードスニペットを実行します。安全でない:Playwrightサーバープロセスで任意のJavaScriptを実行し、RCEと同等です。
    • パラメータ:
      • code (string, オプション): 実行するPlaywrightコードを含むJavaScript関数。単一の引数pageで呼び出され、任意のページインタラクションに使用できます。例: async (page) => { await page.getByRole('button', { name: 'Submit' }).click(); return await page.title(); }
      • filename (string, オプション): 指定されたファイルからコードを読み込みます。codeとfilenameの両方が指定された場合、codeは無視されます。
    • 読み取り専用: false
  • browser_select_option
    • タイトル: オプションを選択
    • 説明: ドロップダウンでオプションを選択します
    • パラメータ:
      • element (string, オプション): 要素とのインタラクション許可を得るために使用される、人間が読める要素の説明
      • target (string): ページスナップショットからの正確な対象要素参照、または一意の要素セレクタ
      • values (array): ドロップダウンで選択する値の配列。単一の値または複数の値を指定できます。
    • 読み取り専用: false
  • browser_snapshot
    • タイトル: ページスナップショット
    • 説明: 現在のページのアクセシビリティスナップショットを取得します。これはスクリーンショットよりも優れています
    • パラメータ:
      • target (string, オプション): ページスナップショットからの正確な対象要素参照、または一意の要素セレクタ
      • filename (string, オプション): スナップショットをレスポンスで返す代わりにMarkdownファイルに保存します。
      • depth (number, オプション): スナップショットツリーの深さを制限します
      • boxes (boolean, オプション): 各要素のバウンディングボックスを [box=x,y,width,height] としてスナップショットに含めます。座標はビューポート基準で、CSSピクセル単位です (Element.getBoundingClientRect)
    • 読み取り専用: true
  • browser_take_screenshot
    • タイトル: スクリーンショットを撮る
    • 説明: 現在のページのスクリーンショットを撮ります。スクリーンショットに基づいてアクションを実行することはできません。アクションにはbrowser_snapshotを使用してください。
    • パラメータ:
      • element (string, オプション): 要素とのインタラクション許可を得るために使用される、人間が読める要素の説明
      • target (string, オプション): ページスナップショットからの正確な対象要素参照、または一意の要素セレクタ
      • type (string): スクリーンショットの画像フォーマット。デフォルトはpng。
      • filename (string, オプション): スクリーンショットを保存するファイル名。指定しない場合のデフォルトは page-{timestamp}.{png|jpeg} です。出力ディレクトリ内に収めるために、相対ファイル名を推奨します。
      • fullPage (boolean, オプション): trueの場合、現在表示されているビューポートではなく、スクロール可能なページ全体のスクリーンショットを撮ります。要素のスクリーンショットとは併用できません。
      • scale (string): 画像解像度のスケール。"css"はCSSピクセル単位のスクリーンショットを生成します(小さく、デバイス間で一貫性があります)。"device"はデバイスピクセルを使用した高解像度のスクリーンショットを生成します(大きく、デバイスピクセル比を考慮します)。デフォルトはcssです。
    • 読み取り専用: true
  • browser_type
    • タイトル: テキストを入力
    • 説明: 編集可能な要素にテキストを入力します
    • パラメータ:
      • element (string, オプション): 要素とのインタラクション許可を得るために使用される、人間が読める要素の説明
      • target (string): ページスナップショットからの正確な対象要素参照、または一意の要素セレクタ
      • text (string): 要素に入力するテキスト
      • submit (boolean, オプション): 入力したテキストを送信するかどうか(その後Enterを押す)
      • slowly (boolean, オプション): 一度に1文字ずつ入力するかどうか。ページのキーハンドラをトリガーするのに便利です。デフォルトでは、テキスト全体が一度に入力されます。
    • 読み取り専用: false
  • browser_wait_for
    • タイトル: 待機
    • 説明: テキストの表示/非表示、または指定時間の経過を待ちます
    • パラメータ:
      • time (数値, オプション): 待機する秒数
      • text (文字列, オプション): 表示を待つテキスト
      • textGone (文字列, オプション): 非表示になるのを待つテキスト
    • 読み取り専用: false
タブ管理
  • browser_tabs
    • タイトル: タブ管理
    • 説明: ブラウザタブの一覧表示、作成、閉じる、選択を行います。
    • パラメータ:
      • action (文字列): 実行する操作
      • index (数値, オプション): タブインデックス。close/selectで使用。closeで省略した場合、現在のタブが閉じられます。
      • url (文字列, オプション): 新しいタブで開くURL。newで使用。
    • 読み取り専用: false
ブラウザインストール
設定 (--caps=config でオプトイン)
  • browser_get_config
    • タイトル: 設定取得
    • 説明: CLIオプション、環境変数、設定ファイルをマージした最終的な解決済み設定を取得します。
    • パラメータ: なし
    • 読み取り専用: true
ネットワーク (--caps=network でオプトイン)
  • browser_network_state_set
    • タイトル: ネットワーク状態設定
    • 説明: ブラウザのネットワーク状態をオンラインまたはオフラインに設定します。オフライン時、すべてのネットワークリクエストは失敗します。
    • パラメータ:
      • state (文字列): オフラインモードをシミュレートするには "offline"、ネットワーク接続を復元するには "online" に設定します
    • 読み取り専用: false
  • browser_route
    • タイトル: ネットワークリクエストのモック
    • 説明: URLパターンに一致するネットワークリクエストをモックするルートを設定します
    • パラメータ:
      • pattern (文字列): 一致させるURLパターン (例: "/api/users", "/*.{png,jpg}")
      • status (数値, オプション): 返すHTTPステータスコード (デフォルト: 200)
      • body (文字列, オプション): レスポンスボディ (テキストまたはJSON文字列)
      • contentType (文字列, オプション): Content-Type ヘッダー (例: "application/json", "text/html")
      • headers (配列, オプション): "Name: Value" 形式で追加するヘッダー
      • removeHeaders (文字列, オプション): リクエストから削除するヘッダー名のカンマ区切りリスト
    • 読み取り専用: false
  • browser_route_list
    • タイトル: ネットワークルート一覧
    • 説明: アクティブなネットワークルートをすべて一覧表示します
    • パラメータ: なし
    • 読み取り専用: true
  • browser_unroute
    • タイトル: ネットワークルート削除
    • 説明: パターンに一致するネットワークルートを削除します (パターン未指定の場合はすべてのルートを削除)
    • パラメータ:
      • pattern (文字列, オプション): 削除するURLパターン (省略するとすべてのルートを削除)
    • 読み取り専用: false
ストレージ (--caps=storage でオプトイン)
  • browser_cookie_clear
    • タイトル: Cookieクリア
    • 説明: すべてのCookieをクリアします
    • パラメータ: なし
    • 読み取り専用: false
  • browser_cookie_delete
    • タイトル: Cookie削除
    • 説明: 特定のCookieを削除します
    • パラメータ:
      • name (文字列): 削除するCookie名
    • 読み取り専用: false
  • browser_cookie_get
    • タイトル: Cookie取得
    • 説明: 名前で特定のCookieを取得します
    • パラメータ:
      • name (文字列): 取得するCookie名
    • 読み取り専用: true
  • browser_cookie_list
    • タイトル: Cookie一覧
    • 説明: すべてのCookieを一覧表示します (オプションでドメイン/パスでフィルタ)
    • パラメータ:
      • domain (文字列, オプション): ドメインでCookieをフィルタ
      • path (文字列, オプション): パスでCookieをフィルタ
    • 読み取り専用: true
  • browser_cookie_set
    • タイトル: Cookie設定
    • 説明: オプションフラグ (domain, path, expires, httpOnly, secure, sameSite) 付きでCookieを設定します
    • パラメータ:
      • name (文字列): Cookie名
      • value (文字列): Cookie値
      • domain (文字列, オプション): Cookieドメイン
      • path (文字列, オプション): Cookieパス
      • expires (数値, オプション): UnixタイムスタンプでのCookie有効期限
      • httpOnly (真偽値, オプション): HTTP only Cookieかどうか
      • secure (真偽値, オプション): Secure Cookieかどうか
      • sameSite (文字列, オプション): Cookie SameSite属性
    • 読み取り専用: false
  • browser_localstorage_clear
    • タイトル: localStorageクリア
    • 説明: すべてのlocalStorageをクリアします
    • パラメータ: なし
    • 読み取り専用: false
  • browser_localstorage_delete
    • タイトル: localStorageアイテム削除
    • 説明: localStorageアイテムを削除します
    • パラメータ:
      • key (文字列): 削除するキー
    • 読み取り専用: false
  • browser_localstorage_get
    • タイトル: localStorageアイテム取得
    • 説明: キーでlocalStorageアイテムを取得します
    • パラメータ:
      • key (文字列): 取得するキー
    • 読み取り専用: true
  • browser_localstorage_list
    • タイトル: localStorage一覧
    • 説明: すべてのlocalStorageのキーと値のペアを一覧表示します
    • パラメータ: なし
    • 読み取り専用: true
  • browser_localstorage_set
    • タイトル: localStorageアイテム設定
    • 説明: localStorageアイテムを設定します
    • パラメータ:
      • key (文字列): 設定するキー
      • value (文字列): 設定する値
    • 読み取り専用: false
  • browser_sessionstorage_clear
    • タイトル: sessionStorageクリア
    • 説明: すべてのsessionStorageをクリアします
    • パラメータ: なし
    • 読み取り専用: false
  • browser_sessionstorage_delete
    • タイトル: sessionStorageアイテム削除
    • 説明: sessionStorageアイテムを削除します
    • パラメータ:
      • key (文字列): 削除するキー
    • 読み取り専用: false
  • browser_sessionstorage_get
    • タイトル: sessionStorageアイテム取得
    • 説明: キーでsessionStorageアイテムを取得します
    • パラメータ:
      • key (文字列): 取得するキー
    • 読み取り専用: true
  • browser_sessionstorage_list
    • タイトル: sessionStorage一覧
    • 説明: すべてのsessionStorageのキーと値のペアを一覧表示します
    • パラメータ: なし
    • 読み取り専用: true
  • browser_sessionstorage_set
    • タイトル: sessionStorageアイテム設定
    • 説明: sessionStorageアイテムを設定します
    • パラメータ:
      • key (文字列): 設定するキー
      • value (文字列): 設定する値
    • 読み取り専用: false
  • browser_set_storage_state
    • タイトル: ストレージ状態の復元
    • 説明: ファイルからストレージ状態 (Cookie, ローカルストレージ) を復元します。復元前に既存のCookieとローカルストレージをクリアします。
    • パラメータ:
      • filename (文字列): 復元元のストレージ状態ファイルへのパス
    • 読み取り専用: false
  • browser_storage_state
    • タイトル: ストレージ状態の保存
    • 説明: 後で再利用するためにストレージ状態 (Cookie, ローカルストレージ) をファイルに保存します
    • パラメータ:
      • filename (文字列, オプション): ストレージ状態を保存するファイル名。指定しない場合、デフォルトは storage-state-{timestamp}.json です。
    • 読み取り専用: true
DevTools (--caps=devtools でオプトイン)
  • browser_annotate
    • タイトル: 現在のページに注釈
    • 説明: 現在のページのPlaywrightダッシュボードを注釈モードで開き、ユーザーが注釈を描画するのを待ちます。注釈付きスクリーンショット、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 (文字列, オプション): ページに対するアクションタイトルの配置場所。デフォルトは top-right。
      • cursor (文字列, オプション): ポインターアクションのカーソル装飾。"pointer" (デフォルト) は前のアクションポイントから次のアクションポイントへのマウスポインターの動きをアニメーション表示します。"none" はカーソル装飾を無効にします。
    • 読み取り専用: true
座標ベース (--caps=vision でオプトイン)
  • browser_mouse_click_xy
    • タイトル: クリック
    • 説明: 指定された位置でマウスボタンをクリックします
    • パラメータ:
      • x (number): X座標
      • y (number): Y座標
      • button (string, オプション): クリックするボタン。デフォルトは左
      • clickCount (number, オプション): クリック回数。デフォルトは1
      • delay (number, オプション): マウスダウンからマウスアップまでの待機時間(ミリ秒)。デフォルトは0
    • 読み取り専用: false
  • browser_mouse_down
    • タイトル: マウスダウン
    • 説明: マウスボタンを押し下げます
    • パラメータ:
      • button (string, オプション): 押し下げるボタン。デフォルトは左
    • 読み取り専用: false
  • browser_mouse_drag_xy
    • タイトル: マウスドラッグ
    • 説明: 左マウスボタンを指定された位置までドラッグします
    • パラメータ:
      • startX (number): 開始X座標
      • startY (number): 開始Y座標
      • endX (number): 終了X座標
      • endY (number): 終了Y座標
    • 読み取り専用: false
  • browser_mouse_move_xy
    • タイトル: マウス移動
    • 説明: マウスを指定された位置に移動します
    • パラメータ:
      • x (number): X座標
      • y (number): Y座標
    • 読み取り専用: false
  • browser_mouse_up
    • タイトル: マウスアップ
    • 説明: マウスボタンを離します
    • パラメータ:
      • button (string, オプション): 離すボタン。デフォルトは左
    • 読み取り専用: false
  • browser_mouse_wheel
    • タイトル: マウスホイールスクロール
    • 説明: マウスホイールをスクロールします
    • パラメータ:
      • deltaX (number): X方向の変化量
      • deltaY (number): Y方向の変化量
    • 読み取り専用: false
PDF生成 (--caps=pdf でオプトイン)
  • browser_pdf_save
    • タイトル: PDFとして保存
    • 説明: ページをPDFとして保存します
    • パラメータ:
      • filename (string, オプション): PDFを保存するファイル名。指定がない場合のデフォルトは page-{timestamp}.pdf です。出力ディレクトリ内に収めるために、相対ファイル名を推奨します。
    • 読み取り専用: true
テストアサーション (--caps=testing でオプトイン)
  • browser_generate_locator
    • タイトル: 要素のロケーターを作成
    • 説明: テストで使用するために、指定された要素のロケーターを生成します
    • パラメータ:
      • element (string, オプション): 要素とのインタラクション許可を得るために使用される、人間が読める要素の説明
      • target (string): ページスナップショットからの正確なターゲット要素参照、または一意の要素セレクター
    • 読み取り専用: true
  • browser_verify_element_visible
    • タイトル: 要素の可視性を検証
    • 説明: 要素がページ上で可視であることを検証します
    • パラメータ:
      • role (string): 要素のROLE。スナップショットでは次のように表示されます: - {ROLE} "Accessible Name":
      • accessibleName (string): 要素のACCESSIBLE_NAME。スナップショットでは次のように表示されます: - role "{ACCESSIBLE_NAME}"
    • 読み取り専用: false
  • browser_verify_list_visible
    • タイトル: リストの可視性を検証
    • 説明: リストがページ上で可視であることを検証します
    • パラメータ:
      • element (string): 人間が読めるリストの説明
      • target (string): リストを指す正確なターゲット要素参照
      • items (array): 検証するアイテム
    • 読み取り専用: false
  • browser_verify_text_visible
    • タイトル: テキストの可視性を検証
    • 説明: テキストがページ上で可視であることを検証します。可能であれば browser_verify_element_visible を優先してください。
    • パラメータ:
      • text (string): 検証するTEXT。スナップショットでは次のように表示されます: - role "Accessible Name": {TEXT} または - text: {TEXT}
    • 読み取り専用: false
  • browser_verify_value
    • タイトル: 値の検証
    • 説明: 要素の値を検証します
    • パラメータ:
      • type (string): 要素のタイプ
      • element (string): 人間が読める要素の説明
      • target (string): ページスナップショットからの正確なターゲット要素参照
      • value (string): 検証する値。チェックボックスの場合は "true" または "false" を使用します。
    • 読み取り専用: false