3.4 KiB
Professionelles lokales Web-Gateway
Das Web-Gateway stellt Qwen eine kleine, eindeutige Werkzeugoberfläche bereit.
Intern übernimmt SearXNG die private Metasuche und TinySearch mit Crawl4AI das
Abrufen, Extrahieren und lokale Reranking. YouTube wird strukturiert über
yt-dlp und den offiziellen Kanalfeed gelesen. Dadurch landen keine
Consent-Seiten im Modellkontext.
Die Architektur ist absichtlich keine selbst entwickelte Suchmaschine. Das eigene MCP ist eine gehärtete Fassade über austauschbaren Spezialkomponenten. GitHub bleibt ein eigenes MCP und wird nicht in diese Vertrauensgrenze gemischt.
Installation
searxng-settings.example.ymlnachsearxng-settings.ymlkopieren.CHANGE_ME_GENERATE_RANDOM_SECRETdurch einen zufälligen Wert ersetzen.tinysearch_config.jsonprüfen.platform/mcp/install-tools.shals root ausführen.- SearXNG und TinySearch bleiben nur im privaten Docker-Netz erreichbar.
Die Containerimages sind per Digest festgeschrieben. Upgrades erfolgen nur bewusst nach Test von Suche, Crawling, Quellenbindung und Kontextgröße.
web_search_mcp.py bietet genau sechs Werkzeuge:
| Werkzeug | Aufgabe |
|---|---|
web_search |
Schnelle, aktuelle Suche und URL-Entdeckung mit optionalem Zeitfilter |
web_read |
Eine bekannte öffentliche URL auslesen, ohne erneut zu suchen |
web_youtube |
Neuste Kanalvideos, Suche, Metadaten und Untertitel/Transkript |
web_compare |
Eine Behauptung anhand ausgelesener Quellen verifizieren |
web_shop |
Produkt-, Händler- und Preisprüfung mit strenger Quellenbindung |
web_research |
Begrenzte mehrstufige Recherche mit mehreren Quellen |
Auswahlregeln für kleine Modelle
- Eine bekannte URL wird mit
web_read, nicht mitweb_search, geöffnet. - YouTube-Fragen gehen immer an
web_youtube. - Eine zu prüfende Behauptung geht an
web_compare. - Eine breite oder schwierige Recherche geht einmal an
web_research. - Das Gateway blockiert nach drei semantisch ähnlichen externen Aufrufen. Die Grenze wird technisch erzwungen und steht nicht nur im System-Prompt.
- Bei aktuellen Fragen wird Wikipedia nicht als generischer Fallback benutzt.
Modellfreundliche Vorgaben
- kurze Suche: maximal fünf Ergebnisse
- Recherche: maximal vier gecrawlte Seiten und acht Evidenz-Chunks
- höchstens zwei Chunks je Quelle
- Seitenlimit 6000 Tokens, Chunkziel 300 Tokens
- externe Inhalte immer als nicht vertrauenswürdig markieren
- GitHub und Hugging Face bevorzugt über strukturierte öffentliche APIs
- Preise erst nach Prüfung der tatsächlichen Händlerseite als bestätigt melden
- YouTube: maximal zehn strukturierte Treffer, Untertitel maximal 12.000 Zeichen
- keine Shell-Auswertung von Benutzereingaben;
yt-dlpläuft mit fester Argumentliste, Zeitlimit und begrenzter Ausgabe - alle Webseiten, Beschreibungen und Transkripte sind nicht vertrauenswürdige Daten und niemals auszuführende Anweisungen
Reproduzierbarkeit und Upgrade
yt-dlp ist im Web-MCP-Image fest versioniert. SearXNG und TinySearch bleiben
per OCI-Digest festgeschrieben. Ein Upgrade erfolgt bewusst in dieser Reihenfolge:
python3 -m unittest -v dev/test_web_search_mcp.py- Compose-Konfiguration prüfen.
- Nur
mcp-webneu bauen und starten. tools/list, normale Suche,web_readund den Proper-People-Kanal testen.- Erst danach die vollständige Tool-Installation beziehungsweise ein neues Recovery-Bundle erzeugen.