> ## Documentation Index
> Fetch the complete documentation index at: https://docs.firecrawl.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Outils et opérations de Firecrawl MCP

> Outils disponibles, comportement opérationnel et gestion des erreurs de Firecrawl MCP.

<div id="available-tools">
  ## Outils disponibles
</div>

<div id="1-scrape-tool-firecrawl_scrape">
  ### 1. outil de scraping (`firecrawl_scrape`)
</div>

Récupérez le contenu d’une URL unique avec des options avancées.

```json theme={null}
{
  "name": "firecrawl_scrape",
  "arguments": {
    "url": "https://example.com",
    "formats": ["markdown"],
    "onlyMainContent": true,
    "waitFor": 1000,
    "mobile": false,
    "includeTags": ["article", "main"],
    "excludeTags": ["nav", "footer"],
    "skipTlsVerification": false
  }
}
```

Pour masquer les informations permettant d’identifier une personne, incluez `redactPII` dans les arguments de l’outil de scrape.

```json theme={null}
{
  "name": "firecrawl_scrape",
  "arguments": {
    "url": "https://example.com/contact",
    "formats": ["markdown"],
    "redactPII": true
  }
}
```

<div id="2-map-tool-firecrawl_map">
  ### 2. Outil de cartographie (`firecrawl_map`)
</div>

Cartographiez un site web pour découvrir toutes les URL indexées qu’il contient.

```json theme={null}
{
  "name": "firecrawl_map",
  "arguments": {
    "url": "https://example.com",
    "search": "blog",
    "sitemap": "include",
    "includeSubdomains": false,
    "limit": 100,
    "ignoreQueryParameters": true
  }
}
```

<div id="map-tool-options">
  #### Options de l’outil de cartographie :
</div>

* `url` : 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 à renvoyer
* `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 choisir celles à scraper ; trouver des sections spécifiques d’un site web.
**Renvoie :** Tableau des URL trouvées sur le site.

<div id="3-search-tool-firecrawl_search">
  ### 3. Outil de recherche (`firecrawl_search`)
</div>

Effectuez une recherche sur le web et extrayez éventuellement le contenu des résultats.

```json theme={null}
{
  "name": "firecrawl_search",
  "arguments": {
    "query": "your search query",
    "limit": 5,
    "location": "United States",
    "tbs": "qdr:m",
    "scrapeOptions": {
      "formats": ["markdown"],
      "onlyMainContent": true
    }
  }
}
```

<div id="search-tool-options">
  #### Options de l’outil de recherche :
</div>

* `query` : Chaîne de requête de recherche (obligatoire)
* `limit` : Nombre maximal de résultats à renvoyer
* `location` : Emplacement géographique des résultats de recherche
* `tbs` : Filtre de recherche temporel (par exemple, `qdr:d` pour le dernier jour, `qdr:w` pour la dernière semaine, `qdr:m` pour le dernier mois)
* `filter` : Filtre de recherche supplémentaire
* `sources` : Tableau des types de sources dans lesquels effectuer la recherche (`web`, `images`, `news`)
* `scrapeOptions` : Options de scraping des pages de résultats de recherche
* `enterprise` : Tableau d'options d'entreprise (`default`, `anon`, `zdr`)

<div id="4-parse-tool-firecrawl_parse">
  ### 4. Outil de parsing (`firecrawl_parse`)
</div>

Convertissez un fichier local, tel qu’un document PDF, DOCX, XLSX ou HTML, en données propres et exploitables par les LLM.

```json theme={null}
{
  "name": "firecrawl_parse",
  "arguments": {
    "filePath": "/absolute/path/to/report.pdf",
    "formats": ["markdown"]
  }
}
```

Lorsque vous exécutez Firecrawl MCP localement sur une instance de l’API Firecrawl avec `FIRECRAWL_API_URL`, le serveur MCP peut lire directement `filePath` et envoie les octets du fichier à `/v2/parse`.

Lorsque vous utilisez le serveur MCP hébergé à distance, il ne peut pas lire les fichiers présents sur votre machine. Dans ce cas, `firecrawl_parse` utilise un transfert en deux étapes qui fonctionne également avec l’URL distante sans clé :

1. Appelez `firecrawl_parse` avec `filePath`. L’outil renvoie une commande de téléversement préremplie et un `nextToolCall` contenant une `uploadRef`.
2. Exécutez la commande de téléversement sur la machine qui peut lire le fichier, puis appelez de nouveau `firecrawl_parse` avec l’`uploadRef` renvoyée.

La commande de téléversement envoie les octets du fichier vers une cible de téléversement signée à durée de vie limitée. Elle n’inclut pas votre clé API Firecrawl.

<div id="parse-tool-options">
  #### Options de l’outil de parsing :
</div>

* `filePath` : Chemin local du fichier à analyser. À utiliser lors du premier appel.
* `uploadRef` : Référence renvoyée par le premier appel MCP hébergé. À utiliser lors du deuxième appel, une fois le téléversement terminé.
* `formats` : Formats de sortie. La valeur par défaut est `markdown`.
* `parsers` : Paramètres du parseur, tels que les options de parsing des PDF.
* `contentType` : Remplacement facultatif du type MIME du fichier.
* `declaredSizeBytes` : Indication facultative de la taille du fichier. La taille des fichiers est limitée à 50 Mo.

**Idéal pour :** Les documents locaux ou non publics qui ne sont pas accessibles via une URL publique.

**Non recommandé pour :** Les URL de documents publics. Utilisez plutôt `firecrawl_scrape` : il détecte et analyse les documents à partir de leurs URL.

<div id="5-crawl-tool-firecrawl_crawl">
  ### 5. Outil de crawl (`firecrawl_crawl`)
</div>

Démarrez un crawl asynchrone avec des options avancées.

```json theme={null}
{
  "name": "firecrawl_crawl",
  "arguments": {
    "url": "https://example.com",
    "maxDiscoveryDepth": 2,
    "limit": 100,
    "allowExternalLinks": false,
    "deduplicateSimilarURLs": true
  }
}
```

<div id="6-check-crawl-status-firecrawl_check_crawl_status">
  ### 6. Vérifier l’état d’un crawl (`firecrawl_check_crawl_status`)
</div>

Vérifiez l’état d’un crawl.

```json theme={null}
{
  "name": "firecrawl_check_crawl_status",
  "arguments": {
    "id": "550e8400-e29b-41d4-a716-446655440000"
  }
}
```

**Renvoie :** L’état d’avancement du crawl, ainsi que les résultats s’ils sont disponibles.

<div id="7-extract-tool-firecrawl_extract">
  ### 7. Outil Extract (`firecrawl_extract`)
</div>

Extrait des informations structurées à partir de pages web à l’aide de LLM. Prend en charge l’extraction par IA dans le cloud et par des LLM auto-hébergés.

```json theme={null}
{
  "name": "firecrawl_extract",
  "arguments": {
    "urls": ["https://example.com/page1", "https://example.com/page2"],
    "prompt": "Extract product information including name, price, and description",
    "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 :

```json theme={null}
{
  "content": [
    {
      "type": "text",
      "text": {
        "name": "Example Product",
        "price": 99.99,
        "description": "This is an example product description"
      }
    }
  ],
  "isError": false
}
```

<div id="extract-tool-options">
  #### Options de l’outil Extract :
</div>

* `urls` : tableau 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 depuis des liens externes
* `enableWebSearch` : activer la recherche web pour obtenir du contexte supplémentaire
* `includeSubdomains` : inclure les sous-domaines dans l’extraction

Avec une instance auto-hébergée, l’extraction utilise le LLM que vous avez configuré. Avec l’API cloud, elle utilise le service LLM géré par Firecrawl.

<div id="8-agent-tool-firecrawl_agent">
  ### 8. Outil Agent (`firecrawl_agent`)
</div>

Agent de recherche web autonome qui parcourt Internet de manière indépendante, recherche des informations, navigue entre les pages et extrait des données structurées selon votre requête. Il s’exécute de manière asynchrone -- il renvoie immédiatement un ID de tâche, puis vous interrogez `firecrawl_agent_status` pour vérifier qu’il est terminé et récupérer les résultats.

```json theme={null}
{
  "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 :

```json theme={null}
{
  "name": "firecrawl_agent",
  "arguments": {
    "urls": ["https://docs.firecrawl.dev", "https://firecrawl.dev/pricing"],
    "prompt": "Compare the features and pricing information from these pages"
  }
}
```

<div id="agent-tool-options">
  #### Options de l’outil Agent :
</div>

* `prompt` : Description en langage naturel des données souhaitées (obligatoire, 10 000 caractères maximum)
* `urls` : Tableau facultatif d’URL permettant de cibler l’agent sur des pages spécifiques
* `schema` : Schéma JSON facultatif pour une sortie structurée

**Idéal pour :** Les tâches de recherche complexes lorsque vous ne connaissez pas les URL exactes ; la collecte de données provenant de plusieurs sources ; la recherche d’informations dispersées sur le web ; l’extraction de données depuis des SPA fortement basées sur JavaScript qui échouent avec un scrape classique.

**Renvoie :** Un ID de tâche permettant de vérifier l’état. Utilisez `firecrawl_agent_status` pour interroger les résultats.

<div id="9-check-agent-status-firecrawl_agent_status">
  ### 9. Vérifier le statut de l’agent (`firecrawl_agent_status`)
</div>

Vérifiez l’état d’une tâche d’agent et récupérez les résultats une fois celle-ci terminée. Interrogez toutes les 15 à 30 secondes pendant au moins 2 à 3 minutes avant de considérer la requête comme ayant échoué.

```json theme={null}
{
  "name": "firecrawl_agent_status",
  "arguments": {
    "id": "550e8400-e29b-41d4-a716-446655440000"
  }
}
```

<div id="agent-status-options">
  #### Options de statut de l’agent :
</div>

* `id` : l’ID de tâche d’agent renvoyé par `firecrawl_agent` (obligatoire)

**États possibles :**

* `processing` : l’agent effectue encore ses recherches -- continuez à l’interroger
* `completed` : la recherche est terminée -- la réponse contient les données extraites
* `failed` : une erreur s’est produite

**Renvoie :** l’état, la progression et les résultats (si terminée) de la tâche d’agent.

<div id="10-interact-with-a-page-firecrawl_interact">
  ### 10. Interagir avec une page (`firecrawl_interact`)
</div>

Interagissez avec une page dans une session de navigateur en direct : cliquez sur des boutons, remplissez des formulaires, extrayez du contenu dynamique ou naviguez plus loin.

Utilisez l’un des deux modes de ciblage :

* Transmettez `url` pour ouvrir une nouvelle page et interagir avec elle en un seul appel MCP.
* Transmettez le `scrapeId` d’un appel `firecrawl_scrape` précédent pour réutiliser la page déjà chargée.

Ne transmettez pas simultanément `url` et `scrapeId`. Fournissez soit `prompt`, soit `code`. `scrapeOptions` ne peut être utilisé qu’en mode `url`.

**Exemple en mode URL :**

```json theme={null}
{
  "name": "firecrawl_interact",
  "arguments": {
    "url": "https://example.com/products",
    "prompt": "Click on the first product and tell me its price"
  }
}
```

**Exemple de réutilisation d’un scrape :**

```json theme={null}
{
  "name": "firecrawl_interact",
  "arguments": {
    "scrapeId": "scrape-id-from-previous-scrape",
    "prompt": "Click the Sign In button"
  }
}
```

<div id="interact-tool-options">
  #### Options de l’outil Interact :
</div>

* `url` : Page avec laquelle interagir ; ouvre une session pour vous. Utilisez ce paramètre ou `scrapeId`.
* `scrapeId` : ID de tâche de scraping issu d’un appel `firecrawl_scrape` précédent. Utilisez ce paramètre ou `url`.
* `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, `node` par défaut, utilisé uniquement avec `code`).
* `timeout` : Délai d’exécution en secondes, de 1 à 300 (facultatif, 30 par défaut).
* `scrapeOptions` : Options de scraping facultatives utilisées uniquement en mode `url`.

**Idéal pour :** Les workflows en plusieurs étapes sur une seule page — rechercher sur un site, parcourir les résultats, remplir des formulaires, extraire des données nécessitant une interaction.

**Renvoie :** Le résultat de l’interaction, y compris les URL de sortie et de la vue en direct.

<div id="11-stop-interact-session-firecrawl_interact_stop">
  ### 11. Arrêter une session Interact (`firecrawl_interact_stop`)
</div>

Arrêtez une session Interact associée à une page scrapée. Appelez cette fonction une fois vos interactions terminées afin de libérer des ressources.

```json theme={null}
{
  "name": "firecrawl_interact_stop",
  "arguments": {
    "scrapeId": "scrape-id-from-previous-scrape"
  }
}
```

<div id="interact-stop-options">
  #### Options d’arrêt d’une session Interact :
</div>

* `scrapeId` : l’ID de scrape de la session à arrêter (obligatoire)

**Renvoie :** la confirmation de l’arrêt de la session.

<div id="logging-system">
  ## Système de journalisation
</div>

Le serveur fournit une journalisation complète :

* État et progression des opérations
* Indicateurs de performance
* Surveillance de l’utilisation des crédits
* Suivi des limites de débit
* Conditions d’erreur

Exemples de messages de journal :

```
[INFO] Firecrawl MCP Server initialized successfully
[INFO] Starting scrape for URL: https://example.com
[INFO] Starting crawl for URL: https://example.com
[WARNING] Credit usage has reached warning threshold
[ERROR] Rate limit exceeded, retrying in 2s...
```

<div id="error-handling">
  ## Gestion des erreurs
</div>

Le serveur offre une gestion robuste des erreurs :

* Nouvelles tentatives automatiques en cas d’erreurs transitoires
* Gestion des limites de débit avec backoff exponentiel
* Messages d’erreur détaillés
* Avertissements sur l’utilisation des crédits
* Résilience du réseau

Exemple de réponse d’erreur :

```json theme={null}
{
  "content": [
    {
      "type": "text",
      "text": "Error: Rate limit exceeded. Retrying in 2 seconds..."
    }
  ],
  "isError": true
}
```
