Skip to main content
Glama

Playwright MCP

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

Playwright MCP と Playwright CLI の比較

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

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

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"
      ]
    }
  }
}

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

claude mcp add playwright npx @playwright/mcp@latest

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

MCP サーバーの設定 セクションの手順に従います。

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

以下の内容を cline_mcp_settings.json ファイルに追加します。

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

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 CLI を使用して、対話的に 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 をクリックして設定を確認したり、引数のようなコマンドを追加したりすることもできます。

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

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

または、Factory droid 内で /mcp と入力して、MCP サーバーを管理するための対話型 UI を開きます。

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

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

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

Goose にインストール

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

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

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 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 に追加

MCP サーバーの ドキュメント に従います。例として .kiro/settings/mcp.json に以下を追加します。

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

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

LM Studio に MCP サーバー playwright を追加

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

右サイドバーの 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
    }
  }
}

VSCode または IntelliJ で Qodo Gen チャットパネルを開きます → Connect more tools → + Add new MCP → 上記の標準設定を貼り付けます。

Save をクリックします。

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

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

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 エージェントで使用できるようになります。

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

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

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

Windsurf MCP ドキュメント に従います。上記の標準設定を使用します。

設定

Playwright MCP サーバーは以下の引数をサポートしています。これらは、上記の JSON 設定内で、"args" リストの一部として指定できます。

オプション

説明

--allowed-hosts \<hosts...>

このサーバーが提供を許可されるホストのカンマ区切りのリスト。デフォルトはサーバーがバインドされているホストです。'*' を指定するとホストチェックを無効にします。env PLAYWRIGHT_MCP_ALLOWED_HOSTS

--allowed-origins <origins>

ブラウザがリクエストを許可する TRUSTED(信頼された)オリジンのセミコロン区切りのリスト。デフォルトはすべて許可します。重要: セキュリティ境界として機能せず、リダイレクトに影響しません。env PLAYWRIGHT_MCP_ALLOWED_ORIGINS

--allow-unrestricted-file-access

ワークスペースルート外のファイルへのアクセスを許可します。また file:// URL への無制限アクセスも許可します。デフォルトでは、ファイルシステムへのアクセスはワークスペースルートディレクトリ(ルートが設定されていない場合は cwd)のみに制限され、file:// URL へのナビゲーションはブロックされます。env PLAYWRIGHT_MCP_ALLOW_UNRESTRICTED_FILE_ACCESS

--blocked-origins <origins>

ブラウザがリクエストをブロックするオリジンのセミコロン区切りのリスト。ブロックリストは許可リストの前に評価されます。許可リストなしで使用した場合、ブロックリストに一致しないリクエストは引き続き許可されます。重要: セキュリティ境界として機能せず、リダイレクトに影響しません。env PLAYWRIGHT_MCP_BLOCKED_ORIGINS

--block-service-workers

サービスワーカーをブロックしますenv PLAYWRIGHT_MCP_BLOCK_SERVICE_WORKERS

--browser <browser>

使用するブラウザまたは Chrome チャンネル。指定可能な値: chrome、firefox、webkit、msedge。env PLAYWRIGHT_MCP_BROWSER

--caps <caps>

有効にする追加機能のカンマ区切りのリスト。指定可能な値: vision、pdf、devtools。env PLAYWRIGHT_MCP_CAPS

--cdp-endpoint <endpoint>

接続先の CDP エンドポイント。env PLAYWRIGHT_MCP_CDP_ENDPOINT

--cdp-header \<headers...>

接続リクエストとともに送信する CDP ヘッダー。複数指定可能。env PLAYWRIGHT_MCP_CDP_HEADERS

--cdp-timeout <timeout>

CDP エンドポイントへの接続タイムアウト(ミリ秒)。デフォルトは 30000ms。env PLAYWRIGHT_MCP_CDP_TIMEOUT

--codegen <lang>

コード生成に使用する言語を指定します。指定可能な値: "typescript"、"python"、"java"、"csharp"、"none"。デフォルトは "typescript"。env PLAYWRIGHT_MCP_CODEGEN

--config <path>

設定ファイルへのパス。env PLAYWRIGHT_MCP_CONFIG

--console-level <level>

返すコンソールメッセージのレベル: "error"、"warning"、"info"、"debug"。各レベルにはより重大なレベルのメッセージが含まれます。env PLAYWRIGHT_MCP_CONSOLE_LEVEL

--device <device>

エミュレートするデバイス(例: "iPhone 15")env PLAYWRIGHT_MCP_DEVICE

--mobile

汎用モバイルデバイスをエミュレートします(Chromium では Pixel 10、WebKit では iPhone 17)。モバイルページは通常軽量で、トークンを節約できます。--device との併用はできません。env PLAYWRIGHT_MCP_MOBILE

--executable-path <path>

ブラウザ実行ファイルへのパス。env PLAYWRIGHT_MCP_EXECUTABLE_PATH

--extension

実行中のブラウザインスタンスに接続します(Edge/Chrome のみ)。"Playwright Extension" のインストールが必要です。env PLAYWRIGHT_MCP_EXTENSION

--endpoint <endpoint>

接続先のバウンドブラウザエンドポイント。env PLAYWRIGHT_MCP_ENDPOINT

--grant-permissions \<permissions...>

ブラウザコンテキストに付与する権限のリスト(例: "geolocation"、"clipboard-read"、"clipboard-write")env PLAYWRIGHT_MCP_GRANT_PERMISSIONS

--headless

ブラウザをヘッドレスモードで実行します。デフォルトはヘッド付き。env PLAYWRIGHT_MCP_HEADLESS

--host <host>

サーバーをバインドするホスト。デフォルトは localhost。すべてのインターフェースにバインドするには 0.0.0.0 を使用します。env PLAYWRIGHT_MCP_HOST

--ignore-https-errors

HTTPS エラーを無視しますenv PLAYWRIGHT_MCP_IGNORE_HTTPS_ERRORS

--init-page \<path...>

Playwright のページオブジェクトで評価する TypeScript ファイルへのパスenv PLAYWRIGHT_MCP_INIT_PAGE

--init-script \<path...>

初期化スクリプトとして追加する JavaScript ファイルへのパス。このスクリプトはすべてのページで、そのページのスクリプトよりも前に評価されます。複数回指定可能。env PLAYWRIGHT_MCP_INIT_SCRIPT

--isolated

ブラウザプロファイルをメモリ内に保持し、ディスクに保存しません。env PLAYWRIGHT_MCP_ISOLATED

--image-responses <mode>

画像レスポンスをクライアントに送信するかどうか。"allow" または "omit" を指定可能。デフォルトは "allow"。env PLAYWRIGHT_MCP_IMAGE_RESPONSES

--no-sandbox

通常サンドボックス化されるすべてのプロセスタイプのサンドボックスを無効にします。env PLAYWRIGHT_MCP_NO_SANDBOX

--output-dir <path>

出力ファイル用ディレクトリへのパス。env PLAYWRIGHT_MCP_OUTPUT_DIR

--output-max-size <bytes>

古い出力ファイルを削除するしきい値(バイト単位)env PLAYWRIGHT_MCP_OUTPUT_MAX_SIZE

--port <port>

SSE トランスポート用のリスンポート。env PLAYWRIGHT_MCP_PORT

--proxy-bypass <bypass>

プロキシをバイパスするドメインのカンマ区切りリスト(例: ".com,chromium.org,.domain.com")env PLAYWRIGHT_MCP_PROXY_BYPASS

--proxy-server <proxy>

プロキシサーバーを指定します(例: "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 <path>

dotenv 形式のシークレットを含むファイルへのパスenv 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 <mode>

レスポンス用のスナップショットを撮る際のモードを指定します。"full" または "none" が指定可能。デフォルトは "full"。env PLAYWRIGHT_MCP_SNAPSHOT_MODE

--storage-state <path>

分離セッション用のストレージ状態ファイルへのパス。env PLAYWRIGHT_MCP_STORAGE_STATE

--test-id-attribute <attribute>

テスト ID に使用する属性を指定します。デフォルトは "data-testid"env PLAYWRIGHT_MCP_TEST_ID_ATTRIBUTE

--timeout-action <timeout>

アクションのタイムアウトをミリ秒で指定します。デフォルトは 5000ms。env PLAYWRIGHT_MCP_TIMEOUT_ACTION

--timeout-navigation <timeout>

ナビゲーションのタイムアウトをミリ秒で指定します。デフォルトは 60000ms。env PLAYWRIGHT_MCP_TIMEOUT_NAVIGATION

--timeout-settle <timeout>

各アクション後のトリガーされた処理の落ち着きを待つ時間(ミリ秒)。デフォルトは 500ms。env PLAYWRIGHT_MCP_TIMEOUT_SETTLE

--user-agent <ua string>

ユーザーエージェント文字列を指定しますenv PLAYWRIGHT_MCP_USER_AGENT

--user-data-dir <path>

ユーザーデータディレクトリへのパス。指定しない場合、一時ディレクトリが作成されます。env PLAYWRIGHT_MCP_USER_DATA_DIR

--viewport-size <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 引数を使用してストレージ状態ファイルで開始する。これにより、ファイルからクッキーとローカルストレージが隔離されたブラウザコンテキストにロードされます。

ページ状態については、以下を使用できます:

  • --init-page で、Playwright のページオブジェクト上で評価される 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;

    /**
     * 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 のワーカープロセスからヘッド付きブラウザを実行する場合は、DISPLAY 環境変数が設定された環境で MCP サーバーを実行し、--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 実装はヘッドレス 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

    • タイトル: マウスをドラッグ

    • 説明: 2つの要素間でドラッグアンドドロップを実行します

    • パラメータ:

      • 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

    • タイトル: ファイルをアップロード

    • 説明: 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, オプション): 指定されたファイルからコードを読み込みます。codefilename の両方が指定された場合、code は無視されます。

    • 読み取り専用: false

  • browser_select_option

    • タイトル: オプションの選択

    • 説明: ドロップダウンでオプションを選択します

    • パラメータ:

      • element (string, オプション): 要素との対話許可を得るために使用される人間が読める要素の説明

      • target (string): ページスナップショットからの正確なターゲット要素参照、または一意の要素セレクター

      • values (array): ドロップダウンで選択する値の配列。単一の値でも複数の値でもかまいません。

    • 読み取り専用: false

  • browser_snapshot

    • タイトル: ページスナップショット

    • 説明: 現在のページのアクセシビリティスナップショットを取得します。これはスクリーンショットより優れています。

    • パラメータ:

      • target (string, オプション): ページスナップショットからの正確なターゲット要素参照、または一意の要素セレクター

      • filename (string, オプション): スナップショットをレスポンスで返す代わりにマークダウンファイルに保存します。

      • 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|webp} です。出力ディレクトリ内に収めるため、相対ファイル名を推奨します。

      • fullPage (boolean, オプション): true の場合、現在表示されているビューポートではなく、ページ全体のスクロール可能なスクリーンショットを撮影します。要素のスクリーンショットとは併用できません。

      • scale (string): 画像解像度のスケール。"css" はCSSピクセル単位のスクリーンショットを生成します(小さく、デバイス間で一貫)。"device" はデバイスピクセルを使用した高解像度スクリーンショットを生成します(大きく、デバイスピクセル比を考慮)。デフォルトは css です。

    • 読み取り専用: true

  • browser_type

    • タイトル: テキストの入力

    • 説明: 編集可能な要素にテキストを入力します

    • パラメータ:

      • element (string, オプション): 要素との対話許可を得るために使用される人間が読める要素の説明

      • target (string): ページスナップショットからの正確なターゲット要素参照、または一意の要素セレクター

      • text (string): 要素に入力するテキスト

      • submit (boolean, オプション): 入力したテキストを送信するかどうか(その後 Enter を押す)

      • slowly (boolean, オプション): 一度に一文字ずつ入力するかどうか。ページ内のキーハンドラーをトリガーするのに便利です。デフォルトではテキスト全体が一度に入力されます。

    • 読み取り専用: false

  • browser_wait_for

    • タイトル: 待機

    • 説明: テキストが表示されるか消えるか、指定された時間が経過するのを待ちます

    • パラメータ:

      • time (number, オプション): 待機する時間(秒)

      • text (string, オプション): 待機するテキスト

      • textGone (string, オプション): 消えるのを待機するテキスト

    • 読み取り専用: false

  • browser_tabs

    • タイトル: タブの管理

    • 説明: ブラウザタブの一覧表示、作成、閉じる、または選択を行います。

    • パラメータ:

      • action (string): 実行する操作

      • index (number, オプション): タブインデックス。close/select に使用します。close で省略した場合、現在のタブが閉じられます。

      • url (string, オプション): 新しいタブで移動する URL。new に使用します。

    • 読み取り専用: false

  • browser_get_config

    • タイトル: 設定の取得

    • 説明: CLIオプション、環境変数、設定ファイルをマージした最終的な解決済み設定を取得します。

    • パラメータ: なし

    • 読み取り専用: true

  • browser_network_state_set

    • タイトル: ネットワーク状態の設定

    • 説明: ブラウザのネットワーク状態をオンラインまたはオフラインに設定します。オフラインの場合、すべてのネットワークリクエストは失敗します。

    • パラメータ:

      • state (string): オフラインモードをシミュレートするには "offline"、ネットワーク接続を復元するには "online" に設定します

    • 読み取り専用: false

  • browser_route

    • タイトル: ネットワークリクエストのモック

    • 説明: URLパターンに一致するネットワークリクエストをモックするルートを設定します

    • パラメータ:

      • pattern (string): 一致させるURLパターン(例:"/api/users"、"/*.{png,jpg}")

      • status (number, オプション): 返すHTTPステータスコード(デフォルト:200)

      • body (string, オプション): レスポンスボディ(テキストまたはJSON文字列)

      • contentType (string, オプション): Content-Type ヘッダー(例:"application/json"、"text/html")

      • headers (array, オプション): "名前: 値" 形式で追加するヘッダー

      • removeHeaders (string, オプション): リクエストから削除するヘッダー名のカンマ区切りリスト

    • 読み取り専用: false

  • browser_route_list

    • タイトル: ネットワークルートの一覧表示

    • 説明: アクティブなすべてのネットワークルートを一覧表示します

    • パラメータ: なし

    • 読み取り専用: true

  • browser_unroute

    • タイトル: ネットワークルートの削除

    • 説明: パターンに一致するネットワークルートを削除します(パターンを指定しない場合はすべてのルートを削除)

    • パラメータ:

      • pattern (string, オプション): 削除するURLパターン(省略するとすべてのルートを削除)

    • 読み取り専用: false

  • browser_cookie_clear

    • タイトル: クッキーのクリア

    • 説明: すべてのクッキーをクリアします

    • パラメータ: なし

    • 読み取り専用: false

  • browser_cookie_delete

    • タイトル: クッキーの削除

    • 説明: 特定のクッキーを削除します

    • パラメータ:

      • name (string): 削除するクッキー名

    • 読み取り専用: false

  • browser_cookie_get

    • タイトル: クッキーの取得

    • 説明: 名前で特定のクッキーを取得します

    • パラメータ:

      • name (string): 取得するクッキー名

    • 読み取り専用: true

  • browser_cookie_list

    • タイトル: クッキーの一覧表示

    • 説明: すべてのクッキーを一覧表示します(ドメイン/パスでフィルタリング可能)

    • パラメータ:

      • domain (string, オプション): ドメインでクッキーをフィルタリング

      • path (string, オプション): パスでクッキーをフィルタリング

    • 読み取り専用: true

  • browser_cookie_set

    • タイトル: クッキーの設定

    • 説明: オプションフラグ(domain, path, expires, httpOnly, secure, sameSite)付きでクッキーを設定します

    • パラメータ:

      • name (string): クッキー名

      • value (string): クッキーの値

      • domain (string, オプション): クッキーのドメイン

      • path (string, オプション): クッキーのパス

      • expires (number, オプション): Unixタイムスタンプとしてのクッキーの有効期限

      • httpOnly (boolean, オプション): クッキーがHTTPのみかどうか

      • secure (boolean, オプション): クッキーがセキュアかどうか

      • sameSite (string, オプション): クッキーのSameSite属性

    • 読み取り専用: false

  • browser_localstorage_clear

    • タイトル: localStorageのクリア

    • 説明: すべてのlocalStorageをクリアします

    • パラメータ: なし

    • 読み取り専用: false

  • browser_localstorage_delete

    • タイトル: localStorage項目の削除

    • 説明: localStorage項目を削除します

    • パラメータ:

      • key (string): 削除するキー

    • 読み取り専用: false

  • browser_localstorage_get

    • タイトル: localStorage項目の取得

    • 説明: キーでlocalStorage項目を取得します

    • パラメータ:

      • key (string): 取得するキー

    • 読み取り専用: true

  • browser_localstorage_list

    • タイトル: localStorageの一覧表示

    • 説明: すべてのlocalStorageのキーと値のペアを一覧表示します

    • パラメータ: なし

    • 読み取り専用: true

  • browser_localstorage_set

    • タイトル: localStorage項目の設定

    • 説明: localStorage項目を設定します

    • パラメータ:

      • key (string): 設定するキー

      • value (string): 設定する値

    • 読み取り専用: false

  • browser_sessionstorage_clear

    • タイトル: sessionStorageのクリア

    • 説明: すべてのsessionStorageをクリアします

    • パラメータ: なし

    • 読み取り専用: false

  • browser_sessionstorage_delete

    • タイトル: sessionStorage項目の削除

    • 説明: sessionStorage項目を削除します

    • パラメータ:

      • key (string): 削除するキー

    • 読み取り専用: false

  • browser_sessionstorage_get

    • タイトル: sessionStorage項目の取得

    • 説明: キーでsessionStorage項目を取得します

    • パラメータ:

      • key (string): 取得するキー

    • 読み取り専用: true

  • browser_sessionstorage_list

    • タイトル: sessionStorageの一覧表示

    • 説明: すべてのsessionStorageのキーと値のペアを一覧表示します

    • パラメータ: なし

    • 読み取り専用: true

  • browser_sessionstorage_set

    • タイトル: sessionStorage項目の設定

    • 説明: sessionStorage項目を設定します

    • パラメータ:

      • key (string): 設定するキー

      • value (string): 設定する値

    • 読み取り専用: false

  • browser_sessionstorage_set

    • タイトル: sessionStorageのアイテムを設定

    • 説明: sessionStorageのアイテムを設定します

    • パラメータ:

      • key (string): 設定するキー

      • value (string): 設定する値

    • 読み取り専用: false

  • browser_set_storage_state

    • タイトル: ストレージ状態を復元

    • 説明: ファイルからストレージ状態(クッキー、ローカルストレージ)を復元します。復元前に既存のクッキーとローカルストレージをクリアします。

    • パラメータ:

      • filename (string): 復元元のストレージ状態ファイルへのパス

    • 読み取り専用: false

  • browser_storage_state

    • タイトル: ストレージ状態を保存

    • 説明: ストレージ状態(クッキー、ローカルストレージ)をファイルに保存し、後で再利用できるようにします

    • パラメータ:

      • filename (string, オプション): ストレージ状態を保存するファイル名。指定しない場合のデフォルトはstorage-state-{timestamp}.jsonです。

    • 読み取り専用: true

  • browser_annotate

    • タイトル: 現在のページに注釈を付ける

    • 説明: 現在のページでPlaywrightダッシュボードを注釈モードで開き、ユーザーが注釈を描画するのを待ちます。注釈付きスクリーンショット、ARIAスナップショット、および注釈のリストを返します。

    • パラメータ: なし

    • 読み取り専用: true

  • browser_hide_highlight

    • タイトル: 要素のハイライトを非表示

    • 説明: 要素に以前追加されたハイライトオーバーレイを削除します。

    • パラメータ:

      • element (string, オプション): ハイライト追加時に使用された人間が読める要素の説明。browser_highlightに渡された値と一致する必要があります。

      • target (string, オプション): ページスナップショットからの正確なターゲット要素参照、または一意の要素セレクタ

    • 読み取り専用: true

  • browser_highlight

    • タイトル: 要素をハイライト

    • 説明: ページ上の要素の周りに永続的なハイライトオーバーレイを表示します。

    • パラメータ:

      • element (string, オプション): 要素とのインタラクション許可を得るために使用される人間が読める要素の説明

      • target (string): ページスナップショットからの正確なターゲット要素参照、または一意の要素セレクタ

      • style (string, オプション): ハイライトオーバーレイに適用される追加のインラインCSS。例: "outline: 2px dashed red"。

    • 読み取り専用: true

  • browser_resume

    • タイトル: 一時停止したスクリプト実行を再開

    • 説明: 一時停止後のスクリプト実行を再開します。stepがtrueに設定されている場合、次のアクションの前に実行が再度一時停止します。

    • パラメータ:

      • step (boolean, オプション): trueの場合、次のアクションの前に実行が再度一時停止し、ステップバイステップのデバッグが可能になります。

      • location (string, オプション): 特定の:で実行を一時停止します。例: "example.spec.ts:42"。

    • 読み取り専用: false

  • browser_start_tracing

    • タイトル: トレースを開始

    • 説明: トレースの記録を開始します

    • パラメータ: なし

    • 読み取り専用: true

  • browser_start_video

    • タイトル: ビデオを開始

    • 説明: ビデオの記録を開始します

    • パラメータ:

      • filename (string, オプション): ビデオを保存するファイル名。

      • size (object, オプション): ビデオサイズ

    • 読み取り専用: true

  • browser_stop_tracing

    • タイトル: トレースを停止

    • 説明: トレースの記録を停止します

    • パラメータ: なし

    • 読み取り専用: true

  • browser_stop_video

    • タイトル: ビデオを停止

    • 説明: ビデオの記録を停止します

    • パラメータ: なし

    • 読み取り専用: true

  • browser_video_chapter

    • タイトル: ビデオチャプター

    • 説明: ビデオ録画にチャプターマーカーを追加します。ぼかし背景の全画面チャプターカードを表示します。

    • パラメータ:

      • title (string): チャプタータイトル

      • description (string, オプション): チャプターの説明

      • duration (number, オプション): チャプターカードを表示する時間(ミリ秒)

    • 読み取り専用: true

  • browser_video_hide_actions

    • タイトル: アクションオーバーレイを非表示

    • 説明: ページ上で実行されたアクションへの注釈付けを停止します。

    • パラメータ: なし

    • 読み取り専用: true

  • browser_video_show_actions

    • タイトル: アクションオーバーレイを表示

    • 説明: ページ上で実行される後続のアクションに、アクション名を示すコールアウトとターゲット要素のハイライトを付けて注釈します。ビデオ録画やスクリーンキャスト中に便利です。

    • パラメータ:

      • duration (number, オプション): 各アクション注釈の画面表示時間(ミリ秒)。デフォルトは500。

      • position (string, オプション): ページに対するアクションタイトルの配置場所。デフォルトは右上。

      • cursor (string, オプション): ポインターアクションのカーソル装飾。"pointer"(デフォルト)はマウスポインターを前のアクションポイントから次のアクションポイントへアニメーション表示します。"none"はカーソル装飾を無効にします。

    • 読み取り専用: true

  • 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

  • browser_pdf_save

    • タイトル: PDFとして保存

    • 説明: ページをPDFとして保存します

    • パラメータ:

      • filename (string, オプション): PDFを保存するファイル名。指定しない場合のデフォルトはpage-{timestamp}.pdfです。出力ディレクトリ内に収めるため、相対ファイル名を推奨します。

    • 読み取り専用: true

  • 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

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