> ## 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.

# Herramientas y operaciones de Firecrawl MCP

> Herramientas disponibles, comportamiento operativo y manejo de errores de Firecrawl MCP.

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

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

Extrae contenido de una sola URL con opciones avanzadas.

```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
  }
}
```

Para ocultar información de identificación personal, incluye `redactPII` en los argumentos de la herramienta de scraping.

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

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

Mapea un sitio web para descubrir todas sus URL indexadas.

```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">
  #### Opciones de la herramienta de mapeo:
</div>

* `url`: URL base del sitio web que se va a mapear
* `search`: Término de búsqueda opcional para filtrar URL
* `sitemap`: Controla el uso del mapa del sitio: "include", "skip" u "only"
* `includeSubdomains`: Indica si se deben incluir subdominios en el mapeo
* `limit`: Número máximo de URL que se devolverán
* `ignoreQueryParameters`: Indica si se deben ignorar los parámetros de consulta durante el mapeo

**Ideal para:** Descubrir URL de un sitio web antes de decidir qué extraer mediante scraping; encontrar secciones específicas de un sitio web.
**Devuelve:** Array de URL encontradas en el sitio.

<div id="3-search-tool-firecrawl_search">
  ### 3. Herramienta de búsqueda (`firecrawl_search`)
</div>

Busca en la web y, de forma opcional, extrae contenido de los resultados de búsqueda.

```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">
  #### Opciones de la herramienta de búsqueda:
</div>

* `query`: Cadena de consulta de búsqueda (obligatoria)
* `limit`: Número máximo de resultados que se devolverán
* `location`: Ubicación geográfica de los resultados de búsqueda
* `tbs`: Filtro de búsqueda por tiempo (p. ej., `qdr:d` para el último día, `qdr:w` para la última semana, `qdr:m` para el último mes)
* `filter`: Filtro de búsqueda adicional
* `sources`: Array de tipos de fuente donde buscar (`web`, `images`, `news`)
* `scrapeOptions`: Opciones de scraping para las páginas de resultados de búsqueda
* `enterprise`: Array de opciones empresariales (`default`, `anon`, `zdr`)

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

Procesa archivos locales, como documentos PDF, DOCX, XLSX o HTML, y los convierte en datos limpios y listos para LLM.

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

Cuando ejecutas Firecrawl MCP localmente con una instancia de la API de Firecrawl mediante `FIRECRAWL_API_URL`, el MCP Server puede leer `filePath` directamente y envía los bytes del archivo a `/v2/parse`.

Cuando usas el MCP Server alojado remoto, este no puede leer archivos de tu máquina. En ese caso, `firecrawl_parse` utiliza una transferencia en dos pasos que también funciona en la URL remota sin clave:

1. Llama a `firecrawl_parse` con `filePath`. La herramienta devuelve un comando de carga preconfigurado y un `nextToolCall` que contiene un `uploadRef`.
2. Ejecuta el comando de carga en la máquina que puede leer el archivo y, después, vuelve a llamar a `firecrawl_parse` con el `uploadRef` devuelto.

El comando de carga envía los bytes del archivo a un destino de carga firmado de corta duración. No incluye tu clave de API de Firecrawl.

<div id="parse-tool-options">
  #### Opciones de Herramienta de procesamiento:
</div>

* `filePath`: Ruta local del archivo que quieres procesar. Úsalo en la primera llamada.
* `uploadRef`: Referencia devuelta por la primera llamada al MCP alojado. Úsala en la segunda llamada, tras completar la carga.
* `formats`: Formatos de salida. El valor predeterminado es `markdown`.
* `parsers`: Controles del parser, como las opciones de procesamiento de PDF.
* `contentType`: Anulación opcional del tipo MIME del archivo.
* `declaredSizeBytes`: Indicación opcional del tamaño del archivo. El tamaño máximo de los archivos es de 50 MB.

**Ideal para:** Documentos locales o no públicos que no están disponibles en una URL pública.

**No recomendado para:** URL de documentos públicos. Usa `firecrawl_scrape`; detectará y procesará documentos desde URL.

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

Inicia un rastreo asíncrono con opciones avanzadas.

```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. Consultar el estado del rastreo (`firecrawl_check_crawl_status`)
</div>

Consulta el estado de un rastreo.

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

**Devuelve:** El estado y el progreso del trabajo de rastreo, incluidos los resultados si están disponibles.

<div id="7-extract-tool-firecrawl_extract">
  ### 7. Herramienta de extracción (`firecrawl_extract`)
</div>

Extrae información estructurada de páginas web mediante modelos de lenguaje de gran tamaño (LLM). Admite tanto la extracción con IA en la nube como con LLM autogestionados.

```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
  }
}
```

Respuesta de ejemplo:

```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">
  #### Opciones de la herramienta de extracción:
</div>

* `urls`: array de URL de las que extraer información
* `prompt`: prompt personalizado para la extracción con el LLM
* `schema`: esquema JSON para la extracción de datos estructurados
* `allowExternalLinks`: permite extraer información de enlaces externos
* `enableWebSearch`: habilita la búsqueda web para obtener contexto adicional
* `includeSubdomains`: incluye subdominios en la extracción

Al utilizar una instancia autogestionada, la extracción usará el LLM configurado. En la API en la nube, se usa el servicio de LLM gestionado por Firecrawl.

<div id="8-agent-tool-firecrawl_agent">
  ### 8. Herramienta de agente (`firecrawl_agent`)
</div>

Agente autónomo de investigación web que navega por Internet de forma independiente, busca información, recorre páginas y extrae datos estructurados según tu consulta. Se ejecuta de forma asíncrona: devuelve un ID de trabajo de inmediato y consultas `firecrawl_agent_status` para comprobar cuándo ha finalizado y recuperar los resultados.

```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" }
            }
          }
        }
      }
    }
  }
}
```

También puedes proporcionar URL específicas para que el agente se centre en ellas:

```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">
  #### Opciones de herramienta de agente:
</div>

* `prompt`: Descripción en lenguaje natural de los datos que quieres obtener (obligatorio, máximo 10.000 caracteres)
* `urls`: Array opcional de URL para que el agente se centre en páginas específicas
* `schema`: Esquema JSON opcional para obtener una salida estructurada

**Ideal para:** Tareas de investigación complejas en las que no conoces las URL exactas; recopilación de datos de múltiples fuentes; búsqueda de información dispersa por la web; extracción de datos de SPA con mucho JavaScript que fallan con el scraping convencional.

**Devuelve:** ID de trabajo para consultar el estado. Usa `firecrawl_agent_status` para sondear los resultados.

<div id="9-check-agent-status-firecrawl_agent_status">
  ### 9. Consultar el estado del agente (`firecrawl_agent_status`)
</div>

Consulta el estado de un trabajo de agente y recupera los resultados cuando finalice. Consulta el estado cada 15-30 segundos y continúa haciéndolo durante al menos 2-3 minutos antes de considerar que la solicitud ha fallado.

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

<div id="agent-status-options">
  #### Opciones de estado del agente:
</div>

* `id`: ID del trabajo del agente devuelto por `firecrawl_agent` (obligatorio)

**Estados posibles:**

* `processing`: El agente sigue investigando -- continúa consultando
* `completed`: La investigación ha finalizado -- la respuesta incluye los datos extraídos
* `failed`: Se produjo un error

**Devuelve:** El estado, el progreso y los resultados (si se ha completado) del trabajo del agente.

<div id="10-interact-with-a-page-firecrawl_interact">
  ### 10. Interactúa con una página (`firecrawl_interact`)
</div>

Interactúa con una página en una sesión activa del navegador: haz clic en botones, completa formularios, extrae contenido dinámico o navega a mayor profundidad.

Usa uno de estos dos modos de selección:

* Pasa `url` para abrir e interactuar con una página nueva en una sola llamada MCP.
* Pasa el `scrapeId` de una llamada anterior a `firecrawl_scrape` para reutilizar la página ya cargada.

No pases `url` y `scrapeId` a la vez. Proporciona `prompt` o `code`. `scrapeOptions` solo se puede usar en el modo `url`.

**Ejemplo del modo URL:**

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

**Ejemplo de reutilización de scraping:**

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

<div id="interact-tool-options">
  #### Opciones de la herramienta Interact:
</div>

* `url`: Página con la que interactuar; abre la sesión automáticamente. Usa este parámetro o `scrapeId`.
* `scrapeId`: ID de trabajo de scraping de una llamada anterior a `firecrawl_scrape`. Usa este parámetro o `url`.
* `prompt`: Instrucción en lenguaje natural que describe la acción que se debe realizar. Proporciona `prompt` o `code`.
* `code`: Código que se ejecutará en la sesión del navegador. Proporciona `code` o `prompt`.
* `language`: `bash`, `python` o `node` (opcional; el valor predeterminado es `node`; solo se usa con `code`).
* `timeout`: Tiempo máximo de ejecución en segundos, de 1 a 300 (opcional; el valor predeterminado es 30).
* `scrapeOptions`: Controles de scraping opcionales que solo se usan con el modo `url`.

**Ideal para:** Flujos de trabajo de varios pasos en una sola página: buscar en un sitio, hacer clic en los resultados, rellenar formularios y extraer datos que requieren interacción.

**Devuelve:** El resultado de la interacción, incluidas las URL de salida y de vista en vivo.

<div id="11-stop-interact-session-firecrawl_interact_stop">
  ### 11. Detener una sesión de Interact (`firecrawl_interact_stop`)
</div>

Detén una sesión de Interact para una página extraída. Úsalo cuando termines de interactuar para liberar recursos.

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

<div id="interact-stop-options">
  #### Opciones para detener Interact:
</div>

* `scrapeId`: El ID de scraping de la sesión que se va a detener (obligatorio)

**Devuelve:** Confirmación de que la sesión se ha detenido.

<div id="logging-system">
  ## Sistema de registro
</div>

El servidor incluye un registro completo de:

* El estado y el progreso de las operaciones
* Métricas de rendimiento
* Supervisión del uso de créditos
* Seguimiento de los límites de tasa
* Condiciones de error

Ejemplos de mensajes de registro:

```
[INFO] Firecrawl MCP Server inicializado correctamente
[INFO] Iniciando scraping de la URL: https://example.com
[INFO] Iniciando rastreo de la URL: https://example.com
[WARNING] El uso de créditos alcanzó el umbral de advertencia
[ERROR] Límite de tasa excedido, reintentando en 2 s...
```

<div id="error-handling">
  ## Manejo de errores
</div>

El servidor ofrece un sólido manejo de errores:

* Reintentos automáticos ante errores transitorios
* Manejo de límites de tasa con backoff
* Mensajes de error detallados
* Advertencias sobre el uso de créditos
* Resiliencia de red

Ejemplo de respuesta de error:

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