Claude in Chrome MCP トラブルシューティング は何をしますか?
このスキルは、Claude in Chrome MCP ツールの接続が失敗したり、信頼性が低い場合に使用します。
使用するタイミング
mcp__claude-in-chrome__*ツールが「ブラウザ拡張が接続されていません」というエラーで失敗する場合- ブラウザ自動化が断続的に動作したり、タイムアウトする場合
- Claude Code または Claude.app を更新した後
- Claude Code CLI と Claude.app (Cowork) を切り替える場合
- ネイティブホストプロセスは実行中だが、MCP ツールがまだ失敗する場合
使用してはいけないタイミング
- Linux または Windows ユーザー - このスキルは macOS 固有のパスとツール(
~/Library/Application Support/、osascript)を対象としています - Claude 拡張機能に関係しない一般的な Chrome 自動化の問題
- Claude.app デスクトップの問題(ブラウザ関連以外)
- ネットワーク接続の問題
- Chrome 拡張機能のインストールの問題(Chrome Web Store サポートを利用)
Claude.app と Claude Code の競合(主要な問題)
背景: Claude.app に Cowork サポート(デスクトップアプリからのブラウザ自動化)が追加された際、Claude Code CLI と競合するネイティブメッセージングホストが導入されました。
2つのネイティブホスト、2つのソケット形式
| コンポーネント | ネイティブホストバイナリ | ソケットの場所 |
|---|---|---|
| Claude.app (Cowork) | /Applications/Claude.app/Contents/Helpers/chrome-native-host | /tmp/claude-mcp-browser-bridge-$USER/<PID>.sock |
| Claude Code CLI | ~/.local/share/claude/versions/<version> --chrome-native-host | $TMPDIR/claude-mcp-browser-bridge-$USER (単一ファイル) |
競合の原因
-
両方が Chrome にネイティブメッセージング設定を登録します:
com.anthropic.claude_browser_extension.json→ Claude.app ヘルパーcom.anthropic.claude_code_browser_extension.json→ Claude Code ラッパー
-
Chrome 拡張機能が名前でネイティブホストを要求します
-
間違った設定がアクティブだと、間違ったバイナリが実行されます
-
間違ったバイナリが、MCP クライアントが想定しない形式/場所にソケットを作成します
-
結果:すべてが実行されているように見えても、「ブラウザ拡張が接続されていません」と表示されます
修正方法:Claude.app のネイティブホストを無効にする
ブラウザ自動化に Claude Code CLI を使用する場合(Cowork ではない):
# Claude.app のネイティブメッセージング設定を無効にする
mv ~/Library/Application\ Support/Google/Chrome/NativeMessagingHosts/com.anthropic.claude_browser_extension.json \
~/Library/Application\ Support/Google/Chrome/NativeMessagingHosts/com.anthropic.claude_browser_extension.json.disabled
# Claude Code の設定が存在し、ラッパーを指していることを確認する
cat ~/Library/Application\ Support/Google/Chrome/NativeMessagingHosts/com.anthropic.claude_code_browser_extension.json
ブラウザ自動化に Cowork (Claude.app) を使用する場合:
# Claude Code のネイティブメッセージング設定を無効にする
mv ~/Library/Application\ Support/Google/Chrome/NativeMessagingHosts/com.anthropic.claude_code_browser_extension.json \
~/Library/Application\ Support/Google/Chrome/NativeMessagingHosts/com.anthropic.claude_code_browser_extension.json.disabled
両方を同時に使用することはできません。 いずれかを選択し、もう一方を無効にしてください。
トグルスクリプト
以下を ~/.zshrc に追加するか、直接実行します:
chrome-mcp-toggle() {
local CONFIG_DIR=~/Library/Application\ Support/Google/Chrome/NativeMessagingHosts
local CLAUDE_APP="$CONFIG_DIR/com.anthropic.claude_browser_extension.json"
local CLAUDE_CODE="$CONFIG_DIR/com.anthropic.claude_code_browser_extension.json"
if [[ -f "$CLAUDE_APP" && ! -f "$CLAUDE_APP.disabled" ]]; then
# 現在 Claude.app を使用中、Claude Code に切り替え
mv "$CLAUDE_APP" "$CLAUDE_APP.disabled"
[[ -f "$CLAUDE_CODE.disabled" ]] && mv "$CLAUDE_CODE.disabled" "$CLAUDE_CODE"
echo "Claude Code CLI に切り替えました"
echo "適用するには Chrome と Claude Code を再起動してください"
elif [[ -f "$CLAUDE_CODE" && ! -f "$CLAUDE_CODE.disabled" ]]; then
# 現在 Claude Code を使用中、Claude.app に切り替え
mv "$CLAUDE_CODE" "$CLAUDE_CODE.disabled"
[[ -f "$CLAUDE_APP.disabled" ]] && mv "$CLAUDE_APP.disabled" "$CLAUDE_APP"
echo "Claude.app (Cowork) に切り替えました"
echo "適用するには Chrome を再起動してください"
else
echo "現在の状態が不明です。設定を確認してください:"
ls -la "$CONFIG_DIR"/com.anthropic*.json* 2>/dev/null
fi
}
使用方法:chrome-mcp-toggle を実行後、Chrome(および CLI に切り替える場合は Claude Code)を再起動します。
クイック診断
# 1. どのネイティブホストバイナリが実行中か?
ps aux | grep chrome-native-host | grep -v grep
# Claude.app: /Applications/Claude.app/Contents/Helpers/chrome-native-host
# Claude Code: ~/.local/share/claude/versions/X.X.X --chrome-native-host
# 2. ソケットはどこにあるか?
# Claude Code の場合(TMPDIR 内の単一ファイル):
ls -la "$(getconf DARWIN_USER_TEMP_DIR)/claude-mcp-browser-bridge-$USER" 2>&1
# Claude.app の場合(PID ファイルのあるディレクトリ):
ls -la /tmp/claude-mcp-browser-bridge-$USER/ 2>&1
# 3. ネイティブホストは何に接続されているか?
lsof -U 2>&1 | grep claude-mcp-browser-bridge
# 4. どの設定がアクティブか?
ls ~/Library/Application\ Support/Google/Chrome/NativeMessagingHosts/com.anthropic*.json
重要な洞察
MCP は起動時に接続します。 Claude Code が起動した時点でブラウザブリッジの準備ができていなかった場合、セッション全体で接続は失敗します。修正方法は通常、正しい設定で Chrome + 拡張機能が実行されていることを確認し、その後 Claude Code を再起動することです。
完全リセット手順(Claude Code CLI)
# 1. 正しい設定がアクティブであることを確認する
mv ~/Library/Application\ Support/Google/Chrome/NativeMessagingHosts/com.anthropic.claude_browser_extension.json \
~/Library/Application\ Support/Google/Chrome/NativeMessagingHosts/com.anthropic.claude_browser_extension.json.disabled 2>/dev/null
# 2. 最新の Claude Code バージョンを使用するようにラッパーを更新する
cat > ~/.claude/chrome/chrome-native-host << 'EOF'
#!/bin/bash
LATEST=$(ls -t ~/.local/share/claude/versions/ 2>/dev/null | head -1)
exec "$HOME/.local/share/claude/versions/$LATEST" --chrome-native-host
EOF
chmod +x ~/.claude/chrome/chrome-native-host
# 3. 既存のネイティブホストを強制終了し、ソケットをクリーンアップする
pkill -f chrome-native-host
rm -rf /tmp/claude-mcp-browser-bridge-$USER/
rm -f "$(getconf DARWIN_USER_TEMP_DIR)/claude-mcp-browser-bridge-$USER"
# 4. Chrome を再起動する
osascript -e 'quit app "Google Chrome"' && sleep 2 && open -a "Google Chrome"
# 5. Chrome が起動するのを待ち、Claude 拡張機能のアイコンをクリックする
# 6. 正しいネイティブホストが実行中であることを確認する
ps aux | grep chrome-native-host | grep -v grep
# 表示されるべき内容: ~/.local/share/claude/versions/X.X.X --chrome-native-host
# 7. ソケットが存在することを確認する
ls -la "$(getconf DARWIN_USER_TEMP_DIR)/claude-mcp-browser-bridge-$USER"
# 8. Claude Code を再起動する
その他の一般的な原因
複数の Chrome プロファイル
複数の Chrome プロファイルに Claude 拡張機能がインストールされている場合、それぞれが独自のネイティブホストとソケットを生成します。これにより混乱が生じる可能性があります。
修正方法: 1つの Chrome プロファイルでのみ Claude 拡張機能を有効にしてください。
複数の Claude Code セッション
複数の Claude Code インスタンスを実行すると、ソケットの競合が発生する可能性があります。
修正方法: 一度に1つの Claude Code セッションのみを実行するか、他のセッションを閉じた後に /mcp を使用して再接続してください。
ラッパー内のハードコードされたバージョン
~/.claude/chrome/chrome-native-host のラッパーにハードコードされたバージョンがあると、アップデート後に古くなってしまう可能性があります。
診断方法:
cat ~/.claude/chrome/chrome-native-host
# 悪い例: exec "/Users/.../.local/share/claude/versions/2.0.76" --chrome-native-host
# 良い例: $(ls -t ...) を使用して最新バージョンを見つける
修正方法: 上記の完全リセット手順で示した動的バージョンラッパーを使用してください。
TMPDIR が設定されていない
Claude Code はソケットを見つけるために TMPDIR が設定されていることを期待します。
# 確認する
echo $TMPDIR
# 表示されるべき内容: /var/folders/XX/.../T/
# 修正方法:~/.zshrc に追加する
export TMPDIR="${TMPDIR:-$(getconf DARWIN_USER_TEMP_DIR)}"
詳細診断
echo "=== ネイティブホストバイナリ ==="
ps aux | grep chrome-native-host | grep -v grep
echo -e "\n=== ソケット(Claude Code の場所) ==="
ls -la "$(getconf DARWIN_USER_TEMP_DIR)/claude-mcp-browser-bridge-$USER" 2>&1
echo -e "\n=== ソケット(Claude.app の場所) ==="
ls -la /tmp/claude-mcp-browser-bridge-$USER/ 2>&1
echo -e "\n=== ネイティブホストのオープンファイル ==="
pgrep -f chrome-native-host | xargs -I {} lsof -p {} 2>/dev/null | grep -E "(sock|claude-mcp)"
echo -e "\n=== アクティブなネイティブメッセージング設定 ==="
ls ~/Library/Application\ Support/Google/Chrome/NativeMessagingHosts/com.anthropic*.json 2>/dev/null
echo -e "\n=== カスタムラッパーの内容 ==="
cat ~/.claude/chrome/chrome-native-host 2>/dev/null || echo "カスタムラッパーはありません"
echo -e "\n=== TMPDIR ==="
echo "TMPDIR=$TMPDIR"
echo "期待値: $(getconf DARWIN_USER_TEMP_DIR)"
ファイル参照
| ファイル | 目的 |
|---|---|
~/.claude/chrome/chrome-native-host | Claude Code 用のカスタムラッパースクリプト |
/Applications/Claude.app/Contents/Helpers/chrome-native-host | Claude.app (Cowork) のネイティブホスト |
~/.local/share/claude/versions/<version> | Claude Code バイナリ(--chrome-native-host 付きで実行) |
~/Library/Application Support/Google/Chrome/NativeMessagingHosts/com.anthropic.claude_browser_extension.json | Claude.app ネイティブホストの設定 |
~/Library/Application Support/Google/Chrome/NativeMessagingHosts/com.anthropic.claude_code_browser_extension.json | Claude Code ネイティブホストの設定 |
$TMPDIR/claude-mcp-browser-bridge-$USER | ソケットファイル(Claude Code) |
/tmp/claude-mcp-browser-bridge-$USER/<PID>.sock | ソケットファイル(Claude.app) |
まとめ
- 主要な問題: Claude.app (Cowork) と Claude Code は、互換性のないソケット形式を持つ異なるネイティブホストを使用します
- 修正方法: 使用していない方のネイティブメッセージング設定を無効にします
- 修正後: Chrome と Claude Code の両方を再起動する必要があります(MCP は起動時に接続します)
- 1つのプロファイル: Claude 拡張機能は1つの Chrome プロファイルのみにしてください
- 1つのセッション: 一度に1つの Claude Code インスタンスのみを実行してください
オリジナルスキル:@jeffzwang(@ExaAILabs)作成。Claude Desktop および Claude Code の現在のバージョン向けに拡張・更新済み。