Browser MCP Bridge
Gib Claude Code direkten Zugriff auf deinen Browser. Untersuche Seiten, lies Konsolenfehler, überwache Netzwerkanfragen, erstelle Screenshots und führe JavaScript aus – alles in natürlicher Sprache.
Was das bewirkt
Browser MCP Bridge verbindet deinen Chrome-Browser über das Model Context Protocol (MCP) mit Claude Code. Es besteht aus zwei Teilen:
Einer Chrome-Erweiterung, die Browserdaten erfasst (Seiteninhalt, DOM, Konsole, Netzwerk, Performance, Barrierefreiheit)
Einem MCP-Server, der diese Daten Claude Code über 11 spezialisierte Tools zur Verfügung stellt
Sobald die Verbindung steht, kannst du Claude Code Dinge fragen wie:
"Überprüfe diese Seite auf Probleme mit der Barrierefreiheit"
"Welche Konsolenfehler gibt es auf dieser Seite?"
"Zeige mir die fehlgeschlagenen API-Anfragen"
"Analysiere die Performance dieser Seite"
"Führe
document.querySelectorAll('a')auf der aktuellen Seite aus"
Related MCP server: Browser Agent MCP
Schnellstart
In unter 5 Minuten einsatzbereit:
1. Server installieren
git clone https://github.com/anthropics/browser-mcp-bridge.git
cd browser-mcp-bridge
npm run install-server2. Browser-Erweiterung installieren
Öffne
chrome://extensions/(oderedge://extensions/)Aktiviere den Entwicklermodus (Schalter oben rechts)
Klicke auf Entpackte Erweiterung laden
Wähle das Verzeichnis
extension/aus diesem Repository
Du solltest nun das "Browser MCP Bridge"-Symbol in deiner Symbolleiste sehen.
3. Claude Code konfigurieren
claude mcp add --scope user --transport http browser-mcp http://127.0.0.1:6009/mcp4. Server starten und verbinden
npm startKlicke dann auf das Browser MCP Bridge-Erweiterungssymbol und klicke auf Connect. Die Statusanzeige sollte grün werden.
Das war's – Claude Code hat nun Zugriff auf deinen Browser.
Projektstruktur
browser-mcp-bridge/
├── extension/ # Chrome extension
│ ├── manifest.json # Manifest V3 configuration
│ ├── background.js # Service worker (WebSocket, tab management)
│ ├── content.js # Content script (page data extraction)
│ ├── inject.js # Injected script (console/network interception)
│ ├── popup.html/js # Extension popup (connection management)
│ ├── devtools.html/js # DevTools integration entry point
│ ├── panel.html/js # Custom DevTools panel UI
│ └── icons/ # Extension icons
├── server/ # Node.js MCP server
│ ├── server.js # HTTP MCP server + WebSocket server
│ └── package.json # Server dependencies
├── rust-server/ # Rust MCP server (experimental)
│ ├── src/ # Rust source code
│ ├── Cargo.toml # Rust dependencies
│ └── config.toml # Server configuration
├── browser-mcp-rust-server.service # systemd user service unit
├── install-rust-service.sh # Service install/uninstall script
├── start-rust-server.sh # PM2 launch script for Rust server
├── ecosystem.config.cjs # PM2 process manager config
├── ARCHITECTURE.md # System architecture documentation
├── API_REFERENCE.md # Complete MCP tools reference
├── DATA_OPTIMIZATION.md # Data filtering and pagination guide
└── package.json # Root scripts and orchestrationFunktionsweise
┌─────────────────┐ WebSocket ┌──────────────────┐ HTTP/MCP ┌─────────────────┐
│ Chrome Extension │ ◄──────────────── │ MCP Server │ ◄──────────────── │ Claude Code │
│ │ ws://localhost │ (port 6009) │ http://localhost │ (one or more │
│ • content.js │ :6009/ws │ │ :6009/mcp │ instances) │
│ • background.js │ ─────────────────►│ • 11 MCP tools │ ─────────────────►│ │
│ • inject.js │ │ • Resources │ │ │
│ • DevTools │ │ • Data filtering│ │ │
└─────────────────┘ └──────────────────┘ └─────────────────┘Die Erweiterung erfasst Browserdaten über Content-Skripte und Chrome-APIs
Eine WebSocket-Verbindung sendet Daten an den MCP-Server auf Port 6009
Claude Code verbindet sich mit dem Server über HTTP-Transport unter
/mcpMehrere Claude Code-Instanzen können denselben Server nutzen
Verfügbare Tools
Tool | Beschreibung |
| Extrahiert Seitentext, HTML und Metadaten |
| Ruft den strukturierten DOM-Baum ab (filterbar nach CSS-Selektor) |
| Führt JavaScript im Seitenkontext aus |
| Liest Konsolenprotokolle, Fehler und Warnungen |
| Untersucht HTTP-Anfragen und -Antworten |
| Erstellt einen visuellen Schnappschuss des Tabs |
| Ruft Ladezeiten und Core Web Vitals ab |
| Ruft den Barrierefreiheitsbaum ab |
| Listet alle offenen Browser-Tabs auf |
| Verbindet den Chrome DevTools-Debugger mit einem Tab |
| Trennt den Debugger von einem Tab |
Alle Tools unterstützen einen optionalen tabId-Parameter, um einen bestimmten Tab anzusprechen. Siehe API_REFERENCE.md für die vollständige Parameterdokumentation.
Beispiel-Workflows
Konsolenfehler debuggen
Frage Claude Code: "Welche Fehler werden in der Browser-Konsole angezeigt?"
Claude Code verwendet get_console_messages, um Fehler und Warnungen abzurufen, analysiert diese dann und schlägt Korrekturen vor.
Fehlgeschlagene API-Aufrufe analysieren
Frage: "Zeige mir die fehlgeschlagenen Netzwerkanfragen und hilf mir beim Debuggen"
Claude Code verwendet get_network_requests mit Filterung auf fehlgeschlagene Anfragen, um 4xx/5xx-Antworten zu finden, und untersucht dann die Anfrage-/Antwort-Bodies nach Hinweisen.
Barrierefreiheits-Audit
Frage: "Überprüfe diese Seite auf Probleme mit der Barrierefreiheit"
Claude Code ruft get_accessibility_tree und get_page_content auf, um ARIA-Attribute, Überschriftenstruktur, Alt-Texte und semantisches HTML zu analysieren.
Performance-Analyse
Frage: "Wie ist die Performance dieser Seite? Gibt es Probleme?"
Verwendet get_performance_metrics und get_network_requests, um langsame Ressourcen, große Payloads und Probleme mit den Core Web Vitals zu identifizieren.
Visuelle Inspektion
Frage: "Erstelle einen Screenshot der aktuellen Seite"
capture_screenshot gibt einen PNG- oder JPEG-Schnappschuss des sichtbaren Tabs zurück.
Konfiguration
Server-Port
Der Server verwendet standardmäßig Port 6009. Um einen anderen Port zu verwenden:
MCP_SERVER_PORT=8080 npm startWenn du den Port änderst, aktualisiere die WebSocket-URL der Erweiterung im Popup (ws://localhost:8080/ws) und deine Claude Code MCP-Konfiguration.
Erweiterungseinstellungen
Klicke auf das Erweiterungssymbol, um:
Den Verbindungsstatus anzuzeigen
Die WebSocket-Server-URL zu ändern
Die Datenerfassung manuell auszulösen
Nachrichtenstatistiken anzuzeigen
Ausführung mit PM2 (Produktion)
# Start with PM2
npm run pm2:start
# Other PM2 commands
npm run pm2:status # Check status
npm run pm2:logs # View logs
npm run pm2:restart # Restart
npm run pm2:stop # StopSiehe PM2_GUIDE.md für den automatischen Start beim Booten und erweiterte Konfiguration.
Ausführung des Rust-Servers mit systemd (Linux)
Der Rust-Server kann als systemd-Benutzerdienst für den automatischen Start und die Prozessüberwachung verwaltet werden.
Schnelleinrichtung:
# Build and install the service in one step
./install-rust-service.sh
# Or install without rebuilding (if you already have a release binary)
./install-rust-service.sh --no-buildVerwaltung des Dienstes:
systemctl --user status browser-mcp-rust-server # Check status
journalctl --user -u browser-mcp-rust-server -f # Follow logs
systemctl --user restart browser-mcp-rust-server # Restart
systemctl --user stop browser-mcp-rust-server # StopDer Dienst startet automatisch bei der Anmeldung. Um ihn auch ohne Anmeldesitzung zu starten (nützlich für Headless/SSH-Zugriff):
loginctl enable-linger $USERDeinstallation:
./install-rust-service.sh --uninstallManuelle Installation (falls du das Skript nicht verwenden möchtest):
# Build the release binary
cd rust-server && cargo build --release
# Copy the service file
mkdir -p ~/.config/systemd/user
cp browser-mcp-rust-server.service ~/.config/systemd/user/
# If your repo is NOT at ~/dev/browser-mcp-bridge, edit the paths:
# systemctl --user edit browser-mcp-rust-server
# and override ExecStart and WorkingDirectory
# Enable and start
systemctl --user daemon-reload
systemctl --user enable --now browser-mcp-rust-serverKonfiguration:
Der Dienst liest standardmäßig rust-server/config.toml. Um den Port oder andere Einstellungen zu ändern, bearbeite config.toml und starte neu:
systemctl --user restart browser-mcp-rust-serverSetze RUST_LOG für die Ausführlichkeit der Protokolle. Der Standardwert ist info. Überschreibe ihn mit einem Drop-in:
systemctl --user edit browser-mcp-rust-server[Service]
Environment=RUST_LOG=debugMCP-Konfiguration für andere Clients
Für MCP-Clients, die eine JSON-Konfiguration verwenden:
{
"mcpServers": {
"browser-mcp": {
"url": "http://localhost:6009/mcp"
}
}
}Entwicklung
Server-Entwicklung
npm run dev # Start with --watch (auto-restart on changes)
DEBUG=* npm start # Verbose loggingErweiterungs-Entwicklung
Nimm Änderungen an den Dateien in
extension/vorGehe zu
chrome://extensions/Klicke auf den Neu-laden-Button bei der Browser MCP Bridge-Erweiterung
Gesundheitsprüfung
npm run health-check
# or: curl http://localhost:6009/healthHinzufügen neuer Tools
Füge die Tool-Definition in
server.js→ListToolsRequestSchema-Handler hinzuImplementiere die Tool-Logik in
server.js→CallToolRequestSchema-HandlerFüge den browserseitigen Handler in
extension/background.jshinzuTeste mit Claude Code
Datenoptimierung
Der Server implementiert intelligente Standardwerte, um die Antworten für KI-Agenten überschaubar zu halten:
HTML: Gekürzt auf 50 KB (Text auf 30 KB)
DOM: Begrenzt auf 500 Knoten, Skripte/Styles ausgeschlossen
Konsole: Gibt standardmäßig Fehler und Warnungen zurück
Netzwerk: 50 Anfragen, fehlgeschlagene Anfragen zuerst sortiert, Bodies ausgeschlossen
Alle Limits sind pro Anfrage konfigurierbar. Siehe DATA_OPTIMIZATION.md für den vollständigen Leitfaden zu Filterung, Paginierung und Optimierung.
Fehlerbehebung
Erweiterung verbindet sich nicht
Überprüfe, ob der Server läuft:
curl http://localhost:6009/healthÜberprüfe, ob die WebSocket-URL im Erweiterungs-Popup mit dem Server-Port übereinstimmt
Suche nach Fehlern in der Browser-Konsole (
chrome://extensions/→ Fehler-Link)
Claude Code findet die Tools nicht
Überprüfe die MCP-Konfiguration:
claude mcp listÜberprüfe, ob der Server läuft und fehlerfrei ist
Füge den Server erneut hinzu:
claude mcp remove browser-mcp && claude mcp add --scope user --transport http browser-mcp http://127.0.0.1:6009/mcp
Keine Daten von Tools zurückgegeben
Stelle sicher, dass die Erweiterung verbunden ist (grüner Status im Popup)
Navigiere zu einer Seite im Browser – die Erweiterung benötigt eine aktive Seite
Überprüfe, ob die Tab-ID korrekt ist (verwende zuerst
get_browser_tabs)
Server startet nicht
Überprüfe die Node.js-Version:
node --version(erfordert 18.0.0+)Installiere Abhängigkeiten:
npm run install-serverÜberprüfe, ob Port 6009 belegt ist:
lsof -i :6009
Weiterführende Literatur
ARCHITECTURE.md — Systemdesign, Datenfluss und Komponentendetails
API_REFERENCE.md — Vollständige Referenz der MCP-Tools mit allen Parametern
DATA_OPTIMIZATION.md — Filterung, Paginierung und Performance-Tuning
Anforderungen
Node.js 18.0.0+
Chrome, Edge oder Chromium-basierter Browser
Claude Code CLI (oder ein beliebiger MCP-kompatibler Client)
Lizenz
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/robhicks/browser-mcp-bridge'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
