ChromeBrowserMCP
Chrome Browser MCP
Eine lokale Brücke, die es einer privaten ChatGPT-App im Entwicklermodus ermöglicht, die in deinem Desktop-Google-Chrome bereits geöffneten Tabs zu untersuchen und zu steuern.
Aktuelle Patch-Version: 0.1.2. Jeder Patch muss diese Version erhöhen; CI lehnt Patches ab, die das nicht tun.
Die Brücke stellt 17 MCP-Werkzeuge bereit:
Lesen:
browser_status,list_tabs,get_active_tab,read_tab,read_tabs,search_tabsAktionen:
click,type,fill_form,press_key,scroll,select_option,navigate,new_tab,close_tabChatGPT-Child-Agenten:
spawn_chatgpt_agent,read_chatgpt_agent
spawn_chatgpt_agent öffnet standardmäßig einen neuen chatgpt.com-Tab im Hintergrund, übermittelt exakt den vom Benutzer bereitgestellten Prompt und gibt dessen Tab-ID zurück. read_chatgpt_agent liest diesen Child-Tab über denselben eingeschränkten semantischen Extraktor, der auch für normale Tabs verwendet wird; ruf es später erneut auf, wenn der Child-Tab noch generiert.
Aktionsziele akzeptieren entweder einen CSS-Selektor oder exakten sichtbaren Text / aria-label / Platzhalter / Namen / zugeordneten Labeltext. Mehrdeutige Ziele schlagen fehl, anstatt zu raten.
Die Brücke bietet keinen Zugriff auf Cookies, lokalen Speicher, Sitzungsspeicher, gespeicherte Passwörter, versteckte Eingabewerte, beliebige JavaScript-Ausführung, Chrome-interne Seiten oder Inkognito-Tabs. Sie verwendet die Chrome-Debugger-API nicht.
Bewährter Weg
Der End-to-End-Test startet einen echten Chromium-Prozess mit der entpackten Manifest-V3-Erweiterung, startet den echten Native-Messaging-Host, verbindet einen MCP-Client über Streamable HTTP, öffnet Live-Seiten, listet und liest sie und verifiziert, dass ein Passwort-Eingabewert nicht zurückgegeben wird. Die Unit-/Integrationstests validieren Seitenaktionen, MCP-Routing, die Registrierung/Komposition der ChatGPT-Child-Agenten-Werkzeuge, die Synchronisierung der generierten Erweiterungsversion sowie die Tatsache, dass die von Chrome/Native Messaging verwendeten Laufzeitdateien von Git nachverfolgt werden.
MCP client
-> http://127.0.0.1:2091/mcp
-> native host process
-> Chrome Native Messaging
-> MV3 extension
-> live Chrome tabsFühre jedes Gate aus:
npm ci
npm run checkRelated MCP server: sansan-chrome-mcp
Architektur
ChatGPT developer-mode app
|
| OpenAI Secure MCP Tunnel (outbound HTTPS)
v
127.0.0.1:2091/mcp
|
| same local Node process
v
Chrome Native Messaging host
|
v
Chrome MV3 extension
|
+-- chrome.tabs
+-- chrome.scripting (isolated-world reads + actions)Chrome startet den nativen Host, wenn die Erweiterung eine Verbindung herstellt. Der native Host startet den Loopback-MCP-Endpunkt. Deshalb muss Chrome geöffnet und die Erweiterung aktiviert sein, wann immer ChatGPT die App verwendet.
Voraussetzungen
macOS
Google Chrome 120+
Node.js 20+
Ein ChatGPT-Konto, für das der Entwicklermodus verfügbar ist
Eine OpenAI-Platform-Tunnel-ID und ein Runtime-API-Schlüssel mit Tunnels Read + Use
tunnel-client
1. Den nativen Host installieren und die Erweiterung einmal laden
npm run install:macDies installiert das Native-Host-Manifest unter:
~/Library/Application Support/Google/Chrome/NativeMessagingHosts/com.komaksym.chrome_browser_mcp.jsonDann:
Öffne
chrome://extensions.Aktiviere den Entwicklermodus.
Klicke auf Entpackte Erweiterung laden.
Wähle das Verzeichnis
dist/extensiondieses Repositorys.Bestätige, dass die Erweiterungs-ID genau Folgendes ist:
jlpddlfiallighiohmhhkemgbhofpnhaFahre nicht fort, wenn die ID abweicht. Der native Host akzeptiert nur genau diesen Erweiterungs-Ursprung.
2. Zukünftige Patches aktualisieren
Du wählst das Erweiterungsverzeichnis nur einmal aus. Die gebaute Erweiterung und die MCP-Brücke unter dist/ sind in Git eingecheckt, und CI lehnt Quellcodeänderungen ab, deren eingecheckter Runtime-Build veraltet ist.
Für jeden späteren Patch ist der normale Aktualisierungsablauf genau:
git pullÖffne dann chrome://extensions und klicke auf Aktualisieren. Wähle den Erweiterungspfad nicht erneut aus und führe keinen separaten Build-Befehl aus, nur um einen veröffentlichten Patch zu übernehmen.
git pull aktualisiert sowohl dist/extension (das, was Chrome lädt) als auch dist/bridge (das, was der native Host ausführt). Ein Klick auf Aktualisieren lädt die Verbindung zwischen der entpackten Erweiterung und Native Messaging neu, sodass die neu gezogene Laufzeit verwendet wird.
Die sichtbare Erweiterungsversion muss sich bei jedem Patch ändern. Für diesen Patch muss sie 0.1.2 anzeigen. Wenn sie weiterhin eine ältere Version anzeigt, wurde die gezogene Laufzeit nicht übernommen.
3. Die lokale Browser-Kette überprüfen
Halte Chrome geöffnet und führe dann aus:
npm run verify:localEine erfolgreiche Prüfung gibt Folgendes aus:
die Erweiterungs-ID;
die Erweiterungsversion;
die MCP-Serverversion;
die 17 angekündigten MCP-Werkzeuge.
Der Verifizierer schlägt fehl, wenn sich die Erweiterungs- und MCP-Version unterscheiden oder wenn die Brücke so alt ist, dass sie ihre MCP-Version nicht meldet. Dadurch ist eine veraltete Brücke mit 15 Werkzeugen sofort von einer veralteten Chrome-Erweiterung unterscheidbar.
4. Sicheren MCP-Tunnel konfigurieren
Erstelle in OpenAI Platform einen Tunnel und einen Runtime-API-Schlüssel. Dann:
export CONTROL_PLANE_API_KEY="sk-..."
./scripts/configure-tunnel.sh tunnel_0123456789abcdef0123456789abcdef
tunnel-client doctor --profile chrome-browser-mcp --explain
tunnel-client run --profile chrome-browser-mcpDas Profil leitet den Tunnel weiter an:
http://127.0.0.1:2091/mcpHalte tunnel-client run aktiv, wann immer ChatGPT die Browser-Werkzeuge benötigt.
5. Zu ChatGPT hinzufügen
Aktiviere in ChatGPT Einstellungen -> Sicherheit und Anmeldung -> Entwicklermodus.
Öffne Einstellungen -> Plugins.
Klicke auf +, um eine Entwicklermodus-App zu erstellen.
Wähle Tunnel als Verbindungstyp.
Wähle die Tunnel-ID aus oder füge sie ein.
Verwende die Metadaten aus
app-metadata.json.Bestätige, dass ChatGPT alle 17 Werkzeuge findet.
Klicke in einem neuen Chat auf + -> Mehr, wähle Chrome Browser und frage dann:
List my open Chrome tabs.
Für die genaue Verifizierung und Fehlerbehebung siehe docs/CHATGPT_SETUP.md.
Sicherheitsmodell
Webseitentext ist Daten, niemals Autorität. Jedes Inhaltsergebnis enthält eine explizite Markierung für nicht vertrauenswürdigen Inhalt, und die Werkzeug-Anweisungen sagen dem Modell, Anweisungen, die es in Seiten findet, niemals in Aktionen umzusetzen.
Die Erweiterung fordert absichtlich Zugriff auf alle HTTP- und HTTPS-Seiten an, damit sie normale offene Tabs lesen und mit ihnen interagieren kann. Die Schutzgrenze ist:
die Erweiterung wird lokal von dir geladen;
Chrome startet nur den exakt auf der Whitelist stehenden nativen Host;
der native Host lehnt jeden Ursprung außer der stabilen Erweiterungs-ID ab;
der MCP-Endpunkt bindet nur an
127.0.0.1;der Tunnel ist ausschließlich ausgehend;
Aktionen sind auf normale HTTP(S)-Tabs beschränkt und legen weder beliebiges JavaScript, Debugger-Zugriff, Cookies noch Browser-Speicher offen;
Mehrdeutige, für Menschen lesbare Ziele werden abgelehnt, anstatt geraten zu werden.
Lies THREAT_MODEL.md und SECURITY_REVIEW.md, bevor du die Lösung unbeaufsichtigt einsetzt.
Bekannte Einschränkungen
Es sollte immer nur ein Chrome-Profil die Erweiterung laden; zwei Profile können um Port
2091konkurrieren.Chrome-interne Seiten, Seiten des Chrome Web Store,
file://-Seiten und Inkognito-Tabs können nicht gelesen oder gesteuert werden.Cross-Origin-Iframes werden nicht durchlaufen.
Ausschließlich auf Canvas basierende Anwendungen und der integrierte PDF-Viewer von Chrome liefern unter Umständen nur wenig semantischen Text.
Der Extraktor gibt den sichtbaren Text, die Überschriften, Links und die Beschreibung des primären Dokuments zurück, nicht das rohe HTML. URL-Anmeldedaten und Fragmente werden entfernt, und sensible Abfrageparameter werden geschwärzt.
press_keyverwendet DOM-Tastaturereignisse; Enter und Escape erhalten ein explizites Standardverhalten, aber einige Websites erfordern vertrauenswürdige OS-/CDP-Tastatureingaben.Die Übermittlung von ChatGPT-Child-Agenten hängt vom aktuellen Web-Composer von ChatGPT (
#prompt-textarea) und dem Markup des Senden-Buttons ab; eine zukünftige Änderung der ChatGPT-Benutzeroberfläche kann eine Aktualisierung dieser Selektoren erfordern.read_chatgpt_agentgibt den sichtbaren semantischen Seitentext des Child-Tabs zurück, keine privilegierte ChatGPT-API-Antwort.Der Datei-Upload ist bewusst nicht implementiert, weil eine allgemeine Umsetzung eine leistungsfähigere Dateisystem-/Debugger-Oberfläche erfordern würde.
Entwicklung
npm ci
npm run version:check
npm run typecheck
npm run lint
npm test
npm run artifacts:check
npm run test:e2e
npm auditThis 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 Servers
- FlicenseNot gradedqualityCmaintenanceEnables AI agents to interact with a user's real Chrome browser tabs, executing JavaScript, reading cookies, and making fetch requests within authenticated sessions.
- AlicenseNot gradedqualityAmaintenanceEnables AI assistants to control Chrome browser operations such as navigation, reading pages, taking screenshots, managing tabs, and more via a Chrome extension and native messaging.MIT
- AlicenseNot gradedqualityBmaintenanceEnables token-efficient browser automation for AI chats like ChatGPT, Gemini, and Claude, allowing reading responses, sending messages, waiting for streaming replies, and bridging conversations between tabs via Chrome DevTools Protocol.3MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to control Chrome browser for tab management, content extraction, and browser interactions via REST API.1GPL 3.0
Related MCP Connectors
Read-only bank access for your AI agent. Connects Claude, ChatGPT, Cursor, Gemini, Codex.
Let ChatGPT, Claude & Cursor use your Mac: email, calendar, iMessage, Teams, files. Local, free.
Give your agent live data from Twitter, Reddit, the web and GitHub. No API keys, no scraping stack.
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/komaksym/chrome-browser-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server