Utilisez l’API Firecrawl via le Model Context Protocol
Une implémentation de serveur Model Context Protocol (MCP) intégrant Firecrawl pour la recherche, le scraping et l’interaction avec le web. Notre serveur MCP est open source et disponible sur GitHub.
Configuration de Cursor 🖥️
Remarque : nécessite Cursor version 0.45.6+
Pour des instructions de configuration à jour, consultez la documentation officielle de Cursor sur la configuration des serveurs MCP :
Guide de configuration du serveur MCP de CursorPour configurer Firecrawl MCP dans Cursor v0.48.6
Si vous utilisez Windows et rencontrez des problèmes, essayez cmd /c "set FIRECRAWL_API_KEY=your-api-key && npx -y firecrawl-mcp"
Remplacez your-api-key par votre clé API Firecrawl. Si vous n’en avez pas encore, créez un compte et récupérez-la via https://www.firecrawl.dev/app/api-keysAprès l’ajout, actualisez la liste des serveurs MCP pour voir les nouveaux outils. Le Composer Agent utilisera automatiquement Firecrawl MCP lorsque c’est pertinent, mais vous pouvez aussi le demander explicitement en décrivant vos besoins en données web. Accédez au Composer via Command+L (Mac), sélectionnez « Agent » à côté du bouton d’envoi, puis saisissez votre requête.
Pour une installation en un clic, cliquez sur l’un des boutons d’installation ci-dessous…Pour une installation manuelle, ajoutez le bloc JSON suivant à votre fichier de paramètres utilisateur (JSON) dans VS Code. Vous pouvez le faire en appuyant sur Ctrl + Shift + P et en tapant Preferences: Open User Settings (JSON).
Vous pouvez également l’ajouter à un fichier nommé .vscode/mcp.json dans votre espace de travail. Cela vous permettra de partager la configuration avec d’autres :
Remarque : Certains utilisateurs ont signalé des problèmes lors de l’ajout du serveur MCP à VS Code, du fait que VS Code valide le JSON à l’aide d’un format de schéma obsolète (microsoft/vscode#155379).
Cela affecte plusieurs outils MCP, dont Firecrawl.Solution de contournement : Désactivez la validation JSON dans VS Code pour permettre au serveur MCP de se charger correctement.
Voir la discussion : directus/directus#25906 (commentaire).Le serveur MCP continue de fonctionner correctement lorsqu’il est invoqué via d’autres extensions, mais le problème se produit spécifiquement lors de son enregistrement directement dans la liste des serveurs MCP. Nous prévoyons d’ajouter des recommandations une fois que VS Code aura mis à jour la validation de son schéma.
Si vous obtenez une erreur “Couldn’t reach the MCP server”, il se peut que votre version de Claude Desktop ne prenne pas en charge le transport HTTP en streaming. Utilisez plutôt l’approche locale avec npx (nécessite Node.js) :
Si vous voyez une erreur spawn npx ENOENT, Node.js n’est pas installé ou ne figure pas dans le PATH de votre système. Installez Node.js depuis nodejs.org (version LTS), puis redémarrez complètement Claude Desktop. Sous Windows, vous pouvez également exécuter where npx dans l’Invite de commandes et utiliser le chemin complet (par ex. C:\\Program Files\\nodejs\\npx.cmd) comme valeur de command.
Pour Tools to include, vous pouvez sélectionner All, Selected ou All Except – cela rendra disponibles les outils Firecrawl (scrape, crawl, map, search, extract, etc.)
Pour les déploiements auto-hébergés, exécutez le serveur MCP avec npx et activez le mode de transport HTTP :
Cela démarre le serveur sur http://localhost:3000/v2/mcp, que vous pouvez utiliser comme endpoint dans votre workflow n8n. La variable d’environnement HTTP_STREAMABLE_SERVER=true est requise, car n8n a besoin d’un transport via HTTP.
Pour l’utilisation de l’API cloud avec des tentatives de reprise personnalisées et le suivi des crédits :
# Requis pour l’API cloudexport FIRECRAWL_API_KEY=your-api-key# Paramètres de nouvelle tentative (facultatif)export FIRECRAWL_RETRY_MAX_ATTEMPTS=5 # Augmenter le nombre maximal de tentativesexport FIRECRAWL_RETRY_INITIAL_DELAY=2000 # Commencer avec un délai de 2 sexport FIRECRAWL_RETRY_MAX_DELAY=30000 # Délai maximal de 30 sexport FIRECRAWL_RETRY_BACKOFF_FACTOR=3 # Backoff plus agressif# Surveillance des crédits (facultatif)export FIRECRAWL_CREDIT_WARNING_THRESHOLD=2000 # Avertissement à 2000 créditsexport FIRECRAWL_CREDIT_CRITICAL_THRESHOLD=500 # Seuil critique à 500 crédits
Pour une instance auto‑hébergée :
# Requis pour l’auto‑hébergementexport FIRECRAWL_API_URL=https://firecrawl.your-domain.com# Authentification facultative pour l’auto‑hébergementexport FIRECRAWL_API_KEY=your-api-key # Si votre instance requiert une authentification# Configuration personnalisée des tentativesexport FIRECRAWL_RETRY_MAX_ATTEMPTS=10export FIRECRAWL_RETRY_INITIAL_DELAY=500 # Démarrer avec des tentatives plus rapides
Le serveur comporte plusieurs paramètres configurables pouvant être définis via des variables d’environnement. Voici les valeurs par défaut lorsqu’ils ne sont pas configurés :
const CONFIG = { retry: { maxAttempts: 3, // Number of retry attempts for rate-limited requests initialDelay: 1000, // Initial delay before first retry (in milliseconds) maxDelay: 10000, // Maximum delay between retries (in milliseconds) backoffFactor: 2, // Multiplier for exponential backoff }, credit: { warningThreshold: 1000, // Warn when credit usage reaches this level criticalThreshold: 100, // Alerte critique lorsque l'utilisation des crédits atteint ce niveau },};
Ces paramètres contrôlent :
Comportement de réessai
Réessaie automatiquement les requêtes ayant échoué à cause des limites de débit
Utilise un backoff exponentiel pour éviter de surcharger l’API
Exemple : avec les paramètres par défaut, les réessais seront effectués aux intervalles suivants :
1ʳᵉ tentative de réessai : délai de 1 seconde
2ᵉ tentative de réessai : délai de 2 secondes
3ᵉ tentative de réessai : délai de 4 secondes (plafonné par maxDelay)
Suivi de la consommation de crédits
Suit la consommation de crédits de l’API pour l’utilisation de l’API cloud
Fournit des avertissements à des seuils définis
Aide à éviter les interruptions de service inattendues
search: Terme de recherche facultatif pour filtrer les URL
sitemap: Contrôle l’utilisation du sitemap : « include », « skip » ou « only »
includeSubdomains: Indique s’il faut inclure les sous-domaines dans la cartographie
limit: Nombre maximal d’URL à retourner
ignoreQueryParameters: Indique s’il faut ignorer les paramètres de requête lors de la cartographie
Idéal pour : Découvrir les URL d’un site web avant de décider quoi extraire ; trouver des sections spécifiques d’un site.
Renvoie : Tableau d’URL trouvées sur le site.
Extrait des informations structurées depuis des pages web en utilisant les capacités des LLM. Prend en charge aussi bien l’IA dans le cloud que l’extraction avec des LLM auto-hébergés.
urls: Liste d’URL à partir desquelles extraire des informations
prompt: Prompt personnalisé pour l’extraction par le LLM
schema: Schéma JSON pour l’extraction de données structurées
allowExternalLinks: Autoriser l’extraction à partir de liens externes
enableWebSearch: Activer la recherche sur le web pour obtenir un contexte supplémentaire
includeSubdomains: Inclure les sous-domaines dans l’extraction
Lors de l’utilisation d’une instance auto‑hébergée, l’extraction utilisera le LLM que vous avez configuré. Pour l’API cloud, elle utilise le service LLM géré de Firecrawl.
Agent autonome de recherche web qui parcourt Internet de manière indépendante, recherche des informations, navigue entre les pages et extrait des données structurées en fonction de votre requête. Ce processus s’exécute de façon asynchrone : il renvoie immédiatement un ID de job, puis vous interrogez périodiquement firecrawl_agent_status pour savoir quand il est terminé et récupérer les résultats.
{ "name": "firecrawl_agent", "arguments": { "prompt": "Find the top 5 AI startups founded in 2024 and their funding amounts", "schema": { "type": "object", "properties": { "startups": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string" }, "funding": { "type": "string" }, "founded": { "type": "string" } } } } } } }}
Vous pouvez également fournir des URL spécifiques sur lesquelles l’agent devra se concentrer :
{ "name": "firecrawl_agent", "arguments": { "urls": ["https://docs.firecrawl.dev", "https://firecrawl.dev/pricing"], "prompt": "Compare the features and pricing information from these pages" }}
prompt: Description en langage naturel des données dont vous avez besoin (obligatoire, 10 000 caractères maximum)
urls: Tableau optionnel d’URL pour concentrer l’agent sur des pages spécifiques
schema: Schéma JSON optionnel pour une sortie structurée
Idéal pour : Tâches de recherche complexes où vous ne connaissez pas les URL exactes ; collecte de données issues de multiples sources ; recherche d’informations dispersées sur le web ; extraction de données à partir de SPA lourdes en JavaScript qui échouent avec un scraping classique.Retourne : ID de tâche pour vérifier l’état d’avancement. Utilisez firecrawl_agent_status pour interroger les résultats.
8. Vérifier l’état de l’agent (firecrawl_agent_status)
Vérifiez l’état d’une tâche d’agent et récupérez les résultats une fois terminée. Effectuez un polling toutes les 15 à 30 secondes et continuez pendant au moins 2 à 3 minutes avant de considérer la requête comme échouée.
ttl : Durée de vie totale de la session en secondes (30-3600, facultatif)
activityTtl : Délai d’inactivité en secondes (10-3600, facultatif)
Idéal pour : exécuter du code (Python/JS) qui interagit avec une page de navigateur active, l’automatisation du navigateur en plusieurs étapes, des sessions avec profils qui restent valides sur plusieurs appels d’outils.Renvoie : ID de session, URL CDP et URL de vue en direct.
13. Interact avec une page déjà scrapée (firecrawl_interact)
Interactez avec une page précédemment scrapée dans une session de navigateur en direct. Scrapez d’abord une page avec firecrawl_scrape, puis utilisez le scrapeId renvoyé (dans les métadonnées de la réponse de scrape) pour cliquer sur des boutons, remplir des formulaires, extraire du contenu dynamique ou naviguer plus en profondeur. La réponse inclut un liveViewUrl et un interactiveLiveViewUrl que vous pouvez ouvrir dans votre navigateur pour suivre ou contrôler la session en temps réel.
{ "name": "firecrawl_interact", "arguments": { "scrapeId": "scrape-id-from-previous-scrape", "prompt": "Click the Sign In button" }}
scrapeId : L’ID de tâche d’une tâche de scraping issue d’un appel précédent à firecrawl_scrape (obligatoire)
prompt : Instruction en langage naturel décrivant l’action à effectuer (fournissez prompt ou code)
code : Code à exécuter dans la session de navigateur (fournissez code ou prompt)
language : bash, python ou node (facultatif, valeur par défaut : node, utilisé uniquement avec code)
timeout : Délai d’exécution maximal, en secondes, de 1 à 300 (facultatif, valeur par défaut : 30)
Idéal pour : Les workflows en plusieurs étapes sur une seule page — effectuer des recherches sur un site, cliquer dans les résultats, remplir des formulaires, extraire des données nécessitant une interaction.Renvoie : Le résultat de l’interaction, y compris liveViewUrl et interactiveLiveViewUrl.
[INFO] Firecrawl MCP Server initialized successfully[INFO] Starting scrape for URL: https://example.com[INFO] Starting crawl for URL: https://example.com[WARNING] L'utilisation des crédits a atteint le seuil d'alerte[ERROR] Rate limit exceeded, retrying in 2s...