Firecrawl

oficial

Extrae datos web con Firecrawl

¿Qué puedes hacer con Firecrawl MCP?

  • Convierte cualquier URL en markdown limpio o JSON estructurado — Solicita detalles de productos, artículos o identidad de marca desde una única URL conocida mediante firecrawl_scrape.
  • Descubre todas las URLs de un sitio web — Usa firecrawl_map para listar cada página indexada en un sitio antes de decidir qué extraer.
  • Busca en la web y obtén resultados clasificados — Comienza desde una consulta en lugar de una URL con firecrawl_search, opcionalmente obteniendo el contenido de la página en la misma llamada mediante scrapeOptions.
  • Rastrea múltiples páginas dentro de un sitio — Usa firecrawl_crawl con limit, includePaths/excludePaths o maxDiscoveryDepth para acotar el trabajo y obtener el estado/datos finales.
  • Interactúa con páginas en vivo — Haz clic, escribe o navega en una url nueva o continúa en una página previamente extraída mediante scrapeId usando firecrawl_interact.
  • Consulta tu uso de créditos de Firecrawl — Solicita el consumo de créditos actual o histórico, opcionalmente desglosado por clave de API, con firecrawl_credit_usage.

Documentación

Servidor MCP de Firecrawl

Un servidor de Protocolo de Contexto de Modelo (MCP) que lleva Firecrawl a agentes de IA compatibles con MCP: busca, extrae e interactúa con la web en vivo para obtener contexto limpio y listo para agentes.

Un gran agradecimiento a @vrknetha y @knacklabs por la implementación inicial.

Características

  • Busca en la web y obtén el contenido completo de las páginas
  • Busca en un índice creado para agentes de codificación: issues de GitHub, pull requests fusionadas, READMEs y documentación
  • Extrae cualquier URL a datos estructurados y limpios
  • Interactúa con páginas: haz clic, navega y opera
  • Investigación profunda con agente autónomo
  • Consulta el uso de créditos de Firecrawl actual e histórico
  • Reintentos automáticos y limitación de velocidad
  • Soporte en la nube y autoalojado
  • Soporte SSE

Prueba nuestro servidor MCP en el playground de MCP.so o en Klavis AI.

Cuándo usar este servidor

  • Usa firecrawl_scrape cuando tengas una URL conocida y quieras su contenido como markdown o como JSON que coincida con un esquema que proporciones.
  • Usa firecrawl_map cuando necesites descubrir URLs en un sitio sin obtener su contenido.
  • Usa firecrawl_crawl cuando necesites contenido de muchas páginas bajo un sitio; establece limit, includePaths/excludePaths o maxDiscoveryDepth para limitarlo.
  • Usa firecrawl_search cuando empieces desde una consulta en lugar de una URL y quieras resultados web clasificados; añade scrapeOptions si también quieres que se obtenga el contenido de la página en la misma llamada (el endpoint solo de búsqueda nunca obtiene contenido).
  • Usa firecrawl_interact cuando una página necesite una acción de clic, escritura o navegación antes de poder leerla: pasa un url para una página nueva o un scrapeId para continuar en una que ya hayas extraído.
  • Usa las herramientas firecrawl_monitor_* cuando la misma página deba revisarse en un horario recurrente con diferencias y alertas de cambios, en lugar de obtenerse una sola vez.
  • Usa firecrawl_credit_usage para consultar los créditos restantes o el consumo mensual, opcionalmente desglosado por clave de API.
  • Considera otra opción cuando necesites mantener una sesión de navegador abierta a lo largo de muchos de tus propios pasos con tu propia lógica de reintentos y terminación: cada llamada a firecrawl_interact ejecuta un turno de prompt o code hasta completarse y devuelve el control: la sesión puede persistir entre llamadas mediante scrapeId y termina con firecrawl_interact_stop, pero no puedes manejarla de forma interactiva paso a paso desde el lado del cliente dentro de una sola llamada.

Este servidor lista 26 herramientas cuando el perfil completo se registra con la configuración predeterminada (herramientas de comentarios incluidas, sin ejecutarse en modo local sin clave). Establecer FIRECRAWL_NO_SEARCH_FEEDBACK=1 y/o FIRECRAWL_NO_ENDPOINT_FEEDBACK=1 elimina las herramientas de comentarios correspondientes y reduce este número, al igual que el inicio local sin clave. Para clientes con un límite de espacios de herramientas: el endpoint alojado sin clave (https://mcp.firecrawl.dev/v2/mcp, sin clave de API) expone solo 3 — firecrawl_scrape, firecrawl_search, firecrawl_parse — y el endpoint dedicado solo de búsqueda (https://mcp.firecrawl.dev/v2/mcp-search) expone un conjunto fijo de 6 herramientas de solo lectura.

Instalación

MCP alojado (nivel gratuito sin clave)

Conéctate al servidor remoto alojado sin configuración:

https://mcp.firecrawl.dev/v2/mcp

En el nivel gratuito sin clave, scrape, search y parse funcionan sin clave de API (con límite de velocidad). Otras herramientas como crawl, map y agent aún necesitan una clave.

Prefiere OAuth o una clave de API siempre que la persona pueda registrarse. Desbloquea el conjunto completo de herramientas y límites más altos.

Para una conexión de cuenta interactiva, configura tu cliente MCP para usar esta URL de servidor. Este es un endpoint de MCP, no una página de navegador; usa el flujo de conexión de cuenta del cliente y no agregues una segunda entrada de servidor de Firecrawl al reconectar:

https://mcp.firecrawl.dev/v2/mcp-oauth

Para una conexión con clave de API (por ejemplo, una integración desatendida), mantén la URL del servidor como:

https://mcp.firecrawl.dev/v2/mcp

Luego configura el encabezado seguro o la configuración secreta del cliente con:

Authorization: Bearer <FIRECRAWL_API_KEY>

Nunca pongas una clave de API en la URL del servidor. Nunca pongas una clave de API en un chat de agente. Configúrala directamente en el cliente o en el administrador de secretos. Consulta la guía de configuración de MCP alojado y la guía de incorporación de agentes para instrucciones específicas del cliente.

Endpoint solo de búsqueda

Una superficie de solo lectura y solo búsqueda también está alojada en:

https://mcp.firecrawl.dev/v2/mcp-search

Expone un conjunto fijo de seis herramientas de solo lectura: firecrawl_search, firecrawl_developer_search y las cuatro herramientas firecrawl_research_*. No realiza obtención de contenido de páginas y tiene su propia identidad OAuth; el endpoint completo anterior no cambia. Es el conector listado en el directorio de Claude de Anthropic, por lo que su conjunto de herramientas es un contrato revisado en lugar de un perfil para ajustar. Consulta docs/search-profile.md para el contrato completo y lo que implica un cambio en él.

Ejecución con npx

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

Instalación manual

npm install -g firecrawl-mcp

Ejecución en Cursor

Configurando Cursor 🖥️ Nota: Requiere la versión 0.45.6+ de Cursor Para las instrucciones de configuración más actualizadas, consulta la documentación oficial de Cursor sobre la configuración de servidores MCP: Guía de configuración de servidores MCP de Cursor

Para configurar Firecrawl MCP en Cursor v0.48.6

  1. Abre la configuración de Cursor
  2. Ve a Funciones > Servidores MCP
  3. Haz clic en "+ Agregar nuevo servidor MCP global"
  4. Ingresa el siguiente código:
    {
      "mcpServers": {
        "firecrawl-mcp": {
          "command": "npx",
          "args": ["-y", "firecrawl-mcp"],
          "env": {
            "FIRECRAWL_API_KEY": "YOUR-API-KEY"
          }
        }
      }
    }
    

Para configurar Firecrawl MCP en Cursor v0.45.6

  1. Abre la configuración de Cursor
  2. Ve a Funciones > Servidores MCP
  3. Haz clic en "+ Agregar nuevo servidor MCP"
  4. Ingresa lo siguiente:
    • Nombre: "firecrawl-mcp" (o el nombre que prefieras)
    • Tipo: "comando"
    • Comando: env FIRECRAWL_API_KEY=your-api-key npx -y firecrawl-mcp

Si usas Windows y tienes problemas, prueba cmd /c "set FIRECRAWL_API_KEY=your-api-key && npx -y firecrawl-mcp"

Reemplaza your-api-key con tu clave de API de Firecrawl. Si aún no tienes una, puedes crear una cuenta y obtenerla desde https://www.firecrawl.dev/app/api-keys

Después de agregarlo, actualiza la lista de servidores MCP para ver las nuevas herramientas. El agente Composer usará automáticamente Firecrawl MCP cuando sea apropiado, pero puedes solicitarlo explícitamente describiendo tus necesidades de extracción web. Accede al Composer con Comando+L (Mac), selecciona "Agente" junto al botón de enviar e ingresa tu consulta.

Ejecución en Windsurf

Agrega esto a tu ./codeium/windsurf/model_config.json:

{
  "mcpServers": {
    "mcp-server-firecrawl": {
      "command": "npx",
      "args": ["-y", "firecrawl-mcp"],
      "env": {
        "FIRECRAWL_API_KEY": "YOUR_API_KEY"
      }
    }
  }
}

Ejecución con modo local HTTP Streamable

Para ejecutar el servidor usando HTTP Streamable localmente en lugar del transporte stdio predeterminado:

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

Usa la URL: http://localhost:3000/mcp

Instalación mediante Smithery (heredado)

Para instalar Firecrawl para Claude Desktop automáticamente mediante Smithery:

npx -y @smithery/cli install @mendableai/mcp-server-firecrawl --client claude

Ejecución en VS Code

Para una instalación con un clic, haz clic en uno de los botones de instalación a continuación...

Install with NPX in VS Code Install with NPX in VS Code Insiders

Para la instalación manual, agrega el siguiente bloque JSON a tu archivo de Configuración de Usuario (JSON) en VS Code. Puedes hacerlo presionando Ctrl + Shift + P y escribiendo Preferences: Open User Settings (JSON).

{
  "mcp": {
    "inputs": [
      {
        "type": "promptString",
        "id": "apiKey",
        "description": "Firecrawl API Key",
        "password": true
      }
    ],
    "servers": {
      "firecrawl": {
        "command": "npx",
        "args": ["-y", "firecrawl-mcp"],
        "env": {
          "FIRECRAWL_API_KEY": "${input:apiKey}"
        }
      }
    }
  }
}

Opcionalmente, puedes agregarlo a un archivo llamado .vscode/mcp.json en tu espacio de trabajo. Esto te permitirá compartir la configuración con otros:

{
  "inputs": [
    {
      "type": "promptString",
      "id": "apiKey",
      "description": "Firecrawl API Key",
      "password": true
    }
  ],
  "servers": {
    "firecrawl": {
      "command": "npx",
      "args": ["-y", "firecrawl-mcp"],
      "env": {
        "FIRECRAWL_API_KEY": "${input:apiKey}"
      }
    }
  }
}

Configuración

Variables de entorno

Requeridas para la API en la nube

  • FIRECRAWL_API_KEY: Tu clave de API de Firecrawl
    • Requerida al usar la API en la nube (predeterminada)
    • Opcional al usar una instancia autoalojada con FIRECRAWL_API_URL
  • FIRECRAWL_API_URL (Opcional): Endpoint de API personalizado para instancias autoalojadas
    • Ejemplo: https://firecrawl.your-domain.com
    • Si no se proporciona, se usará la API en la nube (requiere clave de API)

OAuth de MCP (tokens de acceso Bearer)

Firecrawl alojado puede emitir tokens de acceso OAuth (fco_…) mediante el servidor de autorización en firecrawl.dev. Este servidor MCP reenvía la credencial que resuelva a la API de Firecrawl como Authorization: Bearer ….

  • Transportes de flujo HTTP (CLOUD_SERVICE=true, HTTP_STREAMABLE_SERVER=true o SSE_LOCAL=true): Los clientes deben enviar Authorization: Bearer <fco_access_token> en las solicitudes MCP. Un token Bearer OAuth tiene prioridad sobre x-firecrawl-api-key / x-api-key cuando ambos están presentes.
  • stdio: Usa FIRECRAWL_OAUTH_TOKEN para un token de acceso estático, o sigue usando FIRECRAWL_API_KEY para una clave de API.

Usa solo tokens de acceso (fco_…). Los tokens de actualización (fcr_…) deben intercambiarse en el endpoint de tokens, no pasarse a la API de extracción/búsqueda.

Superficie solo de búsqueda (alojada)

En modo alojado (CLOUD_SERVICE=true), una segunda instancia dentro del proceso sirve el endpoint solo de búsqueda. El servicio incluido tiene un contrato de implementación fijo: nginx enruta /v2/mcp-search a la instancia en el puerto local 3001, y el identificador de recurso protegido OAuth es https://mcp.firecrawl.dev/v2/mcp-search.

FIRECRAWL_MCP_SEARCH_ENABLED (predeterminado true) es el interruptor operativo compatible; establécelo en false para evitar que la instancia de búsqueda se inicie. El proceso de Node también acepta FIRECRAWL_MCP_SEARCH_PORT, FIRECRAWL_MCP_SEARCH_ENDPOINT y FIRECRAWL_MCP_SEARCH_RESOURCE_URL para pruebas aisladas. Esas anulaciones no reconfiguran las rutas de nginx incluidas ni la lista de permitidos del servidor de autorización y no deben usarse de forma independiente en la implementación alojada.

La instancia de búsqueda requiere autenticación para cada solicitud (incluida tools/list) y rechaza tokens OAuth cuya audiencia no coincida con su propio recurso.

Ejemplos de configuración

Para uso de la API en la nube:

export FIRECRAWL_API_KEY=your-api-key

Para instancia autoalojada:

# Required for self-hosted
export FIRECRAWL_API_URL=https://firecrawl.your-domain.com

# Optional authentication for self-hosted
export FIRECRAWL_API_KEY=your-api-key  # If your instance requires auth

Uso con Claude Desktop

Agrega esto a tu claude_desktop_config.json:

{
  "mcpServers": {
    "mcp-server-firecrawl": {
      "command": "npx",
      "args": ["-y", "firecrawl-mcp"],
      "env": {
        "FIRECRAWL_API_KEY": "YOUR_API_KEY_HERE"
      }
    }
  }
}

Cómo elegir una herramienta

Usa esta guía para seleccionar la herramienta adecuada para tu tarea:

  • Si conoces la URL exacta que quieres: usa scrape (con formato JSON para datos estructurados)
  • Si tienes múltiples URLs conocidas: llama a scrape para cada URL. Si necesitas específicamente una operación de API por lotes, usa el endpoint de lote de la API de Firecrawl fuera de MCP.
  • Si necesitas descubrir URLs en un sitio: usa map
  • Si quieres buscar información en la web: usa search
  • Si tienes una pregunta de programación (una biblioteca, un contrato de API, un mensaje de error, un error conocido): usa búsqueda de desarrollador
  • Si necesitas artículos científicos (literatura biomédica, de ciencias de la vida, clínica o de arXiv): usa herramientas de investigación — buscan resúmenes de artículos y texto completo. search con categories: ["research"] es algo diferente: un filtro de sitios web sobre resultados web ordinarios.
  • Si necesitas investigación de múltiples fuentes que devuelva datos estructurados, no conoces las URLs o la respuesta abarca varios sitios (una entidad más sus campos, una lista, un conjunto de datos): usa agent
  • Si quieres analizar un sitio completo o una sección: usa crawl (¡con límites!)
  • Si necesitas automatización de navegador interactiva (clic, escritura, navegación): usa interact con una URL para una página nueva, o scrape + interact cuando ya hayas extraído la página o necesites un control de extracción más estricto
  • Si necesitas datos de un proveedor catalogado (Alexandria): busca con sources: ["alexandria"], inspecciona el contrato seleccionado con find_tools y ejecútalo con scrape alexandria

Tabla de referencia rápida

HerramientaMejor paraDevuelve
scrapeContenido de una sola páginaJSON (preferido) o markdown
interactInteractuar con una URL o página raspadaResultado de ejecución + scrapeId para modo URL
mapDescubrir URLs en un sitioURL[]
crawlExtracción de múltiples páginas (con límites)estado/datos finales del crawl tras sondeo interno
parseArchivos y referencias de carga alojadasmarkdown, JSON o salida de documento
searchBúsqueda web de informaciónresults[]
find_toolsNavegación del catálogo de Alexandria y búsqueda de URLsproviders, contratos de herramientas y navegación nextTool
developerPreguntas de programación sobre fuentes de desarrolladoresresults[] con pasajes
agentInvestigación multi-fuente, sitios desconocidos o muchosJSON (datos estructurados)
monitorComprobaciones recurrentes de páginasmetadatos y diferencias de monitor/comprobación
researchInvestigación de artículos y repositorios de GitHubresultados de investigación y coincidencias de repositorios

Guía de selección de formato

Al usar scrape, elige el formato correcto:

  • Formato JSON (recomendado para la mayoría de los casos): Úsalo cuando necesites datos específicos de una página. Define un esquema basado en lo que necesitas extraer. Esto mantiene las respuestas pequeñas y evita el desbordamiento de la ventana de contexto.
  • Formato Markdown (úsalo con moderación): Solo cuando realmente necesites el contenido completo de la página, como leer un artículo completo para resumirlo o analizar la estructura de la página.

Herramientas disponibles

1. Herramienta Scrape (firecrawl_scrape)

Extrae contenido de una sola URL con opciones avanzadas.

Mejor para:

  • Extracción de contenido de una sola página, cuando sabes exactamente qué página contiene la información.

No recomendado para:

  • Extraer contenido de múltiples páginas (usa llamadas repetidas a scrape para URLs conocidas, o map + scrape para descubrir URLs primero, o crawl para contenido completo de páginas)
  • Cuando no estás seguro de qué página contiene la información (usa search)

Errores comunes:

  • Pasar una lista de URLs a una sola llamada de scrape. Llama a scrape una vez por URL en MCP. Si necesitas específicamente una operación API masiva, usa el endpoint de lote de la API de Firecrawl fuera de MCP.
  • Usar formato markdown por defecto (usa formato JSON para extraer solo lo que necesitas).

Elegir el formato correcto:

  • Formato JSON (preferido): Para la mayoría de los casos de uso, usa formato JSON con un esquema para extraer solo los datos específicos necesarios. Esto mantiene las respuestas enfocadas y previene el desbordamiento de la ventana de contexto.
  • Formato Markdown: Solo cuando la tarea realmente requiera el contenido completo de la página (por ejemplo, resumir un artículo completo, analizar la estructura de la página).

Ejemplo de prompt:

"Obtén los detalles del producto de https://example.com/product."

Ejemplo de uso (formato JSON - preferido):

{
  "name": "firecrawl_scrape",
  "arguments": {
    "url": "https://example.com/product",
    "formats": [
      {
        "type": "json",
        "prompt": "Extract the product information",
        "schema": {
          "type": "object",
          "properties": {
            "name": { "type": "string" },
            "price": { "type": "number" },
            "description": { "type": "string" }
          },
          "required": ["name", "price"]
        }
      }
    ]
  }
}

Ejemplo de uso (formato markdown - cuando se necesita contenido completo):

{
  "name": "firecrawl_scrape",
  "arguments": {
    "url": "https://example.com/article",
    "formats": ["markdown"],
    "onlyMainContent": true
  }
}

Ejemplo de uso (formato de marca - extraer identidad de marca):

{
  "name": "firecrawl_scrape",
  "arguments": {
    "url": "https://example.com",
    "formats": ["branding"]
  }
}

Formato de marca: Extrae identidad de marca integral (colores, fuentes, tipografía, espaciado, logotipo, componentes de UI) para análisis de diseño o replicación de estilo. Privacidad: Establece redactPII: true para devolver contenido con información de identificación personal redactada.

Devuelve:

  • Datos estructurados JSON, markdown, perfil de marca u otros formatos según lo especificado.

2. Herramienta Map (firecrawl_map)

Mapea un sitio web para descubrir todas las URLs indexadas en el sitio.

Mejor para:

  • Descubrir URLs en un sitio web antes de decidir qué raspar
  • Encontrar secciones específicas de un sitio web

No recomendado para:

  • Cuando ya sabes qué URL específica necesitas (usa scrape)
  • Cuando necesitas el contenido de las páginas (usa scrape después de mapear)

Errores comunes:

  • Usar crawl para descubrir URLs en lugar de map

Ejemplo de prompt:

"Lista todas las URLs en example.com."

Ejemplo de uso:

{
  "name": "firecrawl_map",
  "arguments": {
    "url": "https://example.com"
  }
}

Devuelve:

  • Matriz de URLs encontradas en el sitio

3. Herramienta Search (firecrawl_search)

Busca en la web y opcionalmente extrae contenido de los resultados de búsqueda.

Mejor para:

  • Encontrar información específica en múltiples sitios web, cuando no sabes qué sitio web tiene la información.
  • Cuando necesitas el contenido más relevante para una consulta

No recomendado para:

  • Cuando ya sabes qué sitio web raspar (usa scrape)
  • Cuando necesitas cobertura integral de un solo sitio web (usa map o crawl)

Errores comunes:

  • Usar crawl o map para preguntas abiertas (usa search en su lugar)

Ejemplo de uso:

{
  "name": "firecrawl_search",
  "arguments": {
    "query": "remote work stipend policies at tech companies",
    "highlights": true,
    "limit": 5,
    "lang": "en",
    "country": "us",
    "scrapeOptions": {
      "formats": ["markdown"],
      "onlyMainContent": true,
      "redactPII": true
    }
  }
}

Establece highlights a true para solicitar fragmentos destacados relevantes a la consulta o false para mantener los fragmentos de búsqueda originales. Omítelo para usar el comportamiento predeterminado de la API.

Agrega "sources": ["alexandria"] para descubrimiento semántico de herramientas en data.tools, opcionalmente mezclado con web/noticias/imágenes. Se requiere una consulta. Usa firecrawl_find_tools en toda la superficie MCP para búsqueda contextual y divulgación progresiva; consulta Alexandria Tools.

Para artículos científicos, consulta Research Tools: buscan resúmenes y texto completo de artículos, mientras que categories: ["research"] aquí filtra resultados web ordinarios a sitios web afiliados a investigación.

Devuelve:

  • Matriz de resultados de búsqueda (con contenido raspado opcional), más un campo id. Pasa ese id a firecrawl_search_feedback después de haber usado los resultados para reembolsar 1 crédito (la búsqueda cuesta 2) y mejorar la calidad de la búsqueda.

Ejemplo de prompt:

"Compara las políticas de estipendio de trabajo remoto entre empresas tecnológicas."

3b. Herramienta de comentarios de búsqueda (firecrawl_search_feedback)

Envía comentarios estructurados sobre un resultado anterior de firecrawl_search. El primer comentario por id de búsqueda reembolsa 1 crédito y mejora la calidad de búsqueda de Firecrawl. Idempotente por id de búsqueda.

Llama a esto después de cada búsqueda que realmente uses (o que no haya ayudado). Los comentarios malos/parciales con missingContent son tan valiosos como los buenos.

Exclusión voluntaria: establece FIRECRAWL_NO_SEARCH_FEEDBACK=1 (o FIRECRAWL_DISABLE_SEARCH_FEEDBACK=1) en el entorno al iniciar el servidor MCP. La herramienta firecrawl_search_feedback no se registrará, por lo que los agentes no pueden llamarla. Los administradores de equipo también pueden deshabilitar los comentarios en el lado del servidor; en ese caso, la herramienta está registrada pero siempre devuelve feedbackErrorCode: "TEAM_OPTED_OUT".

Campo más importante: missingContent. Es una matriz de piezas específicas de contenido que el agente esperaba encontrar pero no encontró. Una entrada por tema faltante: se agregan entre equipos y nos dicen qué indexar a continuación.

Límite diario de reembolso (por equipo, por día UTC, 100 créditos por defecto). Una vez que el creditsRefundedToday de un equipo alcanza dailyRefundCap, los envíos posteriores aún registran comentarios pero ya no reembolsan créditos. La respuesta establece dailyCapReached: true. Los agentes deben dejar de llamar a esta herramienta por el resto del día UTC cuando vean esa bandera.

Ejemplo de uso:

{
  "name": "firecrawl_search_feedback",
  "arguments": {
    "searchId": "0193f6c5-1234-7890-abcd-1234567890ab",
    "rating": "good",
    "valuableSources": [
      {
        "url": "https://docs.firecrawl.dev/features/search",
        "reason": "Most up-to-date description of /search."
      }
    ],
    "missingContent": [
      {
        "topic": "Pricing for the search endpoint",
        "description": "No pricing tier table for /search specifically."
      },
      { "topic": "Per-team rate limits" }
    ],
    "querySuggestions": "Boost docs.firecrawl.dev for queries that mention 'firecrawl'"
  }
}

Devuelve:

  • JSON { success, feedbackId, creditsRefunded, alreadySubmitted? }.

3c. Herramienta de comentarios genéricos (firecrawl_feedback)

Envía comentarios estructurados para un trabajo de endpoint v2 completado a través de /v2/feedback. Úsalo para comentarios a nivel de endpoint en trabajos de scrape, parse, map o search. Para la calidad de los resultados de búsqueda específicamente, prefiere firecrawl_search_feedback porque incluye orientación específica de búsqueda.

Mantén los comentarios concisos: usa códigos de problema, etiquetas, notas breves, URLs, números de página y objetos de metadatos pequeños. No incluyas salidas crudas de scrape/parse.

Exclusión voluntaria: establece FIRECRAWL_NO_ENDPOINT_FEEDBACK=1 (o FIRECRAWL_DISABLE_ENDPOINT_FEEDBACK=1) en el entorno al iniciar el servidor MCP. La herramienta firecrawl_feedback no se registrará, por lo que los agentes no pueden llamarla.

Ejemplo de uso:

{
  "name": "firecrawl_feedback",
  "arguments": {
    "endpoint": "scrape",
    "jobId": "0193f6c5-1234-7890-abcd-1234567890ab",
    "rating": "partial",
    "issues": ["missing_markdown"],
    "tags": ["docs"],
    "note": "The pricing table was missing from the markdown output.",
    "url": "https://example.com/pricing",
    "pageNumbers": [1],
    "metadata": {
      "format": "markdown"
    }
  }
}

Devuelve:

  • JSON { success, feedbackId, creditsRefunded, creditsRefundedToday?, dailyRefundCap?, dailyCapReached?, alreadySubmitted?, warning? }.

4. Herramienta Crawl (firecrawl_crawl)

Inicia un trabajo de crawl, sondea hasta que alcanza un estado terminal y devuelve el estado/datos finales del crawl.

Mejor para:

  • Extraer contenido de múltiples páginas relacionadas, cuando necesitas cobertura integral.

No recomendado para:

  • Extraer contenido de una sola página (usa scrape)
  • Cuando los límites de tokens son una preocupación (usa map + scrape para un control más estricto)
  • Cuando necesitas resultados rápidos (el rastreo puede ser lento)

Advertencia: Las respuestas de crawl pueden ser muy grandes y pueden exceder los límites de tokens. Limita la profundidad del crawl y el número de páginas, o usa map + scrape para un control más estricto.

Errores comunes:

  • Establecer limit o maxDiscoveryDepth demasiado alto (causa desbordamiento de tokens)
  • Usar crawl para una sola página (usa scrape en su lugar)

Ejemplo de prompt:

"Obtén todas las publicaciones de blog de los primeros dos niveles de example.com/blog."

Ejemplo de uso:

{
  "name": "firecrawl_crawl",
  "arguments": {
    "url": "https://example.com/blog/*",
    "maxDiscoveryDepth": 2,
    "limit": 100,
    "allowExternalLinks": false,
    "deduplicateSimilarURLs": true
  }
}

Devuelve:

  • Estado y datos finales del crawl después del sondeo interno, incluyendo id, status, completed, total, creditsUsed, expiresAt, next y data. Usa el id devuelto con firecrawl_check_crawl_status si necesitas volver a verificar el trabajo más tarde.

5. Verificar estado del crawl (firecrawl_check_crawl_status)

Verifica el estado y los resultados de un trabajo de crawl existente por ID.

{
  "name": "firecrawl_check_crawl_status",
  "arguments": {
    "id": "550e8400-e29b-41d4-a716-446655440000"
  }
}

Devuelve:

  • La respuesta incluye el estado del trabajo de crawl:

6. Herramienta Parse (firecrawl_parse)

Analiza archivos locales o referencias de carga alojadas con el endpoint /v2/parse de Firecrawl.

Mejor para: PDFs, documentos de Word, hojas de cálculo, archivos HTML y otros documentos que necesitan salida markdown o JSON estructurado. MCP alojado admite un flujo de referencia de carga de dos pasos; las lecturas directas de archivos locales requieren un FIRECRAWL_API_URL autoalojado.

No recomendado para: URLs remotas (usa scrape), múltiples archivos en una sola llamada (llama a parse una vez por archivo) o acciones solo de navegador como capturas de pantalla y clics.

Flujo MCP alojado: MCP alojado no puede leer el sistema de archivos del llamador directamente. Llama a firecrawl_parse con filePath para recibir un comando de carga de corta duración y nextToolCall, sube el archivo localmente, luego llama a firecrawl_parse nuevamente con el uploadRef devuelto. Acuñar la URL de carga alojada requiere autenticación de Firecrawl o elegibilidad sin clave. En modo npx firecrawl-mcp local, el análisis directo de archivos actualmente requiere FIRECRAWL_API_URL que apunte a una API de Firecrawl autoalojada; un servidor local simple solo con clave de API en la nube no puede leer y subir archivos a través de esta herramienta.

Ejemplo de uso:

{
  "name": "firecrawl_parse",
  "arguments": {
    "filePath": "/absolute/path/to/document.pdf",
    "formats": ["markdown"],
    "parsers": ["pdf"],
    "zeroDataRetention": true
  }
}

Devuelve: Contenido del documento analizado o instrucciones de carga alojada con un nextToolCall.

7. Datos estructurados con Scrape JSON

Para datos estructurados de una página conocida, llama a firecrawl_scrape una vez por URL con formats: ["json"]. Pon el prompt de extracción y el esquema JSON en jsonOptions.

{
  "name": "firecrawl_scrape",
  "arguments": {
    "url": "https://example.com/product",
    "formats": ["json"],
    "jsonOptions": {
      "prompt": "Extract the product name, price, and description.",
      "schema": {
        "type": "object",
        "properties": {
          "name": { "type": "string" },
          "price": { "type": "number" },
          "description": { "type": "string" }
        },
        "required": ["name", "price"]
      }
    }
  }
}

Cuando las URLs no se conocen o los datos abarcan varios sitios, usa firecrawl_agent para investigación multi-fuente.

8. Herramienta Agent (firecrawl_agent)

Agente autónomo de investigación web que devuelve datos estructurados cuando no conoces las URLs o la respuesta abarca varios sitios. Describe los campos que necesitas, opcionalmente pasa un esquema JSON y URLs semilla, y el agente busca, navega, lee páginas y devuelve JSON ensamblado entre fuentes. Úsalo para una entidad más sus campos, para listas y conjuntos de datos, y para páginas que necesitan navegación para llegar a los datos. Para una URL conocida, usa firecrawl_scrape con formato JSON en su lugar.

Cómo funciona:

El agente realiza búsquedas web, sigue enlaces, lee páginas y recopila datos de forma autónoma. Esto se ejecuta asincrónicamente: devuelve un ID de trabajo inmediatamente, y sondeas firecrawl_agent_status para verificar cuándo está completo y recuperar los resultados.

Flujo de trabajo asíncrono:

  1. Llama a firecrawl_agent con tu prompt/esquema → devuelve un ID de trabajo
  2. Haz otras tareas mientras el agente investiga (puede tomar minutos para consultas complejas)
  3. Consulta firecrawl_agent_status con el ID de trabajo para verificar el progreso
  4. Cuando el estado sea "completed", la respuesta incluye los datos extraídos

Ideal para:

  • Tareas de investigación complejas donde no conoces las URLs exactas
  • Recopilación de datos de múltiples fuentes
  • Encontrar información dispersa en la web
  • Tareas donde puedes hacer otro trabajo mientras esperas los resultados

No recomendado para:

  • Raspado simple de una sola página donde conoces la URL (usa scrape con formato JSON - más rápido y económico)

Argumentos:

  • prompt: Descripción en lenguaje natural de los datos que deseas (obligatorio, máximo 10,000 caracteres)
  • urls: Matriz opcional de URLs para enfocar al agente en páginas específicas
  • schema: Esquema JSON opcional para salida estructurada

Ejemplo de prompt:

"Encuentra a los fundadores de Firecrawl y sus antecedentes"

Ejemplo de uso (iniciar agente, luego consultar resultados):

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

Luego consulta con firecrawl_agent_status usando el ID de trabajo devuelto.

Ejemplo de uso (con URLs - el agente se enfoca en páginas específicas):

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

Devuelve:

  • ID de trabajo para verificación de estado. Usa firecrawl_agent_status para consultar los resultados.

9. Verificar Estado del Agente (firecrawl_agent_status)

Verifica el estado de un trabajo de agente y recupera los resultados cuando esté completo. Usa esto para consultar los resultados después de iniciar un agente.

Patrón de consulta: La investigación del agente puede tomar minutos para consultas complejas. Consulta este endpoint periódicamente (por ejemplo, cada 10-30 segundos) hasta que el estado sea "completed" o "failed".

{
  "name": "firecrawl_agent_status",
  "arguments": {
    "id": "550e8400-e29b-41d4-a716-446655440000"
  }
}

Estados posibles:

  • processing: El agente aún está investigando - verifica más tarde
  • completed: Investigación finalizada - la respuesta incluye los datos extraídos
  • failed: Ocurrió un error

10. Herramienta Interact (firecrawl_interact)

Interactúa con una URL nueva o con una página que ya fue abierta por firecrawl_scrape.

Ideal para: Hacer clic, escribir, navegar y extraer estado de páginas dinámicas sin restaurar las herramientas de navegador obsoletas.

Opciones de uso:

  • Pasa url para raspar y abrir una página para interacción en una sola llamada MCP.
  • Pasa scrapeId para continuar interactuando con una página ya raspada.
  • Pasa exactamente uno de url o scrapeId, más ya sea prompt o code.

Ejemplo de uso:

{
  "name": "firecrawl_interact",
  "arguments": {
    "url": "https://example.com",
    "prompt": "Click the pricing link and summarize the visible plans"
  }
}

Devuelve: Resultado de la interacción y, para el modo URL, el scrapeId derivado para seguimiento o limpieza.

11. Detener Herramienta Interact (firecrawl_interact_stop)

Detén una sesión de interacción para una página raspada cuando hayas terminado de interactuar.

{
  "name": "firecrawl_interact_stop",
  "arguments": {
    "scrapeId": "scrape-id-here"
  }
}

12. Herramientas de Investigación (firecrawl_research_*)

Busca e inspecciona artículos y repositorios de GitHub a través de las herramientas MCP de investigación.

Cubre: Resúmenes de artículos y texto completo en literatura biomédica, de ciencias de la vida y clínica (PubMed, bioRxiv, medRxiv) junto con arXiv y otras fuentes científicas.

Herramientas de investigación disponibles:

  • firecrawl_research_search_papers: busca metadatos de artículos y resúmenes con una consulta en lenguaje natural, con filtros opcionales de autor, categoría y fecha.
  • firecrawl_research_inspect_paper: recupera metadatos canónicos para un ID de artículo (arXiv, PMC, PMID o DOI).
  • firecrawl_research_related_papers: expande desde uno o más artículos ancla a través del grafo de citas.
  • firecrawl_research_read_paper: lee pasajes de texto completo de un artículo específico.

Ideal para: Revisión de literatura, búsqueda de artículos y flujos de trabajo de descubrimiento de repositorios donde el agente necesita una superficie de investigación enfocada en lugar de raspado web general.

firecrawl_search con categories: ["research"] es una superficie diferente: filtra resultados web ordinarios a sitios web afiliados a investigación y devuelve fragmentos de página, no registros de artículos. Usa estas herramientas cuando la pregunta sea sobre la literatura en sí, y pasa varias formulaciones distintas de la misma pregunta: muestran artículos diferentes a los de una sola consulta.

13. Herramientas de Monitoreo (firecrawl_monitor_*)

Crea y gestiona monitores de página recurrentes. Los monitores ejecutan raspados o rastreos programados, comparan cada resultado con la última instantánea retenida y pueden notificar por webhook o correo electrónico.

Ideal para:

  • Observar una página o unas pocas páginas a lo largo del tiempo
  • Alertar sobre cambios significativos usando un objetivo en inglés sencillo
  • Rastrear historial de verificaciones y diferencias a nivel de página

Patrón de creación recomendado:

Usa page o pages más goal. El servidor MCP construye la solicitud de monitor con un horario de 30 minutos y la API habilita el juicio de cambios significativos automáticamente.

El juicio de cambios significativos se ejecuta automáticamente cuando goal está configurado. Los webhooks de página exponen isMeaningful y judgment en eventos de monitor.page.

Escribe objetivos como instrucciones de monitor concisas de 2-3 oraciones. Di qué debería activar una alerta, preserva cualquier alcance que el usuario haya dado, e incluye exclusiones específicas de intención solo cuando sea obvio desde la solicitud. El ruido genérico como espacios en blanco, cambios solo de formato, IDs de solicitud, parámetros de seguimiento, metadatos genéricos y elementos de página no relacionados ya es manejado por el juez, así que no lo repitas en cada objetivo. Si el usuario es vago, mantén el objetivo amplio; si pide monitoreo amplio o "cualquier cambio", presérvalo. Si el usuario dice que no le importa algo, inclúyelo explícitamente.

{
  "name": "firecrawl_monitor_create",
  "arguments": {
    "page": "https://example.com/pricing",
    "goal": "Alert when pricing, packaging, or launch messaging changes."
  }
}

Múltiples páginas con webhooks:

{
  "name": "firecrawl_monitor_create",
  "arguments": {
    "pages": ["https://example.com/pricing", "https://example.com/changelog"],
    "goal": "Alert when pricing, packaging, or launch messaging changes.",
    "webhookUrl": "https://example.com/webhooks/firecrawl"
  }
}

Solicitudes de creación avanzadas:

Pasa body cuando necesites objetivos de rastreo, seguimiento de cambios JSON, retención personalizada o control explícito de judgeEnabled.

{
  "name": "firecrawl_monitor_create",
  "arguments": {
    "body": {
      "name": "Docs monitor",
      "schedule": { "text": "hourly", "timezone": "UTC" },
      "goal": "Alert when docs pages add, remove, or materially change API behavior.",
      "targets": [{ "type": "crawl", "url": "https://example.com/docs" }]
    }
  }
}

Otras herramientas de monitor:

  • firecrawl_monitor_list: lista monitores.
  • firecrawl_monitor_get: obtiene un monitor.
  • firecrawl_monitor_update: actualiza campos incluyendo goal, judgeEnabled, webhook y notification.
  • firecrawl_monitor_run: activa una verificación ahora.
  • firecrawl_monitor_delete: elimina un monitor (destructivo; solo llama cuando el usuario tenga la intención de eliminarlo).
  • firecrawl_monitor_checks: lista verificaciones, opcionalmente filtradas por estado.
  • firecrawl_monitor_check: obtiene resultados a nivel de página, incluyendo diff, snapshot, judgment.meaningful y judgment.meaningfulChanges.

14. Herramienta de Búsqueda para Desarrolladores (firecrawl_developer_search)

Busca en un índice construido para agentes de codificación. El índice cubre problemas de GitHub, solicitudes de extracción fusionadas, READMEs de repositorios y sitios de documentación seleccionados.

Ideal para: Una pregunta de programación: comportamiento de código, una biblioteca o framework, un contrato de API, un mensaje de error o un error conocido.

Argumentos:

{
  "name": "firecrawl_developer_search",
  "arguments": {
    "query": "how do I configure retries",
    "k": 10,
    "skills": "only"
  }
}
  • query (obligatorio): la pregunta o frase de búsqueda para desarrolladores.
  • k: número de resultados clasificados. El valor predeterminado es 10 y el máximo es 100.
  • skills: configúralo en "only" para buscar solo archivos de habilidades de agente.

Devuelve: Resultados clasificados. Cada resultado lleva un ID, un tipo de fuente (issue, pull_request, readme o doc), una URL, un título y los pasajes coincidentes en markdown.

firecrawl_search con categories: ["developer"] busca el mismo índice junto a los resultados web. Usa esta herramienta en su lugar cuando quieras los pasajes coincidentes, el filtro skills o ningún resultado web en la respuesta. El endpoint solo de búsqueda expone ambas herramientas, y la misma elección aplica allí.

15. Herramientas de Alexandria

Firecrawl Alexandria es un catálogo de proveedores de datos accesibles a través de la API de Firecrawl con una clave de API de Firecrawl en un equipo con acceso a Alexandria. Las sesiones sin clave (alojadas o locales) obtienen Alexandria requires an API key on a team with Alexandria access; las herramientas de descubrimiento de Alexandria no se listan para sesiones alojadas sin clave.

Descubrimiento semántico (firecrawl_search):

{
  "name": "firecrawl_search",
  "arguments": {
    "query": "podcast conversations about AI agents",
    "sources": ["web", "alexandria"],
    "domainTools": true,
    "limit": 2
  }
}

data.tools por defecto ofrece sugerencias compactas con proveedor, capacidad y descripción. Configura toolDetail: "summary" para metadatos y navegación, o toolDetail: "full" para contratos que incluyen entradas, campos de respuesta y ejemplos. domainTools: true agrega coincidencias contextuales a menciones de consulta y URLs de resultados en esa misma matriz. Verifica warning para descubrimiento no disponible. La búsqueda requiere una consulta y no acepta filtros de recorrido de catálogo. Este descubrimiento funciona tanto en la superficie MCP completa como en la solo de búsqueda.

Divulgación progresiva (firecrawl_find_tools, superficie MCP completa):

{
  "name": "firecrawl_find_tools",
  "arguments": {
    "providers": ["particle"],
    "capabilities": ["podcasts/episodes/search"],
    "expand": ["options", "response", "examples"],
    "limit": 2
  }
}

Comienza sin argumentos para categorías, luego reduce progresivamente el catálogo:

ArgumentosResultado
{}Categorías y descripciones cortas
{"categories":["podcasts"]}Proveedores en esa categoría
{"categories":["podcasts"],"providers":["particle"]}Nombres de herramientas compactos, descripciones y precios
{"providers":["particle"],"capabilities":["podcasts/episodes/search"]}Entradas seleccionadas completas, restricciones, respuesta y ejemplos

No se requiere salto de grupo. level explícito admite categories, providers, groups o tools; expand explícito selecciona secciones de contrato. expand: [] mantiene los resultados compactos incluso al seleccionar una capacidad. Para contratos completos amplios, solicita explícitamente level: "tools" y expand: ["options", "response", "examples"]. Las URLs proporcionan descubrimiento contextual sin recuperar la página.

Los resultados están en data.alexandria[0].data. Sigue el nextTool de un elemento llamando a su name con su arguments; el nextTool de la página avanza la paginación. Los objetos next existentes siguen siendo llamadas de descubrimiento de Alexandria utilizables a través de firecrawl_scrape. El descubrimiento cuesta cero créditos y nunca ejecuta las herramientas de proveedor. Lee el contrato completo seleccionado antes de la ejecución.

Estos controles requieren la implementación de API de Alexandria correspondiente.

Ejecutar (firecrawl_scrape con alexandria): pasa alexandria en lugar de url (exactamente uno de los dos; requestId y timeout también pueden proporcionarse). Se acepta una sola llamada o una matriz de hasta diez llamadas.

{
  "name": "firecrawl_scrape",
  "arguments": {
    "alexandria": [
      {
        "provider": "fred",
        "capability": "series/observations",
        "options": { "series_id": "CPIAUCSL" }
      }
    ]
  }
}

Devuelve: { success, scrape_id, requestId, data: { alexandria: [...], creditsCost } }. Cada elemento es un resultado (provider, capability, creditsCost, data, records, upstreamStatus) o un error con un code; el lote nunca falla como un todo por un error de proveedor y data.creditsCost suma los elementos exitosos. Los cuerpos de error de Alexandria (403 sin acceso a Alexandria, y estados de facturación 402/409) se transmiten en banda con su code.

La ejecución genera un x-request-id y lo devuelve en éxito o fracaso. Reintenta la carga útil idéntica con ese requestId; no crees un nuevo ID después de un resultado incierto. Los créditos disponibles son verificados por la API.

Un proveedor de Alexandria cuyos términos el equipo no ha aceptado falla antes de que todo se ejecute con HTTP 403 y este cuerpo:

{
  "success": false,
  "code": "THIRD_PARTY_DATA_TERMS_REQUIRED",
  "error": "An organization admin must accept the benzinga provider's terms (version 2026-09-12-placeholder) before this request can run. Accept them at https://www.firecrawl.dev/app/alexandria/benzinga",
  "requiresAction": {
    "type": "accept_terms",
    "terms": "benzinga",
    "version": "2026-09-12-placeholder",
    "url": "https://www.firecrawl.dev/app/alexandria/benzinga"
  }
}

El resultado de la herramienta lo transmite como un error con structuredContent que lleva code, status: 403, requestId, el objeto requiresAction sin cambios, y next_actions (human_action_required luego retry_same_request). Aceptar términos es un acto legal. Usa la llamada nextTool devuelta para leer el acuerdo a través de firecrawl_scrape con alexandria: [{provider: "firecrawl", capability: "terms/show", options: {provider: "<provider>"}}]. Preséntalo al usuario y obtén autorización explícita para vincular su organización antes de llamar a firecrawl_scrape con capacidad terms/accept bajo el proveedor firecrawl. Sus opciones son provider, el version exacto revisado y hexadecimal en minúsculas de 64 caracteres digest, y confirmed: true. Una solicitud de datos no es consentimiento. Los errores de autoridad o elegibilidad pueden requerir que un administrador de organización use requiresAction.url. No ocurren aceptaciones automáticas ni reintentos inciertos. Envía llamadas de términos por separado de la ejecución. Estas son capacidades anidadas, no herramientas MCP de nivel superior. No se cobran créditos por la recuperación bloqueada. Después de la aceptación confirmada, llama a la misma herramienta nuevamente con la carga útil idéntica y requestId.

16. Herramienta de Uso de Créditos

La herramienta requiere una cuenta de Firecrawl autenticada y es de solo lectura.

  • firecrawl_credit_usage por defecto es { "view": "current" } y devuelve remainingCredits, planCredits, billingPeriodStart y billingPeriodEnd. Los créditos restantes pueden superar los créditos del plan cuando el equipo tiene recargas o subvenciones.
  • Pase { "view": "historical" } para períodos de mes calendario que contengan startDate, endDate y creditsUsed. Pasar { "byApiKey": true } también selecciona la vista histórica y divide los períodos por clave de API; cada fila incluye entonces apiKey. No combine byApiKey con { "view": "current" }. El endDate del período más reciente puede ser nulo.

Sistema de registro

El servidor incluye un registro exhaustivo:

  • Estado y progreso de las operaciones
  • Métricas de rendimiento
  • Seguimiento de límites de velocidad
  • Condiciones de error

Ejemplos de mensajes de registro:

[INFO] Firecrawl MCP Server initialized successfully
[INFO] Starting scrape for URL: https://example.com
[ERROR] Rate limit exceeded

Manejo de errores

El servidor proporciona un manejo robusto de errores:

  • Errores de límite de velocidad de la API mostrados al cliente MCP
  • Mensajes de error detallados
  • Resiliencia de red

Ejemplo de respuesta de error:

{
  "content": [
    {
      "type": "text",
      "text": "Error: Rate limit exceeded"
    }
  ],
  "isError": true
}

Desarrollo

# Install dependencies
npm install

# Build
npm run build

# Run tests
npm test

Contribuciones

  1. Haga un fork del repositorio
  2. Cree su rama de características
  3. Ejecute las pruebas: npm test
  4. Envíe una solicitud de extracción

Agradecimientos a los colaboradores

¡Gracias a @vrknetha, @cawstudios por la implementación inicial!

Gracias a MCP.so y Klavis AI por el alojamiento y a @gstarwd, @xiangkaiz y @zihaolin96 por integrar nuestro servidor.

Licencia

Licencia MIT: consulte el archivo LICENSE para obtener más detalles

Datos estructurados y resultados grandes

La búsqueda autenticada utiliza por defecto resultados web, herramientas semánticas de Alexandria y coincidencias de dominio. Comience con la pregunta real. Use firecrawl_find_tools para la búsqueda directa de herramientas semánticas, contratos seleccionados o navegación progresiva: categorías → proveedores → herramientas compactas → contrato seleccionado. Ejecute herramientas a través de firecrawl_scrape; el raspado de URL ordinario y la búsqueda nunca ejecutan automáticamente herramientas de proveedores.

Para contratos seleccionados, prefiera expand: ["options", "response"] y solicite ejemplos solo si la forma de la entrada no está clara. Inspeccione las capacidades relacionadas juntas y reutilice los contratos devueltos.

Para un resultado de flujo de trabajo potencialmente grande, proporcione y conserve un requestId de nivel superior antes de la ejecución. Ese ID permanece disponible incluso si el cliente rechaza la respuesta. Los raspados de URL regulares usan el ID de raspado devuelto en su lugar.

Para un flujo de trabajo retenido grande o un resultado de raspado regular, llame a firecrawl_scrape con:

{
  "alexandria": {
    "provider": "firecrawl",
    "capability": "bash",
    "options": {
      "requestId": "<source-request-or-scrape-id>",
      "command": "ls -lh"
    }
  }
}

Lea stdout, stderr, exitCode y workspaceId en data.alexandria[0].data. Continúe con options: {workspaceId, command} para inspeccionar response.json usando jq, o document.md usando comandos de texto acotados para raspados regulares. Mantenga la salida selectiva. La carga de la fuente debe ser una llamada independiente; su ID de fuente anidado difiere del ID de solicitud de ejecución de nivel superior. Los espacios de trabajo expiran después de cinco minutos de inactividad, y no todos los resultados se retienen (incluidos los cargas útiles de flujo de trabajo de ZDR y proveedores de API). Los ID de búsqueda no son compatibles.

Para fuentes de flujo de trabajo, response.json conserva el sobre de la API: seleccione .data.alexandria[].data, luego el response.key del contrato seleccionado cuando no esté vacío. Combine recuentos y proyecciones relacionados en un solo comando Bash cuando esa forma se conozca, en lugar de inspeccionar claves repetidamente.

Las respuestas exitosas de ejecución de Alexandria por encima de 20,000 tokens estimados (bytes UTF-8 serializados divididos por cuatro) devuelven un pequeño traspaso después de que Bash remoto confirme que el lote completo es accesible. Siga nextTool para inspeccionar los datos retenidos. Esto agrega una llamada Bash e inicia un espacio de trabajo con un TTL de inactividad de cinco minutos. La carga útil completa se conserva. Si la confirmación falla, la respuesta original permanece en línea. La búsqueda, el raspado de URL ordinario, las respuestas de error y las llamadas de utilidad de Firecrawl no cambian. Este presupuesto de entrega no mide el contexto restante del cliente; no se agrega caché de resultados local al proceso. Cuando las herramientas del sistema de archivos local estén disponibles, guardar la salida de la CLI y leer secciones seleccionadas es otra opción.

La secuencia de descubrimiento de la CLI se asigna a estas llamadas MCP:

IntenciónHerramientaArgumentos
Herramientas web + semánticas + dominiofirecrawl_search{"query":"<user question>"}
Solo herramientas semánticasfirecrawl_search{"query":"<user question>","sources":["alexandria"]}
Categoríasfirecrawl_find_tools{}
Proveedores en una categoríafirecrawl_find_tools{"categories":["<category-id>"]}
Herramientas de proveedor compactasfirecrawl_find_tools{"providers":["<provider-id>"]}
Contrato seleccionadofirecrawl_find_tools{"providers":["<provider-id>"],"capabilities":["<capability-id>"]}
Ejecutarfirecrawl_scrape{"alexandria":{"provider":"<provider-id>","capability":"<capability-id>","options":{"<required-field>":"<value>"}}}

Use toda la superficie MCP para Find Tools y ejecución; la superficie dedicada solo de búsqueda no las expone. Reutilice un contrato completo de la búsqueda cuando esté presente en lugar de hacer otra llamada de descubrimiento. Siga la navegación nextTool devuelta solo cuando se necesiten más resultados.

Comentarios de sesión de Alexandria

Use la herramienta firecrawl_feedback existente con endpoint: "alexandria":

{
  "endpoint": "alexandria",
  "rating": "partial",
  "requestedWebsite": {
    "url": "https://example.com",
    "requestedFunctionality": "Find records and download their attachments"
  },
  "rationale": "Found summaries but could not retrieve attachments"
}

Esto usa POST /v2/feedback autenticado, sin ID de trabajo, fecha límite de antigüedad del trabajo o reembolso de crédito. Los arreglos opcionales providerFeedback y capabilityFeedback describen brechas de cobertura y problemas de ejecución; el esquema de la herramienta enumera los valores de problema admitidos. Un new_capability_request requiere requestedFunctionality; missing_capability (el proveedor existe pero carece de la capacidad) no lo requiere. Se aplican los controles existentes de exclusión de comentarios y autenticación.

Los agentes se dirigen a este bucle desde tres lugares: las instrucciones del servidor, las descripciones de firecrawl_scrape y firecrawl_find_tools, y un objeto feedbackTool adjunto a cada resultado de ejecución y descubrimiento de Alexandria (con el nombre de la herramienta y un esqueleto de los argumentos). La sugerencia se omite para llamadas internas de Firecrawl como bash y cuando firecrawl_feedback no está registrado (FIRECRAWL_NO_ENDPOINT_FEEDBACK o inicio sin clave).