• #Claude Code
  • #MCP
  • #Chrome DevTools
  • #Windows
  • #トラブルシューティング
重要: Claude CodeからChromeを起動する際の注意

Git Bash環境では、&start コマンドを使ってもChromeプロセスがシェルをブロックし、Chromeを閉じるまでClaude Codeが1分以上応答しなくなる

# ❌ NG - Chromeを閉じるまでブロックされる
start "" "C:\Program Files\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9223 ...
"chrome.exe" ... &

解決策: Claude CodeのBashツールで run_in_background: true パラメータを使用する。

# ✅ OK - run_in_background: true で実行すればブロックされない
"C:/Program Files/Google/Chrome/Application/chrome.exe" --remote-debugging-port=9223 --user-data-dir="C:/Users/numbe/AppData/Local/Temp/chrome-claude-profile"

起動後、list_pages などのMCPツールで接続を確認できる。

問題の症状

Windows環境でChrome DevTools MCPサーバーを使用していると、以下のような不安定な動作が発生する:

  • MCPサーバーが起動したりしなかったりする
  • /doctorコマンドで警告が表示される
  • ブラウザ操作ツールが使えないことがある

原因

Windows環境ではnpxコマンドを直接実行できない

Windowsではnpxは実際にはnpx.cmdというバッチファイルとして提供されている。Claude CodeのMCPサーバー設定で"command": "npx"と指定すると、シェルを経由せず直接実行しようとするため失敗することがある。

問題のある設定例

{
  "chrome-devtools": {
    "type": "stdio",
    "command": "npx",
    "args": ["chrome-devtools-mcp@latest"],
    "env": {}
  }
}

/doctorコマンドを実行すると以下の警告が表示される:

[Warning] [chrome-devtools] mcpServers.chrome-devtools: Windows
requires 'cmd /c' wrapper to execute npx

解決方法

方法1: CLIコマンドで設定(⚠️ 非推奨)

# 既存の設定を削除
claude mcp remove chrome-devtools --scope project

# 正しい形式で再追加
claude mcp add chrome-devtools --scope project -- cmd /c npx -y chrome-devtools-mcp@latest --browserUrl http://127.0.0.1:9222
Git Bashでの問題

Git Bash環境では/cがWindowsのCドライブ(C:/)として解釈されてしまう。

# 期待する設定
"args": ["/c", "npx", ...]

# 実際に保存される設定(壊れている)
"args": ["C:/", "npx", ...]

この問題により、MCPサーバーが Failed to connect になる。方法2の直接編集を推奨

方法2: 設定ファイルを直接編集(✅ 推奨)

~/.claude.jsonを直接編集する。

設定ファイルの構造

{
  "projects": {
    "C:\\Users\\username\\project-path": {
      "mcpServers": {
        "chrome-devtools": {
          "type": "stdio",
          "command": "cmd",
          "args": ["/c", "npx", "-y", "chrome-devtools-mcp@latest", "--browserUrl", "http://127.0.0.1:9222"],
          "env": {}
        }
      }
    }
  }
}
注意点
  • プロジェクトパスが複数形式で登録されている場合がある(C:\\Users\\...C:/Users/...
  • 両方のエントリを確認し、使用中のパスの設定を修正する
  • claude mcp get chrome-devtools で現在使用中の設定を確認できる

ポイント

項目説明
"command": "cmd"Windowsのコマンドプロンプトを使用
"/c"コマンド実行後に終了するフラグ
"-y"npxのインストール確認をスキップ
"--browserUrl"Chromeのリモートデバッグポートを指定

Chromeの起動方法

Chrome DevTools MCPを使用するには、Chromeをリモートデバッグモードで起動する必要がある:

start "" "C:\Program Files\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9222 --user-data-dir="%TEMP%\chrome-profile-stable"

オプションの説明

  • --remote-debugging-port=9222: DevToolsプロトコルのポート
  • --user-data-dir: 専用のプロファイルディレクトリ(通常のChromeと分離)

確認方法

設定が正しいか確認するには:

claude mcp list

または

/doctor

警告が消えていれば設定完了。

トラブルシューティング

Failed to connect が表示される

  1. claude mcp get chrome-devtools で現在の設定を確認
  2. args の最初の要素が "/c" ではなく "C:/" になっていないか確認
  3. なっている場合は ~/.claude.json を直接編集して修正

設定を修正しても反映されない

  • Claude Codeを再起動する(設定ファイルの変更は即座に反映される)
  • パスが複数形式で登録されている場合、現在使用中のパスの設定を修正しているか確認

Chromeに接続できない

  1. Chromeがリモートデバッグモードで起動しているか確認
  2. ポート9222が使用中でないか確認:netstat -an | findstr 9222
  3. 既存のChromeプロセスを終了してから再起動

claude mcp listで「No MCP servers configured」と表示される

症状: MCPサーバーを設定済みなのに、claude mcp listで設定なしと表示される。

原因: ~/.claude.jsonに同じプロジェクトが2つのパス形式で登録されている。

{
  "projects": {
    "C:\\Users\\username\\project": { "mcpServers": { /* 設定あり */ } },
    "C:/Users/username/project": { "mcpServers": {} }  // 設定なし
  }
}

Claude Codeが現在認識しているパス形式と、MCPサーバー設定があるパス形式が異なると、設定が見つからない。

解決策:

  1. ~/.claude.jsonを開く
  2. 同じプロジェクトのエントリが複数ないか確認
  3. 両方のパス形式にMCPサーバー設定をコピーする
{
  "projects": {
    "C:\\Users\\username\\project": {
      "mcpServers": {
        "chrome-devtools": {
          "type": "stdio",
          "command": "cmd",
          "args": ["/c", "npx", "-y", "chrome-devtools-mcp@latest", "--browserUrl", "http://127.0.0.1:9223"],
          "env": {}
        }
      }
    },
    "C:/Users/username/project": {
      "mcpServers": {
        "chrome-devtools": {
          "type": "stdio",
          "command": "cmd",
          "args": ["/c", "npx", "-y", "chrome-devtools-mcp@latest", "--browserUrl", "http://127.0.0.1:9223"],
          "env": {}
        }
      }
    }
  }
}
  1. Claude Codeを再起動

ログイン済みサイトを操作したい場合

既存プロファイルは使用不可

Chromeのセキュリティ仕様により、既存のUser Dataディレクトリ(デフォルトプロファイル)ではリモートデバッグを有効にできない。

# ❌ NG - "DevTools remote debugging requires a non-default data directory" エラー
"chrome.exe" --remote-debugging-port=9223
"chrome.exe" --remote-debugging-port=9223 --user-data-dir="C:/Users/.../Chrome/User Data" --profile-directory="Profile 1"

--user-data-dirを省略、または既存のUser Dataディレクトリを指定すると、デバッグポートが開かない。

解決策: 専用プロファイルでログイン

専用プロファイルで一度ログインすれば、以降はログイン状態が維持される。

  1. 専用プロファイルでChromeを起動
# run_in_background: true で実行
"C:/Program Files/Google/Chrome/Application/chrome.exe" --remote-debugging-port=9223 --user-data-dir="C:/Users/numbe/AppData/Local/Temp/chrome-claude-profile"
  1. 必要なサイトに手動でログイン(初回のみ)
  2. 以降は同じプロファイルでログイン済み状態が維持される

まとめ

方式MCP操作ログイン状態
専用プロファイル(デバッグモード)✅ 可能初回ログイン後は維持
既存プロファイル(デバッグモード)❌ 不可-
通常Chrome(デバッグなし)❌ 不可-

関連情報