150
110

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Playwright MCP を使ってAIにブラウザ操作をさせてみる(GitHub Copilot / Cline 環境構築手順付)

Last updated at Posted at 2025-04-08

はじめに

Microsoft が 2025/3/29 に Playwright MCP を発表してから盛り上がっていますね。

「MCP」は「Model Context Protocol」の略です。生成AIにとってのUSBポートのようなもので、様々なデータリソースやツールとつなぐことが出来るものだと考えてください。

Playwright はブラウザを操作する E2E テストツールです。E2Eテストコードを人が書いて(またはブラウザ操作を記録して)プログラムがブラウザを操作するツールというものでした。Playwright MCP が登場したことで、 生成AIがブラウザを操作することが出来るようになります。

Cline で Playwright MCP の環境準備

※環境構築手順は Cline と GitHub Copilot 両方書きました。お好きな方を使ってください。

Playwright MCP と Cline を繋げていきます。

VSCode で Cline をインストールします。モデルは OpenAI や Azure OpenAI などを選択してください。APIエンドポイントとAPIキーで設定が完了するので手頃で簡単です。
image.png

次に、Cline の MCP Servers で Playwright MCP をインストールします。
image.png

Cline の指示に沿って環境構築を行います。

npm install -g @executeautomation/playwright-mcp-server

(追記:上記はコミュニティ版でした。Microsoft 公式版は以下です。)

npm install -g @playwright/mcp

MCP Servers(三のアイコン) > Installed > Configure MCP Servers に設定します。

image.png

※私の環境は Windows + WSL2 Ubuntu なので以下のように設定しています。

cline_mcp_settings.json
{
  "mcpServers": {
    "playwright": {
      "disabled": false,
      "timeout": 60,
      "command": "wsl",
      "args": [
        "bash",
        "-ic",
        "node /home/t-kurasawa/.nvm/versions/node/v22.14.0/lib/node_modules/@executeautomation/playwright-mcp-server/dist/index.js"
      ],
      "transportType": "stdio"
    }
  }
}

(追記:以下のように記載するとちょっとスッキリ書けます)

"source ~/.nvm/nvm.sh && npx -y @executeautomation/playwright-mcp-server"

GitHub Copilot で Playwright MCP の環境準備

Playwright MCP サーバーを入れてください。

npm install -g @executeautomation/playwright-mcp-server

(追記:上記はコミュニティ版でした。Microsoft 公式版は以下です。)

npm install -g @playwright/mcp

VSCode に GitHub Copilot をいれます。VSCode のバージョンは v1_99 以降にしてください。

image.png

VSCode の Agent モードを有効にします。
chat.agent.enabledを開き、チェックをいれて有効にします。

image.png

settings.json
{
  "mcp": {    
    "inputs": [],
    "servers": {
      "playwright": {
        "command": "wsl",
        "args": [
          "bash",
          "-ic",
          "node /home/t-kurasawa/.nvm/versions/node/v22.14.0/lib/node_modules/@executeautomation/playwright-mcp-server/dist/index.js"
        ]
      }      
    }
  },
  "chat.agent.enabled": true,
}

(追記:以下のように記載するとちょっとスッキリ書けます)

"source ~/.nvm/nvm.sh && npx -y @executeautomation/playwright-mcp-server"

MCP を起動するには Start をクリックします。正しく動けば Running と表示されます。
image.png

環境準備は以上です。

GitHub Copilot をエージェントモードに切り替え

GitHub Copilot をエージェントモードに切り替えます。

右下の AskAgent に変更してください。
image.png

生成AIにブラウザを操作させてみる(GitHub Copilot)

GitHub Copilot に日本語指示をして Playwrihgt MCP 経由でブラウザを操作させてみます。

私:
playwright で、https://finance.yahoo.co.jp/ を開き、今日の主要なニュースを3つ抜粋して。日本語で出力して。

GitHub Copilot:
以下は、Yahoo!ファイナンスの今日の主要なニュースから抜粋した3つのトピックです:

日経平均VIは大幅に低下
株価の大幅上昇により、投資家の警戒感が一時的に和らいでいます。

東京エレクトロンのアナリスト評価
レーティングが強気に変更され、注目を集めています。

ドル・円の為替動向
海外株高を受けて、ドル・円がやや値を戻しています。

これらのニュースは、現在の市場動向や投資家心理を反映しています。

image.png

(出典:2025年04月08日の https://finance.yahoo.co.jp/ より)

生成AIにブラウザを操作させてみる(Cline)

同じことを Cline にやらせてみます。

私:
playwright で、Yahoo Japan Finance を開き、今日の主要なニュースを3つ抜粋して。日本語で出力して。

Cline:

取得したテキストから主要なニュースを3つ抜粋する必要があります。テキストにはいくつかのニュースが含まれているので、重要な情報を選び出して日本語で整理します。

不登校で母の2割離職、月5万の出費増も。不登校認めようの裏で
熊本地震から9年、あなたの防災力は?
日経平均は大幅反落、円高や米株価指数先物の影響
これらのニュースを日本語でまとめました。次に、結果を出力します。

Task Completed

Yahoo Japan Financeから取得した今日の主要なニュースは以下の通りです:

不登校で母の2割離職、月5万の出費増も。不登校認めようの裏で
熊本地震から9年、あなたの防災力は?
日経平均は大幅反落、円高や米株価指数先物の影響

image.png

Playwright MCP が Chromium を立ち上げてブラウザ操作する様子も確認できます。

image.png

(出典:2025年04月09日の https://finance.yahoo.co.jp/ より)

おわりに

Playwright は E2E テストツールでしたが MCP で生成AIとつなげることでブラウザ操作を AI に任せることが出来るようになるわけですね。システム開発の領域から一歩踏み出して、さまざまなユースケースで活用できるようになると思います。

今後もアップデートがあればお伝えします。

150
110
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
150
110

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?