Skip to main content
Glama
AngelN-Halo

MCP Web Search Pro

by AngelN-Halo

MCP Web Search Pro

Ein erweiterter, selbst gehosteter Web-Recherche-Server für MCP-kompatible Clients. Er bietet einem KI-Assistenten Werkzeuge zum Auffinden von Webseiten, Extrahieren lesbaren Inhalts, Rendern von JavaScript-Anwendungen, Nutzung des Internet Archive, wenn eine Seite nicht verfügbar ist, und Lesen von YouTube-Untertiteln.

Der Dienst ist für die lokale Nutzung oder in einem vertrauenswürdigen Netzwerk ausgelegt. Er ist zustandslos, benötigt keine API-Schlüssel und stellt den MCP Streamable HTTP Transport auf Port 8082 bereit. Er kann neben einem leichteren Web-Search-MCP-Server auf einem anderen Port betrieben werden.

Läuft als separater Container auf Port 8082 neben dem leichten mcp-web-search (Port 8081). Clients können je nach Aufgabe auf den passenden Server verweisen – falls Pro träge wirkt, steht der leichte Server unverändert zur Verfügung.

Funktionen

  • Websuche über DuckDuckGo mit Ergebnisbegrenzung und Regionsauswahl.

  • Lesbare HTML-Extraktion in Markdown, mit Entfernung von Navigation und Standardtext.

  • Automatische PDF-Erkennung und Textextraktion.

  • Headless Chromium Rendering für React, Vue, SPA und andere JS-lastige Seiten.

  • Wayback Machine Snapshots für nicht verfügbare oder geänderte Seiten.

  • YouTube-Transkripte aus URLs oder Video-IDs, optional mit Zeitstempeln.

  • /health-Endpunkt für Container- und Prozessprüfungen.

  • Zustandslose Streamable HTTP- und stdio-MCP-Transports.

Related MCP server: Basic MCP Tools

MCP-Werkzeuge

Werkzeug

Beschreibung

web_search

Suche im Web über DuckDuckGo (ddgs). Argumente: query (erforderlich), max_results (1–20), region.

web_fetch

URL abrufen → Markdown. Erkennt automatisch PDFs und extrahiert Text. Verwendet trafilatura für saubere Artikel-Extraktion (entfernt Navigation/Werbung/Standardtext). Argumente: url, timeout.

web_fetch_js

Rendert eine JS-lastige / SPA-Seite mit Headless Chromium und extrahiert dann Text. Verwenden, wenn web_fetch eine leere oder unvollständige Seite zurückgibt. Langsamer (~5–15s). Argumente: url, wait_ms (0–15000, Standard 2500), timeout.

web_fetch_archive

Ruft den neuesten (oder zeitgestempelten) archivierten Snapshot einer URL vom Wayback Machine ab. Wiederholt bei vorübergehenden 503ern. Argumente: url, timestamp (optional YYYYMMDDhhmm).

youtube_transcript

Ruft das Transkript eines YouTube-Videos ab. Akzeptiert eine vollständige YouTube-URL oder eine reine 11-Zeichen-Video-ID. Argumente: url, include_timestamps (bool, Standard false).

Verwenden Sie web_fetch für normale Seiten, da es schneller ist. Verwenden Sie web_fetch_js, wenn das erste Werkzeug eine leere Hülle oder unvollständigen Inhalt zurückgibt, weil die Website auf clientseitiges JavaScript angewiesen ist.

Mit Docker ausführen

docker compose up -d --build

Überprüfen:

curl http://localhost:8082/health      # → {"status":"ok"}

Logs / Neustart / Stopp:

docker compose logs -f
docker compose restart
docker compose down

Der erste Build ist groß (~400MB), da Chromium für Playwright heruntergeladen wird. Nachfolgende Builds verwenden die zwischengespeicherte Ebene.

Clients verbinden

Weisen Sie jeden MCP-kompatiblen Client auf Folgendes:

http://<server-host>:8082/mcp

Es sind keine Header oder API-Schlüssel erforderlich. Der Server läuft im zustandslosen Modus.

Lokal ohne Docker ausführen

Python 3.12 wird empfohlen:

python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
playwright install --with-deps chromium
python server.py

Führen Sie den HTTP-Transport direkt aus mit:

python server.py --sse --host 127.0.0.1 --port 8082

Trotz des historischen --sse-Optionsnamens verwendet die HTTP-Implementierung den zustandslosen MCP Streamable HTTP Transport.

Leistungshinweise

  • Nur web_fetch_js ist zur Laufzeit schwer – es startet Chromium pro Aufruf (~5–15s). Die anderen vier Werkzeuge sind leichtgewichtig und bleiben flott.

  • shm_size: 1gb in docker-compose.yml verhindert Chromium-Sandbox-Abstürze im Container.

  • Für normale Seiten ohne JS verwenden Sie web_fetch (schnell); reservieren Sie web_fetch_js für React/Vue/SPA-Seiten, die Inhalte mit JavaScript rendern.

Konfiguration

Um den Port zu ändern, bearbeiten Sie sowohl die ports:-Zuordnung als auch die command:-Zeile in docker-compose.yml. Um das Raw-Request/Response-Logging zum Debuggen zu aktivieren, wechseln Sie zur auskommentierten --verbose-command:-Zeile.

Validierung

Dieses Repository ist als Quellcode und Docker-Build-Konfiguration zum Pushen gedacht. Derzeit gibt es keine automatisierte Testsuite. Die empfohlenen Projektprüfungen sind:

git diff --check
docker compose config
docker compose up -d --build
curl http://localhost:8082/health
docker compose logs --tail=100
docker compose down

Veröffentlichen Sie diesen Dienst nicht direkt im öffentlichen Internet, ohne eine Authentifizierung hinzuzufügen oder ihn hinter einem vertrauenswürdigen Reverse-Proxy zu platzieren. Der HTTP-Modus bindet an 0.0.0.0, erlaubt Anfragen ohne API-Schlüssel und erlaubt alle Ursprünge; das ist praktisch für lokale MCP-Clients, aber keine Zugriffskontrollschicht.

Sicherheits- und Betriebshinweise

  • web_fetch und web_fetch_js können beliebige HTTP(S)-URLs anfordern. Schränken Sie den Netzwerkzugriff ein oder fügen Sie URL/DNS-Sicherungen hinzu, wenn nicht vertrauenswürdige Benutzer den Dienst aufrufen können.

  • Lassen Sie --verbose außerhalb kurzer lokaler Debugging-Sitzungen deaktiviert, da es Anforderungs- und Antwortkörper protokolliert.

  • Abhängigkeiten verwenden Mindestversionsbeschränkungen. Sperren oder fixieren Sie Versionen, bevor Sie sich auf reproduzierbare Produktions-Builds verlassen.

Dateien

  • server.py – der MCP-Server (5 Werkzeuge)

  • requirements.txtmcp, httpx, beautifulsoup4, markdownify, ddgs, trafilatura, pypdf, youtube-transcript-api, playwright

  • Dockerfile – Python 3.12-slim + Playwright Chromium

  • docker-compose.yml – Dienst auf Port 8082 mit shm_size: 1gb

Lizenz

Derzeit ist keine Lizenzdatei enthalten. Fügen Sie eine Lizenz hinzu, bevor Sie externe Beiträge annehmen oder das Projekt weiterverbreiten.

F
license - not found
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • A
    license
    -
    quality
    A
    maintenance
    Zero-auth multi-source research MCP server that enables web search, reading URLs, PDFs, GitHub repos, and querying Hacker News, Stack Overflow, Semantic Scholar, and YouTube transcripts without API keys.
    10
    Apache 2.0
  • F
    license
    -
    quality
    B
    maintenance
    A self-hosted MCP server providing private web search, web page fetching, and current date/time tools, powered by a bundled SearXNG instance for API-key-free local search.
    2
  • A
    license
    -
    quality
    C
    maintenance
    A fully local MCP server that provides web search via self-hosted SearXNG and page-to-markdown conversion (static and JS-rendered), all aggregated behind a single endpoint for use with AI assistants.
    MIT
  • A
    license
    -
    quality
    B
    maintenance
    MCP server enabling local-first web search, fetch, extract, and caching with citeable excerpts, no API key required. Supports research workflows for agents and apps.
    323
    MIT

View all related MCP servers

Related MCP Connectors

  • An MCP server for deep research or task groups

  • Search your AI chat history (ChatGPT, Claude, Codex) from any MCP client. Remote, private, read-only

  • An MCP server that gives your AI access to the source code and docs of all public github repos

View all MCP Connectors

Latest Blog Posts

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/AngelN-Halo/mcp-web-search-pro'

If you have feedback or need assistance with the MCP directory API, please join our Discord server