中文 | Deutsch | Español | français | 日本語 | 한국어 | Português | Русский
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.
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.
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
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.
Exécutez avec l'option --debug
pour afficher la fenêtre du navigateur pour le débogage :
npx -y fetcher-mcp --debug
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"]
}
}
}
docker run -p 3000:3000 ghcr.io/jae-jae/fetcher-mcp:latest
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
fetch_url
- Récupère le contenu d'une page web à partir d'une URL spécifiée
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 truemaxLength
: Longueur maximale du contenu retourné (en caractères), par défaut aucune limitereturnHtml
: Indique s'il faut retourner le contenu HTML au lieu de Markdown, par défaut falsewaitForNavigation
: 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 falsenavigationTimeout
: 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 truedebug
: 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
urls
: Tableau d'URLs à récupérer (paramètre obligatoire)fetch_url
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.
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
.
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
.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é :
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.
npm install
Installez les navigateurs nécessaires pour Playwright :
npm run install-browser
npm run build
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
Sous licence MIT License