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.
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 installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Live browser debugging for AI assistants — DOM, console, network via MCP.
AI-powered browser automation — navigate, click, fill forms, and extract data from any website.
Screenshot, diff, audit and sitemap-capture any web page — 5 MCP tools for AI agents.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/Tuanm/browser-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server