claude-in-chrome-troubleshooting
Chrome向けClaudeのMCP拡張機能における接続問題を診断・修正します。`mcp__claude-in-chrome__*` ツールが失敗する、「Browser extension is not connected」エラーが返される、または動作が不安定な場合に使用してください。
description の原文を見る
Diagnose and fix Claude in Chrome MCP extension connectivity issues. Use when mcp__claude-in-chrome__* tools fail, return "Browser extension is not connected", or behave erratically.
SKILL.md 本文
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 (単一ファイル) |
なぜ競合するのか
-
両方とも Chrome でネイティブメッセージング設定を登録します:
com.anthropic.claude_browser_extension.json→ Claude.app ヘルパーcom.anthropic.claude_code_browser_extension.json→ Claude Code ラッパー
-
Chrome 拡張機能は名前でネイティブホストをリクエストします
-
間違った設定がアクティブな場合、間違ったバイナリが実行されます
-
間違ったバイナリは、MCP クライアントが期待していない形式/場所にソケットを作成します
-
結果: すべてが実行されているように見えても「Browser extension is not connected」
修正: 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 "Switched to Claude Code CLI"
echo "Restart Chrome and Claude Code to apply"
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 "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 も再起動してください)。
クイック診断
# 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 拡張機能がインストールされている場合、各プロファイルは独自のネイティブホストとソケットを生成します。これは混乱を招く可能性があります。
修正: Claude 拡張機能は 1つの Chrome プロファイルでのみ有効にしてください。
複数の 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 "=== 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-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 の現在のバージョン向けに拡張および更新されました。
ライセンス: CC-BY-SA-4.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- trailofbits
- リポジトリ
- trailofbits/skills
- ライセンス
- CC-BY-SA-4.0
- 最終更新
- 不明
Source: https://github.com/trailofbits/skills / ライセンス: CC-BY-SA-4.0
関連スキル
agent-browser
AI エージェント向けのブラウザ自動化 CLI です。ウェブサイトとの対話が必要な場合に使用します。ページ遷移、フォーム入力、ボタンクリック、スクリーンショット取得、データ抽出、ウェブアプリのテスト、ブラウザ操作の自動化など、あらゆるブラウザタスクに対応できます。「ウェブサイトを開く」「フォームに記入する」「ボタンをクリックする」「スクリーンショットを取得する」「ページからデータを抽出する」「このウェブアプリをテストする」「サイトにログインする」「ブラウザ操作を自動化する」といった要求や、プログラマティックなウェブ操作が必要なタスクで起動します。
anyskill
AnySkill — あなたのプライベート・スキルクラウド。GitHubを基盤としたリポジトリからエージェントスキルを管理、同期、動的にロードできます。自然言語でクラウドスキルを検索し、オンデマンドでプロンプトを自動ロード、カスタムスキルのアップロードと共有、スキルバンドルの一括インストールが可能です。OpenClaw、Antigravity、Claude Code、Cursorに対応しています。
engram
AIエージェント向けの永続的なメモリシステムです。バグ修正、意思決定、発見、設定変更の後はmem_saveを使用してください。ユーザーが「覚えている」「記憶している」と言及した場合、または以前のセッションと重複する作業を開始する際はmem_searchを使用します。セッション終了前にmem_session_summaryを使用して、コンテキストを保持してください。
skyvern
AI駆動のブラウザ自動化により、任意のウェブサイトを自動化できます。フォーム入力、データ抽出、ファイルダウンロード、ログイン、複数ステップのワークフロー実行など、ユーザーがウェブサイトと連携する必要があるときに使用します。Skyvernは、LLMとコンピュータビジョンを活用して、未知のサイトも自動操作可能です。Python SDK、TypeScript SDK、REST API、MCPサーバー、またはCLIを通じて統合できます。
pinchbench
PinchBenchベンチマークを実行して、OpenClawエージェントの実世界タスクにおけるパフォーマンスを評価できます。モデルの機能テスト、モデル間の比較、ベンチマーク結果のリーダーボード提出、またはOpenClawのセットアップがカレンダー、メール、リサーチ、コーディング、複数ステップのワークフローにどの程度対応しているかを確認する際に使用します。
openui
OpenUIとOpenUI Langを使用してジェネレーティブUIアプリを構築できます。これらはLLM生成インターフェースのためのトークン効率的なオープン標準です。OpenUI、@openuidev、ジェネレーティブUI、LLMからのストリーミングUI、AI向けコンポーネントライブラリ、またはjson-render/A2UIの置き換えについて述べる際に使用します。スキャフォルディング、defineComponent、システムプロンプト、Renderer、およびOpenUI Lang出力のデバッグに対応しています。