Playwright MCP を使ってログイン済み状態でサイトを開く

Cluade Code を Windows にインストールし、Playwright MCP を使ってログイン済み状態の Chrome でサイトを開く方法を調べた。

環境

  • Windows 11

作業内容

1. Node.js を Windows 11 にインストールする

最終的に Node.js が必要になるようだったし、Claude Code のインストールも Node.js が入っていれば話は早いので、まず Node.js をインストールする。

私は Chocolatey を利用しているため、Chocolatey で nvm をインストールする。

https://community.chocolatey.org/packages/nvm

choco install nvm

nvm をインストールしたら一度ターミナルを開き直し、

nvm list available

で利用できるバージョンを確認後

nvm install 22.18.0
nvm use 22.18.0

で Node.js v22.18.0 をインストールした。

2. Claude Code を Windows 11 にインストールする

https://docs.anthropic.com/en/docs/claude-code/setup

Node.js をインストール済みなので、普通に npm install で問題ない。

npm install -g @anthropic-ai/claude-code

あとは適当なディレクトリに行って

claude

の初回実行を行い、認証等を済ませる。

3. Playwright MCP の導入

https://github.com/microsoft/playwright-mcp

MCP はグローバルインストール的な設定ではなくてディレクトリごとの設定になっているので、まずプロジェクトディレクトリに遷移する。
単に MCP を試したいだけなら適当にディレクトリ切って入っておけばいい。別に package.json を置いたりする必要はない。

ディレクトリに入ったら Playwright MCP を追加する。

claude mcp add playwright npx @playwright/mcp@latest

これでホームディレクトリの .claude.json に設定が書き込まれる。
Windows の場合は C:\\Users\\<USERNAME>\\.claude.json である。<USERNAME> 部分は自分のユーザー名になる。

起動設定を追加するので、該当ファイルを開き、“playwright” で検索する。

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

という記述が見つかるので、下記のように書き換える。

"mcpServers": {
    "playwright": {
        "type": "stdio",
        "command": "npx",
        "args": [
            "@playwright/mcp@latest",
            "--config",
            "C:\\Users\\<USERNAME>\\claude-playwright-config.json"
        ],
        "env": {}
    }
},

次に C:\\Users\\<USERNAME>\\claude-playwright-config.json を作成し、以下の内容を書き込む。

{
  "browser": {
    "browserName": "chromium",
    "isolated": false,
    "userDataDir": "C:\\Users\\<USERNAME>\\AppData\\Local\\PlaywrightChrome",
    "launchOptions": {
      "channel": "chrome",
      "headless": false,
      "args": [
        "--no-first-run",
        "--no-default-browser-check"
      ]
    },
    "contextOptions": {
      "locale": "ja-JP",
      "timezoneId": "Asia/Tokyo"
    }
  }
}

この設定ファイルでは、主に以下のことを実現している。

  • Windows にインストール済みの Chrome を使うようにする
  • 常に同じプロファイルで開く
  • 開いている画面を目視可能にする("headless": false

ここまでできたら、claude のセッションを開いている場合は一度閉じて開き直す。
そして claude mcp list というコマンドを打つ。

Checking MCP server health...

playwright: npx @playwright/mcp@latest --config C:\Users\<USERNAME>\claude-playwright-config.json - ✓ Connected

というように ✓ Connected と表示されていたら問題ない。

もし Connected ではなかった場合、ファイルのパス間違いなどをチェックする。

4. Chrome で Zenn を開いてログインする

ここまで設定できたら、claude に「Chrome で Zenn を開いて」と指示すると Chrome で Zenn を開いてくれると思う。
新規プロファイルであるため Zenn にはログインしていない。そのため、そのまま手動操作して Zenn にログインする。

プロファイルを固定しているため、一度ログインすれば、次回以降は claude のセッションが新しくなってもログイン状態で Zenn を開けるようになる。

感想

最初から Zenn にログイン状態で開きたかったので既存のプロファイルを指定しようとしたが、ブラウザを開くことはできるもののページ遷移などが行えず失敗した。
指定したパスが悪かったのかもしれないが、Claude 自身は「設定が競合している」みたいなことを言っていた。

またログイン状態でサイトを開きたかったのは「今見ている画面の情報を読み取って整形してほしい」という動機からなのだが、「ページの中身を html で読み取って」と言ってもトークンが溢れて失敗することが多かった。
それなら私が手動でページを html で保存した上で Claude に読み取らせて整形させるほうがいいかもしれないと思った。

以上