browser-mcp
Browser MCP
Machen Sie Ihren Chrome/Edge-Browser als MCP-Tools für jeden KI-Agenten verfügbar. Eine Chrome-Erweiterung (Manifest V3) fungiert selbst als MCP-Server: Sie verbindet sich mit einem code-mcp-gateway und beantwortet MCP-Anfragen direkt – kein lokaler Server erforderlich. Sie spricht dasselbe JSON-RPC-Protokoll wie code-mcp und fügt sich so in bestehende Agent-Setups ein.
So funktioniert es
flowchart LR
subgraph Agent["Agent side"]
A["MCP client / AI agent"]
end
subgraph Gateway["code-mcp-gateway (Cloudflare Worker)"]
G["wss://code-mcp.tuanm.dev/ws/<id>"]
end
subgraph Browser["Your browser"]
E["Extension (MV3)<br/>service worker = MCP server<br/>offscreen = WS bridge"]
P["Page (content script)"]
end
A -- "MCP JSON-RPC" --> G
G -- "register / keepalive /<br/>forward requests" --> E
E -- "CDP / tabs / scripting" --> PDas Popup nimmt eine Geräte-ID und einen Token entgegen; die Erweiterung verbindet sich direkt mit dem Gateway (Registrierung, Keepalive alle 25s, 75s Watchdog, Reconnect mit Jitter-Backoff) und bedient initialize / tools/list / tools/call direkt. Jeder Agent, der das Gateway erreichen kann, kann den Browser steuern.
Ein optionaler lokaler Server (browser-mcp.ts) fügt einen Dateispeicher (file_read, große Downloads/Uploads) und einen einfachen lokalen MCP-HTTP-Endpunkt hinzu. Siehe Lokaler Server.
Related MCP server: BrowserPilot
Schnellstart
Chrome oder Edge >= 111. Bun >= 1.1 wird nur für den lokalen Server oder die Entwicklungswerkzeuge benötigt – die Erweiterung funktioniert eigenständig.
Erweiterung laden. Öffnen Sie
chrome://extensions, aktivieren Sie den Entwicklermodus, klicken Sie auf Entpackte Erweiterung laden und wählen Siepackages/browser-extension. (Oder führen Siebun browser-mcp.tsaus und laden Sie die ZIP-Datei vonhttp://127.0.0.1:7777/extensionherunter.)Verbinden. Klicken Sie auf das Symbol in der Symbolleiste (das MCP-Zeichen wird grün, wenn eine Verbindung besteht). Geben Sie die Geräte-ID und den Token des Gateways ein und klicken Sie auf Verbinden. Das Popup zeigt Verbunden (Gateway).
Verwenden. Richten Sie einen beliebigen MCP-Client auf Ihr Gateway-Gerät. Die Erweiterung beantwortet
tools/listmit 47 Tools.
Der Token muss mit dem auf dem Gateway für dieses Gerät konfigurierten übereinstimmen. Das Gateway leitet ihn bei jeder Anfrage weiter und die Erweiterung überprüft ihn. Lassen Sie ihn leer, und jeder, der das Gateway erreicht, kann den Browser steuern.
Lokaler Server
Nur für den Dateispeicher (file_read, Downloads/Uploads > 512 KB) oder einen lokalen MCP-HTTP-Endpunkt erforderlich:
bun browser-mcp.ts # http://127.0.0.1:7777/mcp
bun browser-mcp.ts --token <s> # require auth on /mcp + /filesWenn der Server läuft, übergibt das Popup die ID + den Token auch an den eigenen Gateway-Link des Servers; ohne ihn funktioniert die Erweiterung weiterhin direkt. Lokale Clients verwenden http://127.0.0.1:7777/mcp – siehe mcp-client.example.json (fügen Sie "headers": { "Authorization": "Bearer <token>" } hinzu, wenn Sie mit --token ausführen). Überprüfen: curl -s http://127.0.0.1:7777/health.
Remote-Zugriff über code-mcp-gateway
Direkt (Standard). ID + Token im Popup eingeben; die Erweiterung stellt MCP selbst bereit. Kein lokaler Server.
Serverseitige Verbindung. Mit dem lokalen Server verbindet sich das Popup mit
wss://code-mcp.tuanm.dev/ws/<id>und der Server beantwortet MCP über HTTP.CLI (benutzerdefiniertes Gateway):
bun browser-mcp.ts --gateway <domain> --token <s> --id <device-id>Gleiches Protokoll wie im Direktmodus. Verwenden Sie denselben --token auf dem Gateway-Gerät; führen Sie den Gateway-Modus niemals ohne einen aus. Setzen Sie BMCP_GATEWAY_DOMAIN, um den Standard-Gateway-Host des Popups zu überschreiben.
Tools (47)
Elementerkennung mit dem @ref-System: snapshot gibt einen interaktiven Elementbaum mit [ref=eN]-Markierungen zurück; jedes Interaktionswerkzeug akzeptiert den ref oder einen CSS-Selektor (refs werden gecacht und automatisch aufgelöst; veraltete refs ergeben den Fehler „run snapshot again“).
Erkennung —
snapshot,find(role/name/text/label/placeholder/ title/testid/selector),get,isInteraktion —
click,dblclick,type,fill,check,uncheck,select,hover,focus,press,drag,scroll,uploadNavigation —
navigate,reload,back,forward,close,tabs,windowSeiten auslesen —
extract,execute,screenshot(image block),pdf,wait,highlightStatus & Debugging —
store,cookies,storage,console,errors,network,status,file_readEmulation & Steuerung —
emulate,set(viewport/device/geo/offline/ headers/media),perms,auth,dialog,frames,touch,download
Die Erfassung von Konsole/Fehlern/Netzwerk startet beim ersten Aufruf (lazy). Laden Sie also nach dem Aktivieren neu oder navigieren Sie, um Datenverkehr zu erfassen. Back/forward verwenden den CDP-Navigationsverlauf. Führen Sie curl -s -X POST http://127.0.0.1:7777/mcp -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' für die vollständigen Schemas aus.
Flags
Flag | Beschreibung | Standard |
| Lauschport |
|
| Bind-Adresse |
|
| Authentifizierung für | none |
| Diesen Token von der Erweiterung auf der Bridge und den Datei-Endpunkten verlangen | none |
| Den MCP-Endpunkt über ein code-mcp-gateway verknüpfen | none |
| Gateway-Geräte-ID (wird durch die Popup-ID überschrieben) | random |
| Wo heruntergeladene/hochgeladene Dateien gespeichert werden |
|
| NUR ENTWICKLUNG: Origin-Prüfung der Erweiterung überspringen. Nie auf einem gemeinsam genutzten Rechner | off |
Sicherheit
Origin-beschränkt.
/browser/wsakzeptiert nurchrome-extension://-Origins;/mcpund/files/*lehnen Browser-Origins außer localhost ab – eine bösartige Website kann Ihren Browser nicht über localhost steuern (CSRF). Native MCP-Clients (ohne Origin-Header) sind nicht betroffen.--tokenschützt/mcpund/files/*(?token=oder Bearer);--extension-tokenfügt ein Geheimnis hinzu, das die Erweiterung auf der Bridge vorweisen muss.Datei-IDs sind 12-stellige zufällige Hexadezimalwerte, die gegen ein strenges Muster validiert werden; hochgeladene Dateinamen werden bereinigt. Größenbegrenzungen: Uploads 500 MiB, Screenshots 8 MiB inline.
chrome.debuggerzeigt die gelbe Infoleiste, solange es angehängt ist (Zustimmungssignal);perms/cookiesverwenden wo möglich Nicht-Debugger-APIs.Bindet standardmäßig an
127.0.0.1; das Binden an0.0.0.0ohne--tokengibt eine Warnung aus.
Timeouts
Bridge-Befehle: 30s Standard, 60s für navigate/execute/wait_for, 120s für download/file_upload – begrenzt auf 120s lokal und 55s im Gateway-Modus (das Gateway bricht Weiterleitungen nach 60s ab). Tools akzeptieren bridge_timeout zum Überschreiben.
Entwicklung
bun run check # syntax-check server + scripts + extension JS
bun run test # mock-extension + mock-gateway E2E suite
bun run build # rebuild dist/browser-extension.zip
bun browser-mcp.ts # run the serverThis server cannot be deployed
Maintenance
Related MCP Connectors
Web scraping, browser automation, screenshots and AI data extraction for AI agents via MCP.
Control a real browser from AI agents: navigate, click, type, screenshot, read the page.
Hyperbrowser MCP — wraps the Hyperbrowser AI-agent browsing API (hyperbrowser.ai). Scrape…
Live browser debugging for AI assistants — DOM, console, network via MCP.
Related MCP Servers
- AlicenseNot gradedqualityNot gradedmaintenanceAn extension-based MCP server that enables AI assistants to control your existing Chrome browser, leveraging your active login states and settings for automation. It provides over 20 tools for tasks like semantic tab search, screen capture, network monitoring, and direct element interaction.-
- AlicenseBqualityDmaintenanceEnables AI to control browsers via natural language for web automation, testing, and data scraping. Supports Chrome-based browsers and integrates with any MCP-compatible AI tool.172MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI assistants to control your webpage via MCP, allowing navigation, screenshots, clicks, content reading, and more through a Chrome extension.24MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to control your existing Chrome browser via MCP, using your logged-in sessions for automation on authenticated sites. Provides high-level browser tools plus raw CDP and Chrome API access.MIT