web-search-mcp
web-search-mcp
Externe Websuche und Seitenabruf für lokale LLMs, bereitgestellt als MCP-Tools und CLI. Die Implementierung ist Playwright-basiert, asynchron und startet standardmäßig das systemseitig installierte Chromium-Binary. Die Design-Historie ist in docs/IMPLEMENTATION_PLAN.md dokumentiert.
Tools
search(provider, context)führt eine browsergestützte Suche aufduckduckgo(Standard),googleoderyandexdurch und gibt bis zu 5 organische Ergebnis-URLs zurück.fetch(urls)ruft1..5URLs ab und gibt browser-gerendertes HTML mit pro-URLpages-,errors- undtruncated-Feldern zurück.
context ist aus Gründen der Kompatibilität mit dem Aufrufer absichtlich der Such-Query-String.
Related MCP server: Web Search MCP
Einrichtung
uv sync
chromium --versionFalls Chromium an einem nicht standardmäßigen Ort installiert ist, setzen Sie
PLAYWRIGHT_CHROMIUM_EXECUTABLE=/path/to/chromium.
Verwendung
Führen Sie den MCP-Server über stdio aus:
uv run web-search serve-mcpFühren Sie die CLI direkt aus:
uv run web-search search --context "python async playwright"
uv run web-search fetch https://example.comStellen Sie HTTP-Transport anstelle von stdio bereit:
uv run web-search serve-mcp --transport streamable-http --host 127.0.0.1 --port 8000Design-Hinweise
Ein gemeinsam genutzter Browser pro Prozess, mit einem neuen Inkognito-Kontext pro Anfrage.
Playwright startet das systemseitige Chromium-Binary, nicht ein von Playwright heruntergeladenes Browser-Bundle.
System-Chromium funktionierte mit Playwright, während der getestete System-Firefox-Build sofort nach dem Start beendet wurde. Dieses Repository zielt daher auf System-Chromium als unterstützten Host-Browser-Pfad ab.
Browser-Smoke-Tests sollten von einer normalen Host-Shell aus ausgeführt werden. Eingeschränkte Sandboxes können den Start von Chromium blockieren, selbst wenn der Host-Browser korrekt funktioniert.
Globale Navigations-Gleichzeitigkeitsbegrenzung von
3.Timeouts:
15spro Seite,20sinsgesamt fürsearch,35sinsgesamt fürfetch.SSRF-Schutz: nur
http/https, keine eingebetteten Anmeldedaten, blockiert Loopback/private/link-local/reservierte IPs vor der Navigation und bei Browser-Subrequests.JavaScript-Challenge-Seiten erhalten ein begrenztes
10s-Zeitfenster zur Stabilisierung; es gibt kein CAPTCHA-Lösen, Stealth-Fingerprinting oder standortspezifische Umgehungslogik.HTML ist auf
1 MiBpro URL begrenzt; zu große Antworten werden abgeschnitten und intruncatedgemeldet.robots.txtwird in v1 nicht berücksichtigt.
Entwicklung
source .venv/bin/activate
pytestParser-Tests laufen gegen gespeicherte HTML-Fixtures; Selektor-Drift ist ein erwarteter Wartungsaufwand.
This server cannot be deployed
Maintenance
Related MCP Connectors
Web search, browser automation, scraping, crawling and CAPTCHA solving for AI agents.
LLM-ready web search + instant answers + URL-to-clean-text fetch for agents and RAG.
A real browser for your agent: render any page, or 25 pages of a site, to clean text.
Provides cloud browser automation capabilities using Stagehand and Browserbase, enabling LLMs to i…
Related MCP Servers
- AlicenseBqualityBmaintenanceEnables LLMs to interact with web pages, take screenshots, and execute JavaScript in a real browser environment10162 npm299MIT
- AlicenseNot gradedqualityDmaintenanceEnables web searching through Google, DuckDuckGo, and Bing using a headless Chrome browser, returning structured results with titles, URLs, and snippets. Also supports fetching and extracting text content from any webpage.15MIT
- AlicenseNot gradedqualityCmaintenanceEnables LLMs to fetch and extract web content using browser automation, OCR, and multiple extraction methods, handling JavaScript rendering and anti-scraping techniques.17MIT
- AlicenseAqualityDmaintenanceProvides web access capabilities for LLMs including search, fetching, content extraction, PDF reading, image viewing, and screenshots.346MIT