dsh-google-chrome-search
dsh-google-chrome-search
Ein DeepSeek Harness (DSH) Plugin, das es einem KI-Agenten ermöglicht, eine echte Google-Websuche durchzuführen, indem es den lokalen Chrome-Browser über CDP (Chrome DevTools Protocol) steuert und beliebige Seiten rendert, um deren Inhalt zu extrahieren. Kein Such-API-Schlüssel erforderlich – es funktioniert mit dem bereits auf dem Rechner installierten Chrome.
Google zeigt für automatisierten und Rechenzentrums-Traffic häufig eine Seite zur menschlichen Verifizierung (CAPTCHA / „ungewöhnlicher Traffic"). Wenn das passiert, öffnet dieses Plugin ein sichtbares Chrome-Fenster, das auf die Verifizierungsseite zeigt, wartet darauf, dass der Mensch sie löst, und extrahiert dann die Ergebnisse aus der nun vertrauenswürdigen Sitzung. Das ist der Schritt „den Menschen fragen" – der Agent versucht niemals, ein CAPTCHA selbst zu lösen.

Was Sie erhalten
Komponente | Pfad | Zweck |
Kern-Engine |
| Chrome/CDP-Google-Suche + CAPTCHA-Verifizierung + Ergebnis-Extraktion |
Seiten-Engine |
| Beliebige URL rendern + lesbaren Inhalt extrahieren (Mozilla Readability) + |
MCP-Server |
| Stellt |
CLI |
|
|
Skill |
| Bringt dem Agenten die Nutzung bei + den Workflow zur menschlichen Verifizierung |
Related MCP server: browser-search-mcp
Voraussetzungen
Node.js ≥ 18 (getestet mit Node 22)
Ein lokales Chrome/Chromium-Binary (z. B.
google-chrome,chromium). Wird automatisch aus gängigen Pfaden erkannt; überschreibbar mitCHROME_PATHoder--chrome.Für den sichtbaren Verifizierungsschritt wird eine Desktop-Sitzung mit Display benötigt (damit das Chrome-Fenster dem Menschen gezeigt werden kann). Headless/SSH kann das CAPTCHA weiterhin erkennen und melden (mit einem Screenshot).
Installation
git clone https://github.com/davidcastilloalvarado/dsh-google-chrome-search.git
cd dsh-google-chrome-search
npm installAbhängigkeiten: puppeteer-core (steuert Ihr Chrome – es lädt keinen Browser herunter), @modelcontextprotocol/sdk (für den MCP-Server), @mozilla/readability (Inhalts-Extraktion) und zod (Schema-Validierung).
Optional die CLI global verlinken, damit sie im PATH ist:
npm link # gives you: dsh-google-search "<query>"CLI verwenden
# Search:
node bin/google-search.mjs "nodejs streams" --max 8
# or, after npm install / npm link:
npm run search -- "nodejs streams" --json
# Search, then render + extract the top 3 result pages:
node bin/google-search.mjs "nodejs streams" --max 8 --fetch-top 3 --fetch-max-chars 8000
# Fetch one URL directly (render + extract readable content):
node bin/google-search.mjs fetch "https://nodejs.org/api/stream.html" --max-chars 8000Exit-Codes: 0 = Erfolg (Ergebnisse / abgerufener Inhalt), 2 = Verifizierung erforderlich (CAPTCHA), 3 = keine Ergebnisse / Abruf blockiert oder fehlgeschlagen, 1 = Fehler, 64 = Verwendung.
Seite abrufen (rendern + extrahieren)
Das Plugin kann auch beliebige URLs rendern und deren lesbaren Hauptinhalt extrahieren:
Führt die Seite im gleichen dedizierten Chrome-Profil aus (so verhalten sich Seiten, die einen konsistenten, vertrauenswürdigen Fingerabdruck sehen, besser).
Wartet, bis die Seite vollständig geladen ist (einschließlich später SPA-Inhalte).
Extrahiert den Artikel mit Mozilla Readability, das innerhalb der Live-Seite ausgeführt wird. Wenn die Seite keinen eindeutigen Artikel hat, wird auf den vollständigen Seitentext zurückgegriffen.
Begrenzte Ausgabe (Standard 8.000 Zeichen pro Seite), damit sie agentenkontextfreundlich bleibt.
Erkennt Anti-Bot-Wände und meldet
blocked, statt Müll zurückzugeben. Wenn eine Website eine Herausforderung zur menschlichen Verifizierung ausliefert (z. B. DataDomes „Schieben zum Fortfahren"-Wand), öffnet es ein sichtbares Chrome-Fenster mit der Seite, wartet bis zuverifyTimeoutMs, bis der Mensch sie besteht, und extrahiert dann den echten Inhalt – dieselbe Hand-an-Mensch-Philosophie wie beim Google-CAPTCHA-Ablauf. Das vertrauenswürdige Sitzungscookie bleibt im Profil erhalten, sodass spätere Seiten dieser Website normalerweise headless durchgehen. Verwenden Sie--no-verify/autoVerify: false, um stattdessen einfachblockedzu melden.
dsh-google-search fetch "https://example.com/article" --max-chars 10000
dsh-google-search fetch "https://example.com/article" --html --screenshotZwei Möglichkeiten, Suche und Lesen zu kombinieren:
Was | Wie |
Suchen und dann die Top-N-Seiten in einem Aufruf lesen |
|
Suchen und dann ein bestimmtes Ergebnis lesen |
|
Seiten werden sequenziell gerendert (ein Browser, eine Seite nach der anderen) – rechnen Sie mit ~1–3 s pro Seite.
Als natives DSH-Tool verwenden (MCP)
Registrieren Sie den MCP-Server mit DSHs @deepseek-ai/dsh-mcp-client in Ihrer Profilkonfiguration (Beispiel – passen Sie die command- und args-Pfade an Ihre Umgebung an):
- insert:
- id: mcp-google
name: '@deepseek-ai/dsh-mcp-client'
config:
serverName: google
transport: stdio
command: /path/to/node
args: [ /path/to/dsh-google-chrome-search/src/server.mjs ]
env:
CHROME_PATH: /usr/bin/google-chrome # optional — auto-detected if unset
toolCallTimeoutMs: 300000Nach einem DSH-Neustart erhält der Agent drei native Tools:
Tool | Was es tut |
| Google-Websuche → Links + Snippets |
| Eine URL rendern → extrahierter lesbarer Inhalt (Titel, Autor, Text, optional HTML/Screenshot) |
| Suche → die Top-N-Seiten rendern → extrahierter Inhalt pro Seite in einem Aufruf |
Hinweise:
Aufrufe werden serialisiert (Chrome erlaubt nur einen Prozess pro Profil), daher werden gleichzeitige Tool-Aufrufe in eine Warteschlange gestellt, statt parallel zu laufen.
search_and_fetchist langsamer als eine einfache Suche: Halten SietoolCallTimeoutMsbei300000(5 Minuten), wie oben gezeigt.Der Ablauf zur menschlichen Verifizierung gilt sowohl für die Google-Suche (CAPTCHA) als auch für Ergebnis-Seiten, die den Browser blockieren (Anti-Bot-Slider): Ein sichtbares Chrome-Fenster öffnet sich für den Menschen, und die Sitzung bleibt danach im Profil erhalten.
Als DSH-Skill verwenden
skill/SKILL.md bringt dem Agenten bei, wie die Suche ausgeführt wird und wie die CAPTCHA-Übergabe an den Menschen gehandhabt wird. Zur Installation kopieren Sie es in Ihr DSH-Skills-Verzeichnis, z. B.:
mkdir -p ~/.dsh/skills/google-chrome-search
cp skill/SKILL.md ~/.dsh/skills/google-chrome-search/Bevor Sie es auf einem anderen Rechner teilen/verwenden, bearbeiten Sie den Platzhalter <INSTALL_DIR> in SKILL.md, sodass er auf den Ort zeigt, an dem Sie dieses Repository geklont haben (oder legen Sie die npm link-CLI auf PATH und es funktioniert einfach).
Konfiguration (env / Optionen)
Option / Env | Standard | Bedeutung |
| Auto-Erkennung | Chrome-Ausführungsdatei |
|
| persistentes, dediziertes Chrome-Profil (behält „verifizierte" Cookies) |
| 8 | organische Ergebnisse, die zurückgegeben werden (max. 20) |
| 150000 | wie lange auf die Lösung eines CAPTCHAs durch den Menschen gewartet wird |
|
| wenn |
|
| Region / Sprache |
| 8000 | maximale extrahierte Zeichen pro abgerufener Seite (fetch / search_and_fetch) |
| 3 | wie viele Ergebnis-Seiten in |
|
| Fetch-Optionen: zusätzlich extrahiertes HTML / einen Seiten-Screenshot zurückgeben |
| 20000 | Navigations-Timeout pro abgerufener Seite |
Der Ablauf zur menschlichen Verifizierung, Schritt für Schritt
Chrome führt die Suche headless aus (ein dediziertes, isoliertes Profil – niemals Ihr echter Browser).
Wenn Ergebnisse vorhanden sind → zurückgeben (
status: ok).Wenn Google ein CAPTCHA ausliefert:
Screenshot davon machen.
Ein sichtbares Chrome-Fenster (gleiches Profil) auf der Verifizierungsseite öffnen.
Bis zu
verifyTimeoutMsauf die Lösung durch den Menschen warten, die Seite dabei pollen.Wenn gelöst → Ergebnisse extrahieren + zurückgeben (gekennzeichnet mit
verifiedViaHuman: true). Wenn Zeitüberschreitung →status: verification_requiredmit dem neuesten Screenshot zurückgeben.
Die verifizierte Sitzung bleibt im Profil erhalten, sodass die nächste Suche normalerweise headless erfolgreich ist.
Testen
npm testStartet den MCP-Server, prüft, ob die Tools search, fetch und search_and_fetch aufgelistet sind, und – falls ein Chrome-Binary auf dem Rechner verfügbar ist – führt eine Live-Suche mit autoVerify: false durch. In Umgebungen ohne Browser (z. B. CI) wird der Live-Aufruf elegant übersprungen.
Fehlerbehebung
Symptom | Lösung |
| Chrome/Chromium installieren oder |
Läuft als Root in einem Container, Sandbox-Fehler | Standard ist |
CAPTCHA bei jeder Suche | Das dedizierte Profil ( |
Kein sichtbares Fenster bei SSH | Verwenden Sie einen Rechner mit Display oder setzen Sie |
| Schließen Sie alle Chrome-Instanzen, die dieses Profil verwenden, und versuchen Sie es erneut (das Profil ist von Ihrem persönlichen getrennt). Führen Sie nicht zwei CLI-Aufrufe gleichzeitig aus – ein Prozess pro Profil. |
| Das ist der Schritt zur menschlichen Verifizierung, wie beabsichtigt: Bestehen Sie die Herausforderung im Fenster, dann wird erneut versucht und die Sitzung bleibt erhalten. |
| Die Website blockiert Headless-Browser und |
| Die Seite ist stark JS-lastig und war noch nicht fertig gerendert; versuchen Sie es erneut (sie stabilisiert sich nach bis zu ~7 s) oder erhöhen Sie |
Zurücksetzen / Bereinigen
Konfiguration: Entfernen Sie den Eintrag
mcp-googleaus Ihrer DSH-Profilkonfiguration.Skill:
rm -rf ~/.dsh/skills/google-chrome-searchProfil/Screenshots:
rm -rf ~/.dsh-chrome-google
Lizenz
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.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to perform real-time Google searches with anti-bot protection. Bypasses search engine restrictions using advanced browser automation to extract search results locally without requiring paid API services.7MIT
- AlicenseAqualityAmaintenanceEnables web search via a real browser for any LLM, bypassing anti-bot measures without API keys.5MIT
- AlicenseBqualityBmaintenanceBridges AI agents (Codex, Claude Code) with a real Chrome session via CDP, enabling Google Search and Google AI interactions through the browser.2277MIT
- FlicenseNot gradedqualityCmaintenanceEnables AI agents to search the web and extract content using multiple search providers, with caching, retry logic, and options for JavaScript-heavy page rendering.
Related MCP Connectors
Search Google straight from your AI agent. Web results, images, videos, news, products, scholarly ar
The best web search for your AI Agent
Live web search for AI agents. $0.001/call, x402 on Base, no API key.
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/DavidCastilloAlvarado/dsh-google-chrome-search'
If you have feedback or need assistance with the MCP directory API, please join our Discord server