mcpField
C
claude-in-chrome-troubleshooting

claude-in-chrome-troubleshooting

github.com/sickn33エージェントワークフロー48.9k72 回インストール今日更新
リポジトリ

claude-in-chrome-troubleshooting について

Claude Code と Claude.app を使う macOS ユーザー向けに、Claude in Chrome MCP の接続失敗や不安定さを調べるスキルです。両アプリのネイティブメッセージングホストとソケット位置の競合を中心に、確認と修復方法を案内します。

主な機能

  1. 01ネイティブホストのプロセスと設定の確認
  2. 02ブラウザブリッジのソケット位置診断
  3. 03Chrome プロファイルとセッション競合の確認
  4. 04接続再起動と設定修復の案内

活用シーン

  1. 01MCP ツールでブラウザー拡張機能の未接続が表示される場合
  2. 02ブラウザー自動化が断続的に失敗またはタイムアウトする場合
  3. 03アップデートやアプリ切り替え後の接続問題の調査

MCP 対応

Claude in Chrome MCP の接続障害について、ネイティブメッセージングホスト、ブラウザーブリッジ、起動時の接続動作を含む診断と修復方法を案内します。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/sickn33/agentic-awesome-skills --skill claude-in-chrome-troubleshooting

インストール後、Claude Code で/claude-in-chrome-troubleshootingを入力して読み込まれたか確認します。

詳細

Claude in Chrome MCP のトラブルシューティング

Claude in Chrome MCP ツールが接続できない場合や、動作が不安定な場合にこのスキルを使用してください。

使用する場合

  • mcp__claude-in-chrome__* ツールが「Browser extension is not connected」というエラーで失敗する
  • ブラウザーの自動化が不安定に動作する、またはタイムアウトする
  • Claude Code または Claude.app の更新後
  • Claude Code CLI と Claude.app(Cowork)を切り替える場合
  • ネイティブホストのプロセスは実行中なのに、MCP ツールが失敗する

使用しない場合

  • Linux または Windows のユーザー — このスキルでは macOS 固有のパスとツール(~/Library/Application Support/、osascript)を扱います
  • Claude 拡張機能に関係のない、一般的な Chrome の自動化の問題
  • Claude.app のデスクトップに関する問題(ブラウザー関連ではないもの)
  • ネットワーク接続の問題
  • Chrome 拡張機能のインストールに関する問題(Chrome ウェブストアのサポートを利用してください)

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(単一ファイル)
競合する理由
  1. どちらも Chrome にネイティブメッセージング設定を登録します。

    • com.anthropic.claude_browser_extension.json → Claude.app のヘルパー
    • com.anthropic.claude_code_browser_extension.json → Claude Code のラッパー
  2. Chrome 拡張機能が、名前を指定してネイティブホストを要求します

  3. 誤った設定が有効な場合、誤ったバイナリが実行されます

  4. 誤ったバイナリが、MCP クライアントの想定とは異なる形式や場所にソケットを作成します

  5. その結果、すべてが実行中に見えても「Browser extension is not connected」と表示されます

解決策:Claude.app のネイティブホストを無効にする

ブラウザー自動化に Claude Code CLI を使用する場合(Cowork ではない場合):

# Disable the Claude.app native messaging config
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

# Ensure the Claude Code config exists and points to the wrapper
cat ~/Library/Application\ Support/Google/Chrome/NativeMessagingHosts/com.anthropic.claude_code_browser_extension.json

ブラウザー自動化に Cowork(Claude.app)を使用する場合:

# Disable the Claude Code native messaging config
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
        # Currently using Claude.app, switch to Claude Code
        mv "$CLAUDE_APP" "$CLAUDE_APP.disabled"
        [[ -f "$CLAUDE_CODE.disabled" ]] && mv "$CLAUDE_CODE.disabled" "$CLAUDE_CODE"
        echo "Switched to Claude Code CLI"
        echo "Restart Chrome and Claude Code to apply"
    elif [[ -f "$CLAUDE_CODE" && ! -f "$CLAUDE_CODE.disabled" ]]; then
        # Currently using Claude Code, switch to Claude.app
        mv "$CLAUDE_CODE" "$CLAUDE_CODE.disabled"
        [[ -f "$CLAUDE_APP.disabled" ]] && mv "$CLAUDE_APP.disabled" "$CLAUDE_APP"
        echo "Switched to Claude.app (Cowork)"
        echo "Restart Chrome to apply"
    else
        echo "Current state unclear. Check configs:"
        ls -la "$CONFIG_DIR"/com.anthropic*.json* 2>/dev/null
    fi
}

使用方法:chrome-mcp-toggle を実行し、その後 Chrome(CLI に切り替える場合は Claude Code も)を再起動します。

競合を確認できた場合に限り、切り替えをローカルで使用する任意の回避策として扱ってください。移動する前に登録情報をバックアップし、移動先との衝突があれば中止してください。以下のスクリプトは例示用であり、これらの確認は実装されていません。Chrome を閉じると無関係な作業が中断される可能性があります。再起動する前に、タブやフォームの状態を保全し、許可を得てください。診断時のプロセス引数や設定には、非公開のパスや値が含まれる場合があります。共有する前に伏せてください。明示的な依頼がない限り、この切り替えスクリプトをシェルの起動時に実行される設定へ追加しないでください。

簡易診断

# 1. Which native host binary is running?
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. Where is the socket?
# For Claude Code (single file in TMPDIR):
ls -la "$(getconf DARWIN_USER_TEMP_DIR)/claude-mcp-browser-bridge-$USER" 2>&1

# For Claude.app (directory with PID files):
ls -la /tmp/claude-mcp-browser-bridge-$USER/ 2>&1

# 3. What's the native host connected to?
lsof -U 2>&1 | grep claude-mcp-browser-bridge

# 4. Which configs are active?
ls ~/Library/Application\ Support/Google/Chrome/NativeMessagingHosts/com.anthropic*.json

重要なポイント

MCP は起動時に接続します。 Claude Code の起動時にブラウザーブリッジの準備ができていないと、そのセッションでは接続に失敗します。通常は、Chrome と拡張機能が正しい設定で実行されていることを確認してから、Claude Code を再起動すれば解決します。

完全リセットの手順(Claude Code CLI)

# 1. Ensure correct config is active
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. Preserve existing wrapper/configuration and use the installed client's supported repair.
# Do not select an executable by directory modification time or overwrite a working wrapper.

# 3. Inspect exact host PID and socket ownership/path first.
# Stop only the confirmed process for the affected session, with approval.
# Remove only its confirmed stale socket after exit; do not recursively delete bridge directories.

# 4. Restart Chrome
osascript -e 'quit app "Google Chrome"' && sleep 2 && open -a "Google Chrome"

# 5. Wait for Chrome, click Claude extension icon

# 6. Verify correct native host is running
ps aux | grep chrome-native-host | grep -v grep
# Should show: ~/.local/share/claude/versions/X.X.X --chrome-native-host

# 7. Verify socket exists
ls -la "$(getconf DARWIN_USER_TEMP_DIR)/claude-mcp-browser-bridge-$USER"

# 8. Restart Claude Code

その他の一般的な原因

Chrome プロファイルが複数ある

Claude 拡張機能を複数の Chrome プロファイルにインストールしている場合、それぞれが独自のネイティブホストとソケットを起動します。これにより混乱が生じることがあります。

解決策: Claude 拡張機能を有効にする Chrome プロファイルは 1 つだけにしてください。

Claude Code のセッションが複数ある

Claude Code のインスタンスを複数実行すると、ソケットの競合が発生することがあります。

解決策: Claude Code のセッションは一度に 1 つだけ実行するか、他のセッションを終了してから /mcp を使用して再接続してください。

ラッパー内のハードコードされたバージョン

~/.claude/chrome/chrome-native-host のラッパーには、アップデート後に古くなるバージョンがハードコードされている場合があります。

診断:

cat ~/.claude/chrome/chrome-native-host
# Bad: exec "/Users/.../.local/share/claude/versions/2.0.76" --chrome-native-host
# Verify the target is the intended installed version; modification time is not version ordering.

修正: サポートされているクライアント修復機能を使ってラッパーを再生成します。バックアップを保持し、変更前に意図した実行ファイルであることを確認してください。

TMPDIR が設定されていない

Claude Code はソケットを見つけるために TMPDIR が設定されている必要があります。

# Check
echo $TMPDIR
# Should show: /var/folders/XX/.../T/

# Fix: Add to ~/.zshrc
export TMPDIR="${TMPDIR:-$(getconf DARWIN_USER_TEMP_DIR)}"

診断の詳細

echo "=== Native Host Binary ==="
ps aux | grep chrome-native-host | grep -v grep

echo -e "\n=== Socket (Claude Code location) ==="
ls -la "$(getconf DARWIN_USER_TEMP_DIR)/claude-mcp-browser-bridge-$USER" 2>&1

echo -e "\n=== Socket (Claude.app location) ==="
ls -la /tmp/claude-mcp-browser-bridge-$USER/ 2>&1

echo -e "\n=== Native Host Open Files ==="
pgrep -f chrome-native-host | xargs -I {} lsof -p {} 2>/dev/null | grep -E "(sock|claude-mcp)"

echo -e "\n=== Active Native Messaging Configs ==="
ls ~/Library/Application\ Support/Google/Chrome/NativeMessagingHosts/com.anthropic*.json 2>/dev/null

echo -e "\n=== Custom Wrapper Contents ==="
cat ~/.claude/chrome/chrome-native-host 2>/dev/null || echo "No custom wrapper"

echo -e "\n=== TMPDIR ==="
echo "TMPDIR=$TMPDIR"
echo "Expected: $(getconf DARWIN_USER_TEMP_DIR)"

ファイル一覧

ファイル用途
~/.claude/chrome/chrome-native-hostClaude Code 用のカスタムラッパースクリプト
/Applications/Claude.app/Contents/Helpers/chrome-native-hostClaude.app(Cowork)のネイティブホスト
~/.local/share/claude/versions/<version>Claude Code バイナリ(--chrome-native-host を付けて実行)
~/Library/Application Support/Google/Chrome/NativeMessagingHosts/com.anthropic.claude_browser_extension.jsonClaude.app ネイティブホストの設定
~/Library/Application Support/Google/Chrome/NativeMessagingHosts/com.anthropic.claude_code_browser_extension.jsonClaude Code ネイティブホストの設定
$TMPDIR/claude-mcp-browser-bridge-$USERソケットファイル(Claude Code)
/tmp/claude-mcp-browser-bridge-$USER/<PID>.sockソケットファイル(Claude.app)

まとめ

  1. 主な問題: Claude.app(Cowork)と Claude Code は、互換性のないソケット形式を使う別々のネイティブホストを使用しています
  2. 修正: 使用していない方のネイティブメッセージング設定を無効にします
  3. 修正後: Chrome と Claude Code の両方を再起動する必要があります(MCP は起動時に接続します)
  4. Chrome プロファイルは1つ: Claude 拡張機能は1つの Chrome プロファイルにのみインストールします
  5. セッションは1つ: Claude Code のインスタンスは1つだけ実行します

@ExaAILabs の @jeffzwang によるオリジナルスキルです。現在の Claude Desktop および Claude Code のバージョンに合わせて機能を強化し、更新しました。

制限事項

  • タスクが上記の説明範囲に明確に該当する場合にのみ、このスキルを使用してください。
  • 出力を、環境固有の検証、テスト、または専門家によるレビューの代わりとして扱わないでください。
  • 必要な入力、権限、安全上の境界、または成功基準が不足している場合は、作業を中断して確認を求めてください。

コメント