searxNcrawl, ein Webcrawler als MCP-Server mit Crawl4AI
searxNcrawl ist ein quelloffener MCP-Server, der KI-Agenten einen Webcrawler gibt: crawl macht aus Seiten sauberes Markdown, crawl_site liest einen Bereich einer Dokumentation innerhalb von Limits, und beide laufen auf Ihrem Rechner mit Crawl4AI und Playwright. Diese Seite zeigt beide Tools in einem echten Lauf und vergleicht sie mit dem MCP-Endpunkt von Crawl4AI.
Was die Crawler-Tools können
crawl: eine oder viele URLs, in Chromium gerendert und als Markdown oder JSON zurückgegeben. Abschnitte, die sich innerhalb einer Seite wiederholen, fallen weg, Links bleiben, verschwinden oder kommen als eigene Liste, und eine gespeicherte Browsersitzung öffnet Seiten hinter einem Login.crawl_site: beginnt bei einer URL und folgt ihren Links in die Tiefe, innerhalb einer Tiefe, eines Seitenlimits und eines Timeouts, auf derselben Domain, solangeinclude_subdomainsnicht gesetzt ist. Jede Seite kommt als eigener Markdown-Abschnitt zurück.searchmitinclude_content=true: findet Seiten über SearXNG und/oder You.com und crawlt jedes Ergebnis im selben Aufruf, wie die Seite zum SearXNG-MCP-Server beschreibt.
Alle drei laufen in einem Python-Prozess auf Ihrem Rechner. Darunter arbeitet Crawl4AI, eine quelloffene Bibliothek, die Chromium über Playwright steuert. searxNcrawl macht daraus MCP-Tools mit Limits und Standardwerten für Dokumentationen und braucht weder Konto noch API-Key. Crawling funktioniert ohne jeden Suchanbieter: Ein Agent, der die Adresse einer Seite schon kennt, ruft crawl direkt auf.
Warum ein Agent einen Crawler braucht
Viele MCP-Clients bringen ein Fetch-Tool mit, das eine Seite herunterlädt und ihr HTML umwandelt. Bei statischen Seiten klappt das, doch eine Seite, die ihren Inhalt per JavaScript aufbaut, kommt leer oder halb gefüllt an, und das HTML einer typischen Dokumentationsseite besteht großteils aus Navigation, Seitenleisten, Cookie-Bannern und Skripten. Jede dieser Zeilen kostet Kontext und Tokens, ohne eine Angabe zu liefern, die der Agent braucht.
Ein Crawler für Sprachmodelle rendert die Seite zuerst in einem echten Browser, wartet, bis der Inhalt da ist, und wandelt dann um, was ein Leser sieht: Überschriften bleiben Überschriften, Code bleibt Code, Tabellen und Links bleiben erhalten. searxNcrawl entfernt danach Abschnitte, die innerhalb derselben Seite doppelt vorkommen, etwa ein Menü oben und noch einmal unten. Seiten vergleicht es nicht miteinander; jede Seite eines Website-Crawls behält also ihren vollen Text.
Das Ergebnis ist Text, den ein Agent zitieren und auswerten kann. Agenten lesen damit die Dokumentation einer Bibliothek, bevor sie Code dafür schreiben, prüfen ein Changelog oder ein Issue oder tragen die Seiten einer Suche zu einer Antwort mit Quellen zusammen.
Eine Seite in der Shell crawlen
Die CLI zeigt am schnellsten, was ein Agent bekommt. Dieser Befehl crawlt die Seite zur Such-API in der SearXNG-Dokumentation und schreibt sie in eine Datei:
uvx --from searxncrawl crawl https://docs.searxng.org/dev/search_api.html -o page.md
In unserem Lauf antwortete die Seite mit 200, der Crawl samt Browserstart dauerte 8,3 Sekunden, und die Datei enthielt 3.221 Zeichen Markdown: die Endpunkte, die Parameter, die curl-Beispiele und den Hinweis, dass ein Format, das in der settings.yml fehlt, mit 403 antwortet. Mit --json liefert derselbe Befehl das Markdown zusammen mit Statuscode, Titel, den fünf Links der Seite als Referenzen und den Zahlen der Deduplizierung.
Die exakte Deduplizierung entfernte auf dieser Seite 23 von 46 Abschnitten, und searxNcrawl protokollierte eine Warnung, weil dieser Anteil über seiner Schwelle von 45 Prozent liegt. Die Warnung stellt nichts wieder her; sie sagt Ihnen, eine solche Seite selbst anzusehen, wenn es auf jedes Detail ankommt, oder sie mit --dedup-mode off erneut zu crawlen.
Einen Bereich einer Dokumentation crawlen
Für einen ganzen Bereich ergänzen Sie --site mit einer Tiefe und einem Seitenlimit. Dieser Lauf beginnt bei der Administratordokumentation von SearXNG und stoppt nach fünf Seiten:
uvx --from searxncrawl crawl https://docs.searxng.org/admin/ \ --site --max-depth 1 --max-pages 5 -o docs/
Der Crawl war nach 14,7 Sekunden fertig, mit fünf gelesenen und keiner fehlgeschlagenen Seite, und das Ausgabeverzeichnis enthielt eine Markdown-Datei je Seite. --max-depth zählt die Linkschritte ab der Startseite, --max-pages begrenzt die Gesamtzahl, und --include-subdomains erweitert den Bereich von der Domain der Start-URL auf ihre Subdomains.
Wählen Sie die Limits nach der Frage, nicht nach der Größe der Website. Tiefe 1 mit einer Handvoll Seiten liest eine Übersicht und die Seiten, auf die sie verweist; Tiefe 2 mit dem Standard von 25 Seiten deckt ein typisches Kapitel einer Dokumentation ab. Der Crawl liefert seine Seiten, wenn er fertig ist, und läuft das Gesamt-Timeout von 120 Sekunden vorher ab, liefert er keine Seiten und einen Fehler crawl_timeout. Halten Sie Website-Crawls deshalb klein und starten Sie lieber mehrere als einen großen.
Die Tools über MCP aufrufen
Ein Agent ruft denselben Crawler als MCP-Tools auf. Um genau zu sehen, was er bekommt, haben wir beide Tools mit dem Kommandozeilenmodus des MCP Inspectors aufgerufen, der searxNcrawl wie ein MCP-Client über STDIO startet:
npx @modelcontextprotocol/inspector --cli \ -e SEARXNG_URL=http://localhost:8888 uvx searxncrawl \ --method tools/call --tool-name crawl \ --tool-arg 'urls=["https://docs.searxng.org/dev/search_api.html"]'
# https://docs.searxng.org/dev/search_api.html _Crawled: 2026-11-04 09:11:13 UTC_ ## Search API¶ SearXNG supports querying via a simple HTTP API. ...
crawl lieferte 3.304 Zeichen ohne Fehler: das Markdown der Seite unter einer Überschrift mit ihrer Adresse und der Uhrzeit des Crawls. Derselbe Aufruf für crawl_site las die fünf Seiten des Shell-Laufs und lieferte sie als ein Ergebnis mit 16.637 Zeichen, jede Seite unter ihrer eigenen Adresse und durch eine Linie getrennt:
npx @modelcontextprotocol/inspector --cli \ -e SEARXNG_URL=http://localhost:8888 uvx searxncrawl \ --method tools/call --tool-name crawl_site \ --tool-arg url=https://docs.searxng.org/admin/ --tool-arg max_depth=1 --tool-arg max_pages=5
- urls
crawl: die Liste der zu lesenden Adressen- url, max_depth, max_pages
crawl_site: die Startadresse und die Limits- output_format
- Standardmäßig Markdown, sonst JSON mit Metadaten und Referenzen
- remove_links
- Entfernt die Links aus dem Markdown und spart Tokens
- dedup_mode
- Standardmäßig exact; off behält jeden Abschnitt
- storage_state
- Eine gespeicherte Browsersitzung für Seiten hinter einem Login
- timeout
- Sekunden je URL bei
crawl(Standard 15), für die ganze Website beicrawl_site(Standard 120)
Den Crawler im MCP-Client eintragen
Führen Sie uvx searxncrawl setup aus. Der Befehl trägt searxNcrawl bei Claude Code, Codex, Gemini CLI, Cursor, VS Code und Claude Desktop ein, fragt nach Ihrer SearXNG-URL und einem optionalen You.com-API-Key und sichert jede Datei, bevor er sie ändert. Clients, die eine mcpServers-Datei lesen, nehmen diesen Block; ohne SearXNG-Adresse funktionieren die Crawler-Tools trotzdem:
{
"mcpServers": {
"crawler": {
"command": "uvx",
"args": ["searxncrawl"],
"env": { "SEARXNG_URL": "http://your-searxng:8888" }
}
}
}Die Seite zum SearXNG-MCP-Server zeigt die Einrichtung für jeden Client, auch für LM Studio, OpenCode, OpenClaw und Open WebUI, sowie den HTTP-Transport für Clients auf anderen Rechnern. Der erste Crawl lädt einmalig das Chromium von Playwright herunter, etwa 550 MB.
searxNcrawl und der MCP-Endpunkt von Crawl4AI
Crawl4AI bringt in seinem Docker-Server einen eigenen MCP-Endpunkt mit. Beide nutzen dieselbe Crawling-Bibliothek; der Unterschied liegt darin, wie sie laufen und was sie darum herum ergänzen (Docker-Anleitung von Crawl4AI):
| Funktion | searxNcrawl | Docker-Server von Crawl4AI |
|---|---|---|
| Betrieb | Ein Python-Paket: uvx searxncrawl | Ein Docker-Container auf Port 11235 |
| MCP-Transporte | STDIO und Streamable HTTP | SSE und WebSocket |
| Crawling-Tools | crawl und crawl_site | md, html und crawl |
| Browser-Tools | Nicht enthalten | screenshot, pdf und execute_js |
| Websuche | search über SearXNG und/oder You.com | Nicht enthalten |
| Website-Crawls | crawl_site mit Tiefen- und Seitenlimit | Nicht unter seinen MCP-Tools aufgeführt |
| Client-Einrichtung | uvx searxncrawl setup für sechs Clients | Ein Beispiel mit claude mcp add |
| Lizenz | MIT | Apache-2.0 |
Angaben zu Crawl4AI laut seiner Docker-Anleitung, geprüft am 2026-11-04; die Angaben zu searxNcrawl beschreiben Version 0.33.1 und seine Dokumentation zum Crawling. Nehmen Sie den Server von Crawl4AI, wenn ein Agent Screenshots, PDFs oder JavaScript auf einer Seite braucht, und searxNcrawl, wenn er Suche und lesbare Seiten aus einem lokalen Server braucht. Beide lassen sich nebeneinander eintragen.
Wann ein Crawler das falsche Werkzeug ist
- Websites, die automatisierten Zugriff in ihren Nutzungsbedingungen oder der robots.txt untersagen: Prüfen Sie das, bevor Sie sie in größerem Umfang crawlen.
- Websites hinter Bot-Schutz: searxNcrawl crawlt mit einem gewöhnlichen Chromium aus Ihrem Netz und versucht nicht, einen solchen Schutz zu umgehen.
- Strukturierte Daten wie Preise oder Tabellen in einem festen Schema: Ein Crawler liefert Markdown, die Extraktion bleibt ein Schritt für den Agenten oder ein anderes Werkzeug.
- Crawls von Tausenden Seiten:
crawl_siteist für einen Bereich einer Dokumentation gebaut, nicht für die Indexierung einer Domain.
Crawlen aus dem eigenen Netz hat eine zweite Seite. Es erreicht Intranetseiten und Dokumentationen hinter einem VPN, die kein gehosteter Dienst sieht, doch Websites, die unbekannte Adressen sperren, sperren auch Ihren Rechner. Crawlen Sie zurückhaltend: kleine Limits, wenige Seiten auf einmal und nur die Seiten, die die Frage braucht.
So haben wir diese Seite getestet
Wir haben jeden Befehl dieser Seite am 2026-11-04 ausgeführt, mit searxNcrawl 0.33.1 und Crawl4AI 0.9.5, die MCP-Aufrufe mit dem MCP Inspector 2.13.0. Die Zahlen oben stammen aus diesen Läufen; sie schwanken mit Netz und Seite. Das Verhalten von Deduplizierung und Website-Crawls folgt der Dokumentation zum Website-Crawling von searxNcrawl. Crawl4AI ist ein Projekt seiner Maintainer; searxNcrawl steht in keiner Verbindung dazu.
Wir haben diese Angaben am 2026-11-04 anhand der verlinkten Quellen geprüft. Unsere Redaktions- und Korrekturrichtlinie beschreibt, wie wir sie aktuell halten und Fehler korrigieren.
Häufige Fragen
Was ist ein Webcrawler als MCP-Server?
Ein MCP-Server, über den ein KI-Agent Webseiten per Tool-Aufruf abruft und ihren Inhalt als Text zurückbekommt. searxNcrawl ist einer: Seine Tools crawl und crawl_site rendern Seiten in Chromium und liefern Markdown.
Hat Crawl4AI einen eigenen MCP-Server?
Ja. Der Docker-Server von Crawl4AI stellt MCP über SSE und WebSocket auf Port 11235 bereit, mit Tools wie md, screenshot und execute_js. searxNcrawl nutzt die Bibliothek Crawl4AI stattdessen als Python-Paket und ergänzt Websuche, Website-Crawls mit Limits und einen Setup-Befehl für MCP-Clients.
Wie viele Seiten liest crawl_site in einem Aufruf?
So viele, wie max_pages innerhalb von max_depth und dem Gesamt-Timeout zulässt; die Standardwerte sind Tiefe 2, 25 Seiten und 120 Sekunden. In unserem Test las es fünf Seiten der SearXNG-Dokumentation in 14,7 Sekunden.
Kann ein MCP-Crawler Seiten hinter einem Login lesen?
searxNcrawl kann das: Zeichnen Sie eine Browsersitzung einmal mit crawl-capture auf und übergeben Sie die gespeicherte Datei als storage_state an crawl oder crawl_site.