Passer au contenu principal
Une implémentation de serveur Model Context Protocol (MCP) intégrant Firecrawl pour le web scraping. Notre serveur MCP est open source et disponible sur GitHub.

Fonctionnalités

  • Scraping, crawling et découverte du web
  • Recherche et extraction de contenu
  • Recherche approfondie et scraping en lots
  • Prise en charge du cloud et de l’auto‑hébergement
  • Prise en charge du streaming HTTP

Installation

Vous pouvez utiliser notre URL hébergée ou exécuter le serveur en local. Récupérez votre clé API sur https://firecrawl.dev/app/api-keys

URL hébergée à distance

https://mcp.firecrawl.dev/{FIRECRAWL_API_KEY}/v2/mcp

Exécution via npx

env FIRECRAWL_API_KEY=fc-YOUR_API_KEY npx -y firecrawl-mcp

Installation manuelle

npm install -g firecrawl-mcp

Utilisation avec Cursor

Ajouter le serveur MCP Firecrawl à Cursor

Installation manuelle

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 Cursor Pour configurer Firecrawl MCP dans Cursor v0.48.6
  1. Ouvrez les paramètres de Cursor
  2. Allez dans Features > MCP Servers
  3. Cliquez sur ”+ Add new global MCP server”
  4. Saisissez le code suivant :
    {
      "mcpServers": {
        "firecrawl-mcp": {
          "command": "npx",
          "args": ["-y", "firecrawl-mcp"],
          "env": {
            "FIRECRAWL_API_KEY": "YOUR-API-KEY"
          }
        }
      }
    }
    
Pour configurer Firecrawl MCP dans Cursor v0.45.6
  1. Ouvrez les paramètres de Cursor
  2. Allez dans Features > MCP Servers
  3. Cliquez sur ”+ Add New MCP Server”
  4. Renseignez les éléments suivants :
    • Name: “firecrawl-mcp” (ou le nom de votre choix)
    • Type: “command”
    • Command: env FIRECRAWL_API_KEY=your-api-key npx -y firecrawl-mcp
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-keys Aprè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 web scraping. Accédez au Composer via Command+L (Mac), sélectionnez « Agent » à côté du bouton d’envoi, puis saisissez votre requête.

Exécuter sur Windsurf

Ajoutez ceci à votre ./codeium/windsurf/model_config.json :
{
  "mcpServers": {
    "mcp-server-firecrawl": {
      "command": "npx",
      "args": ["-y", "firecrawl-mcp"],
      "env": {
        "FIRECRAWL_API_KEY": "VOTRE_API_KEY"
      }
    }
  }
}

Exécution avec le mode HTTP en streaming

Pour exécuter le serveur localement en utilisant le transport HTTP en streaming au lieu du transport stdio par défaut :
env HTTP_STREAMABLE_SERVER=true FIRECRAWL_API_KEY=fc-YOUR_API_KEY npx -y firecrawl-mcp
Utilisez l’URL suivante : http://localhost:3000/v2/mcp ou https://mcp.firecrawl.dev/{FIRECRAWL_API_KEY}/v2/mcp

Installation via Smithery (ancienne méthode)

Pour installer Firecrawl pour Claude Desktop automatiquement via Smithery :
npx -y @smithery/cli install @mendableai/mcp-server-firecrawl --client claude

Utilisation avec VS Code

Pour une installation en un clic, cliquez sur l’un des boutons d’installation ci-dessous… Installer avec NPX dans VS Code Installer avec NPX dans VS Code Insiders 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).
{
  "mcp": {
    "inputs": [
      {
        "type": "promptString",
        "id": "apiKey",
        "description": "Clé API Firecrawl",
        "password": true
      }
    ],
    "servers": {
      "firecrawl": {
        "command": "npx",
        "args": ["-y", "firecrawl-mcp"],
        "env": {
          "FIRECRAWL_API_KEY": "${input:apiKey}"
        }
      }
    }
  }
}
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 :
{
  "inputs": [
    {
      "type": "promptString",
      "id": "apiKey",
      "description": "Clé API Firecrawl",
      "password": true
    }
  ],
  "servers": {
    "firecrawl": {
      "command": "npx",
      "args": ["-y", "firecrawl-mcp"],
      "env": {
        "FIRECRAWL_API_KEY": "${input:apiKey}"
      }
    }
  }
}
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.

Utilisation avec Claude Desktop

Ajoutez ce qui suit au fichier de configuration de Claude :
{
  "mcpServers": {
    "firecrawl": {
      "url": "https://mcp.firecrawl.dev/v2/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}

Utilisation avec Claude Code

Ajoutez le serveur MCP Firecrawl à l’aide de la CLI Claude Code :
claude mcp add firecrawl -e FIRECRAWL_API_KEY=your-api-key -- npx -y firecrawl-mcp

Utilisation avec Google Antigravity

Google Antigravity vous permet de configurer des serveurs MCP directement depuis son interface Agent. Installation MCP Antigravity
  1. Ouvrez la barre latérale Agent dans l’Editor ou la vue Agent Manager
  2. Cliquez sur le menu « … » (More Actions) et sélectionnez MCP Servers
  3. Sélectionnez View raw config pour ouvrir votre fichier local mcp_config.json
  4. Ajoutez la configuration suivante :
{
  "mcpServers": {
    "firecrawl": {
      "command": "npx",
      "args": ["-y", "firecrawl-mcp"],
      "env": {
        "FIRECRAWL_API_KEY": "YOUR_FIRECRAWL_API_KEY"
      }
    }
  }
}
  1. Enregistrez le fichier et cliquez sur Refresh dans l’interface MCP d’Antigravity pour voir les nouveaux outils.
Remplacez YOUR_FIRECRAWL_API_KEY par votre clé API à partir de https://firecrawl.dev/app/api-keys.

Utilisation avec n8n

Pour connecter le serveur MCP de Firecrawl dans n8n :
  1. Récupérez votre clé API Firecrawl à partir de https://firecrawl.dev/app/api-keys
  2. Dans votre workflow n8n, ajoutez un nœud AI Agent
  3. Dans la configuration du nœud AI Agent, ajoutez un nouveau Tool
  4. Sélectionnez MCP Client Tool comme type d’outil
  5. Saisissez l’Endpoint du serveur MCP (remplacez {YOUR_FIRECRAWL_API_KEY} par votre clé API) :
  https://mcp.firecrawl.dev/{YOUR_FIRECRAWL_API_KEY}/v2/mcp
  1. Définissez Server Transport sur HTTP Streamable
  2. Définissez Authentication sur None
  3. 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 :
env HTTP_STREAMABLE_SERVER=true \
    FIRECRAWL_API_KEY=fc-YOUR_API_KEY \
    FIRECRAWL_API_URL=YOUR_FIRECRAWL_INSTANCE \
    npx -y firecrawl-mcp
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.

Configuration

Variables d’environnement

Requis pour l’API Cloud

  • FIRECRAWL_API_KEY : votre clé API Firecrawl
    • Requise lors de l’utilisation de l’API cloud (par défaut)
    • Facultative lors de l’utilisation d’une instance auto-hébergée avec FIRECRAWL_API_URL
  • FIRECRAWL_API_URL (facultatif) : point de terminaison API personnalisé pour les instances auto-hébergées
    • Exemple : https://firecrawl.your-domain.com
    • Si elle n’est pas renseignée, l’API cloud sera utilisée (nécessite une clé API)

Configuration facultative

Configuration des relances
  • FIRECRAWL_RETRY_MAX_ATTEMPTS: Nombre maximal de tentatives de relance (par défaut : 3)
  • FIRECRAWL_RETRY_INITIAL_DELAY: Délai initial en millisecondes avant la première relance (par défaut : 1000)
  • FIRECRAWL_RETRY_MAX_DELAY: Délai maximal en millisecondes entre les relances (par défaut : 10000)
  • FIRECRAWL_RETRY_BACKOFF_FACTOR: Facteur de backoff exponentiel (par défaut : 2)
Surveillance de l’utilisation des crédits
  • FIRECRAWL_CREDIT_WARNING_THRESHOLD: Seuil d’avertissement pour l’utilisation des crédits (par défaut : 1000)
  • FIRECRAWL_CREDIT_CRITICAL_THRESHOLD: Seuil critique pour l’utilisation des crédits (par défaut : 100)

Exemples de configuration

Pour l’utilisation de l’API cloud avec des tentatives de reprise personnalisées et le suivi des crédits :
# Requis pour l’API cloud
export FIRECRAWL_API_KEY=your-api-key

# Paramètres de nouvelle tentative (facultatif)
export FIRECRAWL_RETRY_MAX_ATTEMPTS=5        # Augmenter le nombre maximal de tentatives
export FIRECRAWL_RETRY_INITIAL_DELAY=2000    # Commencer avec un délai de 2 s
export FIRECRAWL_RETRY_MAX_DELAY=30000       # Délai maximal de 30 s
export FIRECRAWL_RETRY_BACKOFF_FACTOR=3      # Backoff plus agressif

# Surveillance des crédits (facultatif)
export FIRECRAWL_CREDIT_WARNING_THRESHOLD=2000    # Avertissement à 2000 crédits
export FIRECRAWL_CREDIT_CRITICAL_THRESHOLD=500    # Seuil critique à 500 crédits
Pour une instance auto‑hébergée :
# Requis pour l’auto‑hébergement
export FIRECRAWL_API_URL=https://firecrawl.your-domain.com

# Authentification facultative pour l’auto‑hébergement
export FIRECRAWL_API_KEY=your-api-key  # Si votre instance requiert une authentification

# Configuration personnalisée des tentatives
export FIRECRAWL_RETRY_MAX_ATTEMPTS=10
export FIRECRAWL_RETRY_INITIAL_DELAY=500     # Démarrer avec des tentatives plus rapides

Configuration personnalisée avec Claude Desktop

Ajoutez ceci dans votre claude_desktop_config.json :
{
  "mcpServers": {
    "mcp-server-firecrawl": {
      "command": "npx",
      "args": ["-y", "firecrawl-mcp"],
      "env": {
        "FIRECRAWL_API_KEY": "YOUR_API_KEY_HERE",

        "FIRECRAWL_RETRY_MAX_ATTEMPTS": "5",
        "FIRECRAWL_RETRY_INITIAL_DELAY": "2000",
        "FIRECRAWL_RETRY_MAX_DELAY": "30000",
        "FIRECRAWL_RETRY_BACKOFF_FACTOR": "3",

        "FIRECRAWL_CREDIT_WARNING_THRESHOLD": "2000",
        "FIRECRAWL_CREDIT_CRITICAL_THRESHOLD": "500"
      }
    }
  }
}

Configuration système

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 :
  1. 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)
  2. 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
    • Exemple : avec les paramètres par défaut :
      • Avertissement à 1 000 crédits restants
      • Alerte critique à 100 crédits restants

Limitation de débit et traitement par lots

Le serveur exploite les fonctionnalités intégrées de Firecrawl en matière de limitation de débit et de traitement par lots :
  • Gestion automatique de la limitation de débit avec backoff exponentiel
  • Traitement parallèle efficace pour les opérations par lots
  • Mise en file d’attente et régulation intelligente des requêtes
  • Réessais automatiques en cas d’erreurs transitoires

Outils disponibles

1. Outil d’extraction (firecrawl_scrape)

Extraire le contenu d’une URL unique avec des options avancées.
{
  "name": "firecrawl_scrape",
  "arguments": {
    "url": "https://example.com",
    "formats": ["markdown"],
    "onlyMainContent": true,
    "waitFor": 1000,
    "timeout": 30000,
    "mobile": false,
    "includeTags": ["article", "main"],
    "excludeTags": ["nav", "footer"],
    "skipTlsVerification": false
  }
}

2. Outil de scraping par lots (firecrawl_batch_scrape)

Extrayez le contenu de plusieurs URL de manière efficace grâce à la limitation de débit intégrée et au traitement parallèle.
{
  "name": "firecrawl_batch_scrape",
  "arguments": {
    "urls": ["https://example1.com", "https://example2.com"],
    "options": {
      "formats": ["markdown"],
      "onlyMainContent": true
    }
  }
}
La réponse inclut l’ID d’opération pour vérifier son statut :
{
  "content": [
    {
      "type": "text",
      "text": "Opération batch mise en file d'attente avec l'ID : batch_1. Utilisez firecrawl_check_batch_status pour vérifier le statut."
    }
  ],
  "isError": false
}

3. Vérifier l’état d’un batch (firecrawl_check_batch_status)

Vérifiez l’état d’une opération batch.
{
  "name": "firecrawl_check_batch_status",
  "arguments": {
    "id": "batch_1"
  }
}

4. Outil de cartographie (firecrawl_map)

Cartographier un site web pour découvrir toutes les URL indexées du site.
{
  "name": "firecrawl_map",
  "arguments": {
    "url": "https://example.com",
    "search": "blog",
    "sitemap": "include",
    "includeSubdomains": false,
    "limit": 100,
    "ignoreQueryParameters": true
  }
}

Options de l’outil Map :

  • url: L’URL de base du site web à cartographier
  • 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. Effectuez une recherche sur le web et, si besoin, extrayez le contenu des résultats.
{
  "name": "firecrawl_search",
  "arguments": {
    "query": "votre requête de recherche",
    "limit": 5,
    "lang": "en",
    "country": "us",
    "scrapeOptions": {
      "formats": ["markdown"],
      "onlyMainContent": true
    }
  }
}

6. Outil de crawl (firecrawl_crawl)

Démarre un crawl asynchrone avec des options avancées.
{
  "name": "firecrawl_crawl",
  "arguments": {
    "url": "https://example.com",
    "maxDepth": 2,
    "limit": 100,
    "allowExternalLinks": false,
    "deduplicateSimilarURLs": true
  }
}

7. Vérifier l’état du crawl (firecrawl_check_crawl_status)

Vérifiez l’état d’une tâche de crawl.
{
  "name": "firecrawl_check_crawl_status",
  "arguments": {
    "id": "550e8400-e29b-41d4-a716-446655440000"
  }
}
Renvoie : le statut et l’avancement du job de crawl, y compris les résultats le cas échéant.

8. Outil d’extraction (firecrawl_extract)

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.
{
  "name": "firecrawl_extract",
  "arguments": {
    "urls": ["https://example.com/page1", "https://example.com/page2"],
    "prompt": "Extract product information including name, price, and description",
    "systemPrompt": "You are a helpful assistant that extracts product information",
    "schema": {
      "type": "object",
      "properties": {
        "name": { "type": "string" },
        "price": { "type": "number" },
        "description": { "type": "string" }
      },
      "required": ["name", "price"]
    },
    "allowExternalLinks": false,
    "enableWebSearch": false,
    "includeSubdomains": false
  }
}
Exemple de réponse :
{
  "content": [
    {
      "type": "text",
      "text": {
        "name": "Example Product",
        "price": 99.99,
        "description": "This is an example product description"
      }
    }
  ],
  "isError": false
}

Options de l’outil d’extraction :

  • urls: Liste d’URL à partir desquelles extraire des informations
  • prompt: Prompt personnalisé pour l’extraction par le LLM
  • systemPrompt: Prompt système pour guider 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.

Système de journalisation

Le serveur inclut une journalisation complète :
  • État et progression des opérations
  • Indicateurs de performance
  • Suivi de l’utilisation des crédits
  • Suivi des limites de débit
  • Conditions d’erreur
Exemples de messages de journal :
[INFO] Serveur MCP Firecrawl initialisé avec succès
[INFO] Lancement du scraping pour l’URL : https://example.com
[INFO] Opération par lots mise en file d’attente avec l’ID : batch_1
[WARNING] L’utilisation des crédits a atteint le seuil d’alerte
[ERROR] Limite de débit dépassée, nouvelle tentative dans 2 s…

Gestion des erreurs

Le serveur propose une gestion robuste des erreurs :
  • Nouveaux essais automatiques en cas d’erreurs transitoires
  • Gestion des limites de débit avec backoff
  • Messages d’erreur détaillés
  • Alertes sur l’utilisation des crédits
  • Résilience du réseau
Exemple de réponse d’erreur :
{
  "content": [
    {
      "type": "text",
      "text": "Erreur : Limite de débit dépassée. Nouvelle tentative dans 2 secondes..."
    }
  ],
  "isError": true
}

Développement

# Installer les dépendances
npm install

# Build
npm run build

# Run tests
npm test

Contribution

  1. Créez un fork du dépôt
  2. Créez une branche pour votre fonctionnalité
  3. Exécutez les tests : npm test
  4. Ouvrez une pull request

Merci aux contributeurs

Merci à @vrknetha et @cawstudios pour la mise en œuvre initiale ! Merci à MCP.so et Klavis AI pour l’hébergement, ainsi qu’à @gstarwd, @xiangkaiz et @zihaolin96 d’avoir intégré notre serveur.

Licence

Licence MIT — voir le fichier LICENSE pour plus de détails