CommunityCodierung & Entwicklunggithub.com

trailofbits/chrome-mcp-troubleshooting

Diagnostizieren und beheben Sie Verbindungsprobleme der Claude-in-Chrome-MCP-Erweiterung. Verwenden Sie dies, wenn mcp__claude-in-chrome__* Tools fehlschlagen, die Meldung „Browser extension is not connected“ zurückgeben oder sich unberechenbar verhalten.

Was ist chrome-mcp-troubleshooting?

Dieses Skill ist eine umfassende Fehlerbehebungsanleitung für Entwickler, die Claude in Chrome MCP Tools verwenden. Es adressiert das häufigste Problem: den Konflikt zwischen dem nativen Host von Claude.app (Cowork) und dem von Claude Code CLI. Diese beiden Komponenten verwenden inkompatible Socket-Formate und -Speicherorte, was zu dem Fehler „Browser extension is not connected“ führt, selbst wenn alles zu laufen scheint. Das Skill bietet detaillierte Anweisungen zur Identifizierung des aktiven nativen Hosts, zur Deaktivierung des nicht benötigten Hosts über die Konfigurationsdateien in Chrome NativeMessagingHosts sowie ein Umschalt-Skript für die Shell. Es beschreibt auch eine vollständige Reset-Prozedur, die das Aktualisieren des Wrapper-Skripts, das Beenden aller nativen Hosts und das Neustarten von Chrome und Claude Code umfasst. Zusätzlich werden andere häufige Ursachen wie mehrere Chrome-Profile, mehrere Claude Code Sitzungen, hartcodierte Versionen im Wrapper und eine nicht gesetzte TMPDIR-Variable behandelt. Das Skill ist für macOS-Anwender gedacht, da es macOS-spezifische Pfade und Tools wie `osascript` und `~/Library/Application Support/` verwendet.

Funktioniert mit✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/trailofbits/skills/tree/main/plugins/claude-in-chrome-troubleshooting/skills/chrome-mcp-troubleshooting

Installed? Explore more Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Claude in Chrome MCP Fehlerbehebung

Verwenden Sie dieses Skill, wenn die Claude in Chrome MCP-Tools keine Verbindung herstellen können oder unzuverlässig arbeiten.

Wann verwenden

  • mcp__claude-in-chrome__* Tools schlagen mit "Browser extension is not connected" fehl
  • Browser-Automatisierung arbeitet unberechenbar oder bricht mit Timeout ab
  • Nach dem Aktualisieren von Claude Code oder Claude.app
  • Beim Wechsel zwischen Claude Code CLI und Claude.app (Cowork)
  • Der native Host-Prozess läuft, aber MCP-Tools schlagen immer noch fehl

Wann NICHT verwenden

  • Linux- oder Windows-Benutzer - Dieses Skill behandelt macOS-spezifische Pfade und Tools (~/Library/Application Support/, osascript)
  • Allgemeine Chrome-Automatisierungsprobleme, die nicht mit der Claude-Erweiterung zusammenhängen
  • Probleme mit der Claude.app-Desktop-App (nicht browserbezogen)
  • Netzwerkverbindungsprobleme
  • Probleme bei der Installation der Chrome-Erweiterung (Support des Chrome Web Store nutzen)

Der Claude.app vs. Claude Code Konflikt (Hauptproblem)

Hintergrund: Als Claude.app Cowork-Unterstützung hinzufügte (Browser-Automatisierung von der Desktop-App aus), wurde ein konkurrierender nativer Messaging-Host eingeführt, der mit dem Claude Code CLI in Konflikt gerät.

Zwei native Hosts, zwei Socket-Formate

KomponenteNativer Host-BinarySocket-Speicherort
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 (einzelne Datei)

Warum sie sich widersprechen

  1. Beide registrieren native Messaging-Konfigurationen in Chrome:

    • com.anthropic.claude_browser_extension.json → Claude.app-Helfer
    • com.anthropic.claude_code_browser_extension.json → Claude Code-Wrapper
  2. Die Chrome-Erweiterung fordert einen nativen Host namentlich an

  3. Wenn die falsche Konfiguration aktiv ist, wird das falsche Binary ausgeführt

  4. Das falsche Binary erstellt Sockets in einem Format/Speicherort, den der MCP-Client nicht erwartet

  5. Ergebnis: "Browser extension is not connected", obwohl alles zu laufen scheint

Die Lösung: Deaktivieren Sie den nativen Host von Claude.app

Wenn Sie Claude Code CLI für die Browser-Automatisierung verwenden (nicht Cowork):

# Deaktivieren Sie die native Messaging-Konfiguration von 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

# Stellen Sie sicher, dass die Claude Code-Konfiguration existiert und auf den Wrapper zeigt
cat ~/Library/Application\ Support/Google/Chrome/NativeMessagingHosts/com.anthropic.claude_code_browser_extension.json

Wenn Sie Cowork (Claude.app) für die Browser-Automatisierung verwenden:

# Deaktivieren Sie die native Messaging-Konfiguration von 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

Sie können nicht beide gleichzeitig verwenden. Wählen Sie eines aus und deaktivieren Sie das andere.

Umschalt-Skript

Fügen Sie dies zu ~/.zshrc hinzu oder führen Sie es direkt aus:

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
        # Verwendet derzeit Claude.app, wechsle zu Claude Code
        mv "$CLAUDE_APP" "$CLAUDE_APP.disabled"
        [[ -f "$CLAUDE_CODE.disabled" ]] && mv "$CLAUDE_CODE.disabled" "$CLAUDE_CODE"
        echo "Wechsel zu Claude Code CLI"
        echo "Starten Sie Chrome und Claude Code neu, um die Änderung zu übernehmen"
    elif [[ -f "$CLAUDE_CODE" && ! -f "$CLAUDE_CODE.disabled" ]]; then
        # Verwendet derzeit Claude Code, wechsle zu Claude.app
        mv "$CLAUDE_CODE" "$CLAUDE_CODE.disabled"
        [[ -f "$CLAUDE_APP.disabled" ]] && mv "$CLAUDE_APP.disabled" "$CLAUDE_APP"
        echo "Wechsel zu Claude.app (Cowork)"
        echo "Starten Sie Chrome neu, um die Änderung zu übernehmen"
    else
        echo "Aktueller Zustand unklar. Überprüfen Sie die Konfigurationen:"
        ls -la "$CONFIG_DIR"/com.anthropic*.json* 2>/dev/null
    fi
}

Verwendung: chrome-mcp-toggle ausführen, dann Chrome neu starten (und Claude Code, wenn zum CLI gewechselt wird).

Schnelldiagnose

# 1. Welcher native Host-Binary läuft?
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. Wo befindet sich der Socket?
# Für Claude Code (einzelne Datei in TMPDIR):
ls -la "$(getconf DARWIN_USER_TEMP_DIR)/claude-mcp-browser-bridge-$USER" 2>&1

# Für Claude.app (Verzeichnis mit PID-Dateien):
ls -la /tmp/claude-mcp-browser-bridge-$USER/ 2>&1

# 3. Mit welchem nativen Host ist verbunden?
lsof -U 2>&1 | grep claude-mcp-browser-bridge

# 4. Welche Konfigurationen sind aktiv?
ls ~/Library/Application\ Support/Google/Chrome/NativeMessagingHosts/com.anthropic*.json

Kritische Erkenntnis

MCP verbindet sich beim Start. Wenn die Browser-Brücke beim Start von Claude Code noch nicht bereit war, schlägt die Verbindung für die gesamte Sitzung fehl. Die Lösung ist normalerweise: Stellen Sie sicher, dass Chrome + Erweiterung mit der richtigen Konfiguration läuft, und starten Sie DANN Claude Code neu.

Vollständige Reset-Prozedur (Claude Code CLI)

# 1. Stellen Sie sicher, dass die richtige Konfiguration aktiv ist
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. Aktualisieren Sie den Wrapper, um die neueste Claude Code-Version zu verwenden
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. Beenden Sie den vorhandenen nativen Host und bereinigen Sie Sockets
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. Starten Sie Chrome neu
osascript -e 'quit app "Google Chrome"' && sleep 2 && open -a "Google Chrome"

# 5. Warten Sie auf Chrome, klicken Sie auf das Claude-Erweiterungssymbol

# 6. Überprüfen Sie, ob der richtige native Host läuft
ps aux | grep chrome-native-host | grep -v grep
# Sollte anzeigen: ~/.local/share/claude/versions/X.X.X --chrome-native-host

# 7. Überprüfen Sie, ob der Socket existiert
ls -la "$(getconf DARWIN_USER_TEMP_DIR)/claude-mcp-browser-bridge-$USER"

# 8. Starten Sie Claude Code neu

Andere häufige Ursachen

Mehrere Chrome-Profile

Wenn Sie die Claude-Erweiterung in mehreren Chrome-Profilen installiert haben, erzeugt jedes seinen eigenen nativen Host und Socket. Dies kann zu Verwirrung führen.

Lösung: Aktivieren Sie die Claude-Erweiterung nur in EINEM Chrome-Profil.

Mehrere Claude Code-Sitzungen

Das gleichzeitige Ausführen mehrerer Claude Code-Instanzen kann Socket-Konflikte verursachen.

Lösung: Führen Sie immer nur eine Claude Code-Sitzung gleichzeitig aus, oder verwenden Sie /mcp, um die Verbindung nach dem Schließen anderer Sitzungen wiederherzustellen.

Hartcodierte Version im Wrapper

Der Wrapper unter ~/.claude/chrome/chrome-native-host kann eine hartcodierte Version enthalten, die nach Updates veraltet.

Diagnose:

cat ~/.claude/chrome/chrome-native-host
# Schlecht: exec "/Users/.../.local/share/claude/versions/2.0.76" --chrome-native-host
# Gut: Verwendet $(ls -t ...) um die neueste zu finden

Lösung: Verwenden Sie den dynamischen Version-Wrapper, der in der vollständigen Reset-Prozedur oben gezeigt wird.

TMPDIR nicht gesetzt

Claude Code erwartet, dass TMPDIR gesetzt ist, um den Socket zu finden.

# Überprüfen
echo $TMPDIR
# Sollte anzeigen: /var/folders/XX/.../T/

# Lösung: Fügen Sie zu ~/.zshrc hinzu
export TMPDIR="${TMPDIR:-$(getconf DARWIN_USER_TEMP_DIR)}"

Tiefgehende Diagnose

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

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

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

echo -e "\n=== Geöffnete Dateien des nativen Hosts ==="
pgrep -f chrome-native-host | xargs -I {} lsof -p {} 2>/dev/null | grep -E "(sock|claude-mcp)"

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

echo -e "\n=== Inhalt des benutzerdefinierten Wrappers ==="
cat ~/.claude/chrome/chrome-native-host 2>/dev/null || echo "Kein benutzerdefinierter Wrapper"

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

Dateireferenz

DateiZweck
~/.claude/chrome/chrome-native-hostBenutzerdefiniertes Wrapper-Skript für Claude Code
/Applications/Claude.app/Contents/Helpers/chrome-native-hostNativer Host von Claude.app (Cowork)
~/.local/share/claude/versions/<version>Claude Code-Binary (ausgeführt mit --chrome-native-host)
~/Library/Application Support/Google/Chrome/NativeMessagingHosts/com.anthropic.claude_browser_extension.jsonKonfiguration für den nativen Host von Claude.app
~/Library/Application Support/Google/Chrome/NativeMessagingHosts/com.anthropic.claude_code_browser_extension.jsonKonfiguration für den nativen Host von Claude Code
$TMPDIR/claude-mcp-browser-bridge-$USERSocket-Datei (Claude Code)
/tmp/claude-mcp-browser-bridge-$USER/<PID>.sockSocket-Dateien (Claude.app)

Zusammenfassung

  1. Hauptproblem: Claude.app (Cowork) und Claude Code verwenden unterschiedliche native Hosts mit inkompatiblen Socket-Formaten
  2. Lösung: Deaktivieren Sie die native Messaging-Konfiguration für das Tool, das Sie NICHT verwenden
  3. Nach jeder Lösung: Sowohl Chrome als auch Claude Code müssen neu gestartet werden (MCP verbindet sich beim Start)
  4. Ein Profil: Installieren Sie die Claude-Erweiterung nur in einem Chrome-Profil
  5. Eine Sitzung: Führen Sie immer nur eine Claude Code-Instanz aus

Original-Skill von @jeffzwang von @ExaAILabs. Verbessert und aktualisiert für die aktuellen Versionen von Claude Desktop und Claude Code.

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

trailofbits/address-sanitizer

AddressSanitizer detects memory errors during fuzzing. Use when fuzzing C/C++ code to find buffer overflows and use-after-free bugs.

trailofbits/aflpp

AFL++ is a fork of AFL with better fuzzing performance and advanced features. Use for multi-core fuzzing of C/C++ projects.

trailofbits/agentic-actions-auditor

Audits GitHub Actions workflows for security vulnerabilities in AI agent integrations including Claude Code Action, Gemini CLI, OpenAI Codex, and GitHub AI Inference. Detects attack vectors where attacker-controlled input reaches AI agents running in CI/CD pipelines, including env var intermediary patterns, direct expression injection, dangerous sandbox configurations, and wildcard user allowlists. Use when reviewing workflow files that invoke AI coding agents, auditing CI/CD pipeline security for prompt injection risks, or evaluating agentic action configurations.

trailofbits/algorand-vulnerability-scanner

Scans Algorand smart contracts for 11 common vulnerabilities including rekeying attacks, unchecked transaction fees, missing field validations, and access control issues. Use when auditing Algorand projects (TEAL/PyTeal).

trailofbits/ask-questions-if-underspecified

Clarify requirements before implementing. Use when serious doubts arise.

trailofbits/atheris

Atheris is a coverage-guided Python fuzzer based on libFuzzer. Use for fuzzing pure Python code and Python C extensions.

trailofbits/audit-augmentation

Augments Trailmark code graphs with external audit findings from SARIF static analysis results and weAudit annotation files. Maps findings to graph nodes by file and line overlap, creates severity-based subgraphs, and enables cross-referencing findings with pre-analysis data (blast radius, taint, etc.). Use when projecting SARIF results onto a code graph, overlaying weAudit annotations, cross-referencing Semgrep or CodeQL findings with call graph data, or visualizing audit findings in the context of code structure.

trailofbits/audit-context-building

Enables ultra-granular, line-by-line code analysis to build deep architectural context before vulnerability or bug finding.

trailofbits/audit-prep-assistant

Prepares codebases for security review using Trail of Bits' checklist. Helps set review goals, runs static analysis tools, increases test coverage, removes dead code, ensures accessibility, and generates documentation (flowcharts, user stories, inline comments).

trailofbits/burpsuite-project-parser

Searches and explores Burp Suite project files (.burp) from the command line. Use when searching response headers or bodies with regex patterns, extracting security audit findings, dumping proxy history or site map data, or analyzing HTTP traffic captured in a Burp project.

trailofbits/cairo-vulnerability-scanner

Scans Cairo/StarkNet smart contracts for 6 critical vulnerabilities including felt252 arithmetic overflow, L1-L2 messaging issues, address conversion problems, and signature replay. Use when auditing StarkNet projects.

trailofbits/cargo-fuzz

cargo-fuzz is the de facto fuzzing tool for Rust projects using Cargo. Use for fuzzing Rust code with libFuzzer backend.

trailofbits/claude-in-chrome-troubleshooting

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.

trailofbits/code-improver

Runs an autonomous review-and-fix improvement loop over any code target — a skill, plugin, module, or directory — using a reviewer the user names: any installed skill or agent. Keeps a cross-round findings ledger, escalates when fixes stop converging, and guards scope mechanically. Use when asked to 'improve this code until review passes', 'run an improvement loop with <reviewer>', or to iterate review-and-fix with a specific reviewer. For skills prefer the skill-improver entry; for a branch prefer pr-improver.

trailofbits/code-maturity-assessor

Systematic code maturity assessment using Trail of Bits' 9-category framework. Analyzes codebase for arithmetic safety, auditing practices, access controls, complexity, decentralization, documentation, MEV risks, low-level code, and testing. Produces professional scorecard with evidence-based ratings and actionable recommendations.

trailofbits/codeql

Scans a codebase for security vulnerabilities using CodeQL's interprocedural data flow and taint tracking analysis. Triggers on "run codeql", "codeql scan", "codeql analysis", "build codeql database", or "find vulnerabilities with codeql". Supports "run all" (security-and-quality + security-experimental suites) and "important only" (high-precision security findings) scan modes. Also handles creating data extension models and processing CodeQL SARIF output.

trailofbits/constant-time-analysis

Detects timing side-channel vulnerabilities in cryptographic code. Use when implementing or reviewing crypto code, encountering division on secrets, secret-dependent branches, or constant-time programming questions in C, C++, Go, Rust, Swift, Java, Kotlin, C#, PHP, JavaScript, TypeScript, Python, or Ruby.

trailofbits/constant-time-testing

Constant-time testing detects timing side channels in cryptographic code. Use when auditing crypto implementations for timing vulnerabilities.

trailofbits/cosmos-vulnerability-scanner

Scans Cosmos SDK blockchain modules and CosmWasm contracts for consensus-critical vulnerabilities — chain halts, fund loss, state divergence. 25 core + 16 IBC + 10 EVM + 3 CosmWasm patterns. Use when auditing custom x/ modules, reviewing IBC integrations, or assessing pre-launch chain security. Updated for SDK v0.53.x.

trailofbits/coverage-analysis

Coverage analysis measures code exercised during fuzzing. Use when assessing harness effectiveness or identifying fuzzing blockers.

Verwandte Skills