Chrome DevTools MCPで複数Claude Codeセッションを同時に使えない問題
検証環境
- OS: Windows 11
- Claude Code: v1.0.x(2026年1月時点の最新版)
- Chrome: 140.x
- chrome-devtools-mcp: latest(npx経由)
結論
現状の構成では、複数のClaude CodeセッションからChrome DevTools MCPを同時に使うと競合が発生する。
検証した限りでは、デフォルトのユーザーデータディレクトリが全インスタンス間で共有されており、一方のセッションがブラウザを起動していると他方からはアクセスできない。--isolatedオプションを付けてもこの競合は解消しなかった。
現時点での対処法
- 順番に使う - 片方のセッションがChrome操作を終えてから、もう一方で使う
- 手動でスクリーンショット - URLと操作手順を伝え、手動で確認する
- 1セッションに集約 - 複数セッションでブラウザ確認が必要なタスクは、1つのセッションにまとめる
発生したエラー
複数のClaude Codeセッションで同時にChrome DevTools MCPを使おうとすると、以下のエラーが発生した。
The browser is already running for C:\Users\numbe\.cache\chrome-devtools-mcp\chrome-profile.
Use --isolated to run multiple browser instances.
Cause: The browser is already running for C:\Users\numbe\.cache\chrome-devtools-mcp\chrome-profile.
Use a different `userDataDir` or stop the running browser first.
再現手順
- Claude Codeでセッション1を起動
- セッション1で
mcp__chrome-devtools__new_pageを実行(ブラウザ起動) - 別ウィンドウでClaude Codeのセッション2を起動
- セッション2で
mcp__chrome-devtools__new_pageを実行 → 上記エラー発生
調査経緯
1. エラーメッセージに従って--isolatedを試す
「Use --isolated to run multiple browser instances」とエラーメッセージに書いてあったので、MCP設定に--isolated=trueを追加した。
claude mcp remove chrome-devtools -s user
claude mcp add chrome-devtools -s user -- npx -y chrome-devtools-mcp@latest --isolated=true
設定は正常に反映された。
chrome-devtools:
Scope: User config (available in all your projects)
Status: ✓ Connected
Type: stdio
Command: npx
Args: -y chrome-devtools-mcp@latest --isolated=true
しかし、同じエラーが再発した。
2. 問題の構造を特定
調査の結果、以下のことが判明した。
Chrome DevTools MCPの--isolatedオプションの役割:
- 一時的なユーザーデータディレクトリを作成する
- ブラウザ終了時に自動でクリーンアップする
- プロファイル分離のためのオプションであり、同時並行実行を保証するものではない
観察された挙動:
- MCPサーバーは
userスコープで設定される - 2つのセッションから同時にアクセスすると、先に起動した方がブラウザを占有する
--isolatedを付けても、この挙動は変わらなかった
3. 公式ドキュメントとGitHub Issueの調査
GitHub Issue #224にGitHub Copilot(VS Code)で同様の報告があった。
公式READMEによると、--isolatedは以下の用途を想定している。
- エディタ統合でバックグラウンドでブラウザ操作を行う場合
- 通常のブラウジングと分離したい場合
- 研究プロジェクト間でデータ汚染を防ぎたい場合
複数のエージェントセッションから同時に使うユースケースについては、公式ドキュメントでは言及されていなかった。
技術的な詳細
Chrome DevTools MCPのプロファイル管理
公式ドキュメントによると、デフォルトでは以下のディレクトリにプロファイルが保存される。
- Linux/macOS:
$HOME/.cache/chrome-devtools-mcp/chrome-profile-$CHANNEL - Windows:
%HOMEPATH%/.cache/chrome-devtools-mcp/chrome-profile-$CHANNEL
「既定のユーザーデータディレクトリは全インスタンス間で共有される」と公式READMEに明記されている。これが競合の原因と考えられる。
代替案:既存のChromeに接続する方法
Chrome DevTools MCPは--browserUrlオプションで既存のChromeインスタンスに接続できる。
# 1. Chromeを手動で起動(リモートデバッグを有効化)
"C:\Program Files\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9222 --user-data-dir="%TEMP%\chrome-profile-stable"
# 2. MCPから接続
npx chrome-devtools-mcp@latest --browserUrl=http://localhost:9222
注意点:
- Chromeを起動する際は、通常使用しているChromeを閉じておく必要がある
--user-data-dirで非デフォルトのディレクトリを指定する- リモートデバッグポート(9222など)を明示的に指定する
複数のMCPサーバーが同じChromeに接続しようとすると、この方法でも競合が発生する可能性がある。
将来の解決策として考えられること
- Claude Code側の対応 - セッションごとに独立したMCPサーバーインスタンスを起動する仕組み
- Chrome DevTools MCP側の対応 - 複数クライアントからの同時接続をサポートする
- ユーザー側の運用 - セッションごとに異なるポート・異なる
userDataDirのChromeを手動で起動し、それぞれ別のMCP設定で接続する
未検証事項
- Claude CodeのMCPサーバーがプロセスレベルで共有されているかどうかの確認
- project スコープでMCPを設定した場合の挙動
- 異なる
--channel(stable/beta/canary)を指定した場合の挙動