Last translated: 26 Jun 2025

Translation Not Available Yet

This repository's README hasn't been translated yet. Once translated, it will be easier to read and understand in your native language (中文).

After translating, add the links to README so others can view it directly.

Fetcher MCP Icon

中文 | Deutsch | Español | français | 日本語 | 한국어 | Português | Русский

Fetcher MCP

MCP-Server zum Abrufen von Webseiteninhalten mit dem Playwright-Headless-Browser.

🌟 Empfohlen: OllaMan - Leistungsstarker Ollama AI Model Manager.

Vorteile

  • JavaScript-Unterstützung: Im Gegensatz zu traditionellen Web-Scraping-Tools nutzt Fetcher MCP Playwright zur Ausführung von JavaScript, wodurch dynamische Webinhalte und moderne Webanwendungen verarbeitet werden können.

  • Intelligente Inhaltserkennung: Integrierter Readability-Algorithmus extrahiert automatisch den Hauptinhalt von Webseiten und entfernt Werbung, Navigation und andere nicht wesentliche Elemente.

  • Flexibles Ausgabeformat: Unterstützt sowohl HTML- als auch Markdown-Ausgabeformate, was die Integration mit verschiedenen Anwendungen erleichtert.

  • Parallele Verarbeitung: Das Tool fetch_urls ermöglicht das gleichzeitige Abrufen mehrerer URLs, was die Effizienz bei Batch-Operationen deutlich erhöht.

  • Ressourcenoptimierung: Blockiert automatisch unnötige Ressourcen (Bilder, Stylesheets, Schriftarten, Medien), um Bandbreite zu sparen und die Leistung zu verbessern.

  • Robuste Fehlerbehandlung: Umfassende Fehlerbehandlung und Protokollierung gewährleisten zuverlässigen Betrieb, selbst bei problematischen Webseiten.

  • Konfigurierbare Parameter: Fein abgestimmte Kontrolle über Timeouts, Inhaltserkennung und Ausgabeformatierung für verschiedene Anwendungsfälle.

Schnellstart

Direkt mit npx ausführen:

npx -y fetcher-mcp

Ersteinrichtung - Installieren Sie den erforderlichen Browser durch Ausführen des folgenden Befehls im Terminal:

npx playwright install chromium

HTTP- und SSE-Transport

Verwenden Sie den Parameter --transport=http, um sowohl den streamfähigen HTTP-Endpunkt als auch den SSE-Endpunkt gleichzeitig zu starten:

npx -y fetcher-mcp --log --transport=http --host=0.0.0.0 --port=3000

Nach dem Start bietet der Server folgende Endpunkte:

  • /mcp - Streamfähiger HTTP-Endpunkt (modernes MCP-Protokoll)
  • /sse - SSE-Endpunkt (veraltetes MCP-Protokoll)

Clients können je nach Bedarf die Verbindungsmethode wählen.

Debug-Modus

Führen Sie mit der Option --debug aus, um das Browserfenster zur Fehlersuche anzuzeigen:

npx -y fetcher-mcp --debug

MCP konfigurieren

Konfigurieren Sie diesen MCP-Server in Claude Desktop:

Auf MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json

Auf Windows: %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "fetcher": {
      "command": "npx",
      "args": ["-y", "fetcher-mcp"]
    }
  }
}

Docker-Bereitstellung

Ausführung mit Docker

docker run -p 3000:3000 ghcr.io/jae-jae/fetcher-mcp:latest

Bereitstellung mit Docker Compose

Erstellen Sie eine docker-compose.yml-Datei:

version: "3.8"

services:
  fetcher-mcp:
    image: ghcr.io/jae-jae/fetcher-mcp:latest
    container_name: fetcher-mcp
    restart: unless-stopped
    ports:
      - "3000:3000"
    environment:
      - NODE_ENV=production
    # Using host network mode on Linux hosts can improve browser access efficiency
    # network_mode: "host"
    volumes:
      # For Playwright, may need to share certain system paths
      - /tmp:/tmp
    # Health check
    healthcheck:
      test: ["CMD", "wget", "--spider", "-q", "http://localhost:3000"]
      interval: 30s
      timeout: 10s
      retries: 3

Dann ausführen:

docker-compose up -d

Funktionen

  • fetch_url - Ruft Webseiteninhalte von einer bestimmten URL ab

    • Verwendet Playwright-Headless-Browser zur JavaScript-Verarbeitung
    • Unterstützt intelligente Extraktion des Hauptinhalts und Konvertierung in Markdown
    • Unterstützt folgende Parameter:
      • url: Die abzurufende Webseiten-URL (erforderlicher Parameter)
      • timeout: Timeout für das Laden der Seite in Millisekunden, Standard ist 30000 (30 Sekunden)
      • waitUntil: Legt fest, wann die Navigation als abgeschlossen gilt, Optionen: 'load', 'domcontentloaded', 'networkidle', 'commit', Standard ist 'load'
      • extractContent: Ob der Hauptinhalt intelligent extrahiert werden soll, Standard ist true
      • maxLength: Maximale Länge des zurückgegebenen Inhalts (in Zeichen), Standard ist keine Begrenzung
      • returnHtml: Ob HTML-Inhalt statt Markdown zurückgegeben werden soll, Standard ist false
      • waitForNavigation: Ob auf zusätzliche Navigation nach dem ersten Laden der Seite gewartet werden soll (nützlich für Seiten mit Anti-Bot-Verifizierung), Standard ist false
      • navigationTimeout: Maximale Wartezeit für zusätzliche Navigation in Millisekunden, Standard ist 10000 (10 Sekunden)
      • disableMedia: Ob Medienressourcen deaktiviert werden sollen (Bilder, Stylesheets, Schriftarten, Medien), Standard ist true
      • debug: Ob der Debug-Modus aktiviert werden soll (Browserfenster anzeigen), überschreibt das --debug-Kommandozeilenflag, falls angegeben
  • fetch_urls - Ruft parallel Webseiteninhalte von mehreren URLs ab

    • Verwendet Multi-Tab-Parallelabruf für bessere Leistung
    • Gibt kombinierte Ergebnisse mit klarer Trennung zwischen Webseiten zurück
    • Unterstützt folgende Parameter:
      • urls: Array von abzurufenden URLs (erforderlicher Parameter)
      • Andere Parameter sind identisch mit fetch_url

Tipps

Umgang mit speziellen Website-Szenarien

Anti-Crawler-Mechanismen

  • Auf vollständiges Laden warten: Für Websites mit CAPTCHA, Weiterleitungen oder anderen Verifizierungsmechanismen, fügen Sie in Ihre Eingabeaufforderung ein:

    Bitte warten Sie, bis die Seite vollständig geladen ist
    

    Dies verwendet den Parameter waitForNavigation: true.

  • Timeout erhöhen: Für langsam ladende Websites:

    Bitte setzen Sie das Lade-Timeout auf 60 Sekunden
    

    Passt sowohl timeout als auch navigationTimeout entsprechend an.

Anpassungen der Inhaltsabfrage

  • Originale HTML-Struktur beibehalten: Wenn die Inhaltserkennung fehlschlagen könnte:

    Bitte behalten Sie die originale HTML-Struktur bei
    

    Setzt extractContent: false und returnHtml: true.

  • Kompletten Seiteninhalt abrufen: Wenn der extrahierte Inhalt zu begrenzt ist:

    Bitte rufen Sie den kompletten Webseiteninhalt statt nur des Hauptinhalts ab
    

    Setzt extractContent: false.

  • Inhalt als HTML zurückgeben: Wenn HTML-Format statt Standard-Markdown benötigt wird:

    Bitte geben Sie den Inhalt im HTML-Format zurück
    

    Setzt returnHtml: true.

Fehlersuche und Authentifizierung

Debug-Modus aktivieren

  • Dynamische Debug-Aktivierung: Um das Browserfenster während eines bestimmten Abrufvorgangs anzuzeigen:
    Bitte aktivieren Sie den Debug-Modus für diesen Abrufvorgang
    
    Setzt debug: true, selbst wenn der Server ohne das --debug-Flag gestartet wurde.

Benutzerdefinierte Cookies für Authentifizierung verwenden

  • Manuelle Anmeldung: Um sich mit eigenen Anmeldedaten anzumelden:

    Bitte führen Sie im Debug-Modus aus, damit ich mich manuell auf der Website anmelden kann
    

    Setzt debug: true oder verwendet das --debug-Flag, wodurch das Browserfenster für die manuelle Anmeldung geöffnet bleibt.

  • Interaktion mit Debug-Browser: Wenn der Debug-Modus aktiviert ist:

    1. Das Browserfenster bleibt geöffnet
    2. Sie können sich manuell mit Ihren Anmeldedaten auf der Website anmelden
    3. Nach erfolgreicher Anmeldung wird der Inhalt mit Ihrer authentifizierten Sitzung abgerufen
  • Debug für bestimmte Anfragen aktivieren: Selbst wenn der Server bereits läuft, können Sie den Debug-Modus für eine bestimmte Anfrage aktivieren:

    Bitte aktivieren Sie den Debug-Modus für diesen Authentifizierungsschritt
    

    Setzt debug: true nur für diese spezifische Anfrage und öffnet das Browserfenster für die manuelle Anmeldung.

Entwicklung

Abhängigkeiten installieren

npm install

Playwright-Browser installieren

Installieren Sie die für Playwright benötigten Browser:

npm run install-browser

Server erstellen

npm run build

Fehlersuche

Verwenden Sie MCP Inspector für die Fehlersuche:

npm run inspector

Sie können auch den sichtbaren Browser-Modus für die Fehlersuche aktivieren:

node build/index.js --debug

Verwandte Projekte

  • g-search-mcp: Ein leistungsstarker MCP-Server für Google-Suche, der parallele Suche mit mehreren Schlüsselwörtern ermöglicht. Ideal für Batch-Suchoperationen und Datenerfassung.

Lizenz

Lizenziert unter der MIT-Lizenz

Powered by DartNode