コンテンツにスキップ

Playwright MCP server を使って自然言語でブラウザを操作する

Playwright とは

Playwright は、Microsoft が開発したウェブ UI 自動化テストフレームワークです。主な特徴は、複数のブラウザ(Chromium, Firefox, WebKit)に対応し、E2E テストを自動化できることです。Playwright は、Web アプリのテスト自動化や、スクレイピングなどを効率的に行うために利用されます。

Playwright MCP server とは

LLMによる要約
`microsoft/playwright-mcp` は、Playwright を使用してブラウザの自動化機能を提供する Model Context Protocol (MCP) サーバーです。このサーバーにより、大規模言語モデル (LLM) が、スクリーンショットや視覚ベースのモデルを必要とせず、構造化されたアクセシビリティスナップショットを通じてウェブページと対話できるようになります。

主な特徴は以下の通りです:

- **高速かつ軽量**: Playwright のアクセシビリティツリーを使用し、ピクセルベースの入力ではありません。
- **LLM フレンドリー**: 視覚モデルを必要とせず、純粋に構造化データで動作します。
- **決定論的なツール適用**: スクリーンショットベースのアプローチで一般的な曖昧さを回避します。

利用には Node.js 18 以降と、VS Code、Cursor、Windsurf、Claude Desktop などの MCP クライアントが必要です。
サーバーの起動は、クライアントの設定内で `npx @playwright/mcp@latest` のようなコマンドを指定して行います。
設定オプションとして、使用するブラウザ、ヘッドレスモードの有効/無効、許可/ブロックするオリジン、ユーザーデータディレクトリの指定などがコマンドライン引数や設定ファイルを通じて可能です。
また、永続的なユーザープロファイルを使用するか、セッションごとに分離されたコンテキストで実行するかを選択できます。デフォルトではアクセシビリティスナップショットを使用するモードで動作しますが、`--vision` フラグを指定することでスクリーンショットを使用するビジョンモードでも動作します。

Playwright MCP server を使用することで、自然言語でブラウザの操作が可能になります。これにより、従来のプログラミングスキルがなくても、簡単にブラウザの操作を自動化できます。

利用時の設定

次のような設定を行うことで、RooCode や Cursor などの MCP クライアントから Playwright MCP server を利用できます。クライアントごとにファイルの場所やスキーマが異なる場合があるので、各クライアントのドキュメントを参照してください。

1
2
3
4
5
6
7
8
{
  "mcpServers": {
    "playwright": {
      "command": "npx",
      "args": ["@playwright/mcp@latest"]
    }
  }
}

standalone での起動も可能です。次のコマンドを実行することで、Playwright MCP server を起動できます。

bunx @playwright/mcp@latest --port 8931

standalone で起動した MCP server を MCP クライアントから利用する場合は、次のような設定を行います。

1
2
3
4
5
6
7
{
  "mcpServers": {
    "playwright": {
      "url": "http://localhost:8931/sse"
    }
  }
}

Playwright MCP server の利用

事前設定が完了したら、自然言語で指示を入力することでブラウザを操作できます。 例えば、次のようなプロンプトを入力することで、特定のウェブサイトにアクセスし、特定の要素をクリックできます。

Playwrightを使って、Googleのトップページにアクセスし、「検索」ボタンをクリックしてください。

一通り自然言語でブラウザ操作をした後に、これまでの操作をコードとして出力するようにプロンプトで指示を出すと、それっぽいコードが出力されます。 定型業務や特定の操作を自動化したい場合に、いきなりコードを書くのではなく、自然言語の指示から始めることで負担を軽減できます。

参考リンク