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

Serveur MCP pour récupérer le contenu de pages web en utilisant le navigateur headless Playwright.

🌟 Recommandé : OllaMan - Puissant gestionnaire de modèles d'IA Ollama.

Avantages

  • Prise en charge de JavaScript : Contrairement aux scrapers web traditionnels, Fetcher MCP utilise Playwright pour exécuter JavaScript, ce qui lui permet de gérer du contenu web dynamique et des applications web modernes.

  • Extraction intelligente du contenu : Algorithme Readability intégré pour extraire automatiquement le contenu principal des pages web, en supprimant les publicités, la navigation et autres éléments non essentiels.

  • Format de sortie flexible : Prend en charge les formats de sortie HTML et Markdown, facilitant l'intégration avec diverses applications en aval.

  • Traitement parallèle : L'outil fetch_urls permet de récupérer plusieurs URL simultanément, améliorant considérablement l'efficacité des opérations par lots.

  • Optimisation des ressources : Bloque automatiquement les ressources inutiles (images, feuilles de style, polices, médias) pour réduire l'utilisation de la bande passante et améliorer les performances.

  • Gestion robuste des erreurs : Gestion complète des erreurs et journalisation pour un fonctionnement fiable même avec des pages web problématiques.

  • Paramètres configurables : Contrôle précis des délais d'attente, de l'extraction de contenu et du formatage de sortie pour s'adapter à différents cas d'utilisation.

Démarrage rapide

Exécutez directement avec npx :

npx -y fetcher-mcp

Configuration initiale - installez le navigateur requis en exécutant la commande suivante dans votre terminal :

npx playwright install chromium

Transport HTTP et SSE

Utilisez le paramètre --transport=http pour démarrer simultanément les services de point de terminaison HTTP streamable et SSE :

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

Après le démarrage, le serveur fournit les points de terminaison suivants :

  • /mcp - Point de terminaison HTTP streamable (protocole MCP moderne)
  • /sse - Point de terminaison SSE (protocole MCP hérité)

Les clients peuvent choisir la méthode de connexion en fonction de leurs besoins.

Mode débogage

Exécutez avec l'option --debug pour afficher la fenêtre du navigateur pour le débogage :

npx -y fetcher-mcp --debug

Configuration MCP

Configurez ce serveur MCP dans Claude Desktop :

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

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

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

Déploiement Docker

Exécution avec Docker

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

Déploiement avec Docker Compose

Créez un fichier docker-compose.yml :

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

Puis exécutez :

docker-compose up -d

Fonctionnalités

  • fetch_url - Récupère le contenu d'une page web à partir d'une URL spécifiée

    • Utilise le navigateur headless Playwright pour analyser JavaScript
    • Prend en charge l'extraction intelligente du contenu principal et la conversion en Markdown
    • Prend en charge les paramètres suivants :
      • url : URL de la page web à récupérer (paramètre obligatoire)
      • timeout : Délai d'attente de chargement de la page en millisecondes, par défaut 30000 (30 secondes)
      • waitUntil : Spécifie quand la navigation est considérée comme terminée, options : 'load', 'domcontentloaded', 'networkidle', 'commit', par défaut 'load'
      • extractContent : Indique s'il faut extraire intelligemment le contenu principal, par défaut true
      • maxLength : Longueur maximale du contenu retourné (en caractères), par défaut aucune limite
      • returnHtml : Indique s'il faut retourner le contenu HTML au lieu de Markdown, par défaut false
      • waitForNavigation : Indique s'il faut attendre une navigation supplémentaire après le chargement initial de la page (utile pour les sites avec vérification anti-bot), par défaut false
      • navigationTimeout : Temps maximum d'attente pour une navigation supplémentaire en millisecondes, par défaut 10000 (10 secondes)
      • disableMedia : Indique s'il faut désactiver les ressources multimédias (images, feuilles de style, polices, médias), par défaut true
      • debug : Indique s'il faut activer le mode débogage (affichage de la fenêtre du navigateur), remplace le drapeau --debug en ligne de commande si spécifié
  • fetch_urls - Récupère en parallèle le contenu de plusieurs pages web

    • Utilise le chargement parallèle multi-onglets pour améliorer les performances
    • Retourne des résultats combinés avec une séparation claire entre les pages web
    • Prend en charge les paramètres suivants :
      • urls : Tableau d'URLs à récupérer (paramètre obligatoire)
      • Les autres paramètres sont identiques à fetch_url

Astuces

Gestion des scénarios de sites web spéciaux

Gestion des mécanismes anti-scraping

  • Attendre le chargement complet : Pour les sites utilisant CAPTCHA, redirections ou autres mécanismes de vérification, incluez dans votre requête :

    Veuillez attendre que la page soit complètement chargée
    

    Cela utilisera le paramètre waitForNavigation: true.

  • Augmenter le délai d'attente : Pour les sites qui se chargent lentement :

    Veuillez définir le délai de chargement de la page à 60 secondes
    

    Cela ajuste les paramètres timeout et navigationTimeout en conséquence.

Ajustements de récupération de contenu

  • Préserver la structure HTML originale : Lorsque l'extraction de contenu peut échouer :

    Veuillez conserver le contenu HTML original
    

    Définit extractContent: false et returnHtml: true.

  • Récupérer le contenu complet de la page : Lorsque le contenu extrait est trop limité :

    Veuillez récupérer le contenu complet de la page web au lieu du seul contenu principal
    

    Définit extractContent: false.

  • Retourner le contenu en HTML : Lorsque le format HTML est nécessaire au lieu du Markdown par défaut :

    Veuillez retourner le contenu au format HTML
    

    Définit returnHtml: true.

Débogage et authentification

Activation du mode débogage

  • Activation dynamique du débogage : Pour afficher la fenêtre du navigateur lors d'une opération de récupération spécifique :
    Veuillez activer le mode débogage pour cette opération de récupération
    
    Définit debug: true même si le serveur a été démarré sans le drapeau --debug.

Utilisation de cookies personnalisés pour l'authentification

  • Connexion manuelle : Pour se connecter en utilisant vos propres identifiants :

    Veuillez exécuter en mode débogage pour que je puisse me connecter manuellement au site web
    

    Définit debug: true ou utilise le drapeau --debug, gardant la fenêtre du navigateur ouverte pour une connexion manuelle.

  • Interagir avec le navigateur de débogage : Lorsque le mode débogage est activé :

    1. La fenêtre du navigateur reste ouverte
    2. Vous pouvez vous connecter manuellement au site web en utilisant vos identifiants
    3. Après la connexion, le contenu sera récupéré avec votre session authentifiée
  • Activer le débogage pour des requêtes spécifiques : Même si le serveur est déjà en cours d'exécution, vous pouvez activer le mode débogage pour une requête spécifique :

    Veuillez activer le mode débogage pour cette étape d'authentification
    

    Définit debug: true pour cette requête spécifique uniquement, ouvrant la fenêtre du navigateur pour une connexion manuelle.

Développement

Installation des dépendances

npm install

Installation du navigateur Playwright

Installez les navigateurs nécessaires pour Playwright :

npm run install-browser

Construction du serveur

npm run build

Débogage

Utilisez MCP Inspector pour le débogage :

npm run inspector

Vous pouvez également activer le mode navigateur visible pour le débogage :

node build/index.js --debug

Projets associés

  • g-search-mcp : Un puissant serveur MCP pour la recherche Google permettant des recherches parallèles avec plusieurs mots-clés simultanément. Idéal pour les opérations de recherche par lots et la collecte de données.

Licence

Sous licence MIT License

Powered by DartNode