Utiliza la API de Firecrawl a través del Model Context Protocol
Una implementación de servidor del Model Context Protocol (MCP) que integra Firecrawl para buscar, hacer scraping e interactuar con la web. Nuestro servidor MCP es de código abierto y está disponible en GitHub.
Configuración de Cursor 🖥️
Nota: Requiere Cursor versión 0.45.6+
Para ver las instrucciones de configuración más actualizadas, consulta la documentación oficial de Cursor sobre cómo configurar servidores MCP:
Guía de configuración de servidores MCP de CursorPara configurar Firecrawl MCP en Cursor v0.48.6
Si usas Windows y tienes problemas, prueba cmd /c "set FIRECRAWL_API_KEY=your-api-key && npx -y firecrawl-mcp"
Reemplaza your-api-key por tu clave de API de Firecrawl. Si aún no tienes una, puedes crear una cuenta y obtenerla en https://www.firecrawl.dev/app/api-keysDespués de agregarlo, actualiza la lista de servidores MCP para ver las nuevas tools. El Composer Agent usará Firecrawl MCP automáticamente cuando corresponda, pero puedes solicitarlo explícitamente describiendo tus necesidades de datos web. Accede al Composer con Command+L (Mac), selecciona “Agent” junto al botón de envío e ingresa tu consulta.
Para una instalación con un solo clic, haz clic en uno de los botones de instalación de abajo…Para una instalación manual, añade el siguiente bloque JSON a tu archivo de configuración de usuario (JSON) en VS Code. Puedes hacerlo pulsando Ctrl + Shift + P y escribiendo Preferences: Open User Settings (JSON).
Opcionalmente, también puedes añadirlo a un archivo llamado .vscode/mcp.json en tu espacio de trabajo. Esto te permitirá compartir la configuración con otras personas:
Nota: Algunos usuarios han informado de problemas al añadir el servidor MCP a VS Code debido a cómo valida JSON con un formato de esquema obsoleto (microsoft/vscode#155379).
Esto afecta a varias herramientas MCP, incluida Firecrawl.Solución alternativa: Desactiva la validación de JSON en VS Code para permitir que el servidor MCP se cargue correctamente.
Consulta la referencia: directus/directus#25906 (comment).El servidor MCP sigue funcionando correctamente cuando se invoca a través de otras extensiones, pero el problema se produce específicamente al registrarlo directamente en la lista de servidores MCP. Planeamos añadir instrucciones una vez que VS Code actualice su validación de esquemas.
Si aparece el error “Couldn’t reach the MCP Server”, es posible que tu versión de Claude Desktop no sea compatible con el transporte HTTP en streaming. Usa en su lugar el enfoque local con npx (requiere Node.js):
Si aparece un error spawn npx ENOENT, Node.js no está instalado o no está en el PATH del sistema. Instala Node.js desde nodejs.org (versión LTS) y luego reinicia por completo Claude Desktop. En Windows, también puedes ejecutar where npx en el Símbolo del sistema y usar la ruta completa (por ejemplo, C:\\Program Files\\nodejs\\npx.cmd) como valor de command.
En Tools to include, puedes seleccionar All, Selected o All Except: esto pondrá a disposición las herramientas de Firecrawl (scrape, crawl, map, search, extract, etc.)
Para implementaciones autohospedadas, ejecuta el servidor MCP con npx y habilita el modo de transporte HTTP:
Esto iniciará el servidor en http://localhost:3000/v2/mcp, que puedes usar en tu flujo de trabajo de n8n como endpoint. La variable de entorno HTTP_STREAMABLE_SERVER=true es necesaria, ya que n8n requiere transporte HTTP.
Para usar la API en la nube con reintentos personalizados y seguimiento de créditos:
# Requerido para la API en la nubeexport FIRECRAWL_API_KEY=your-api-key# Configuración opcional de reintentosexport FIRECRAWL_RETRY_MAX_ATTEMPTS=5 # Aumenta el número máximo de reintentosexport FIRECRAWL_RETRY_INITIAL_DELAY=2000 # Comienza con un retraso de 2 sexport FIRECRAWL_RETRY_MAX_DELAY=30000 # Retraso máximo de 30 sexport FIRECRAWL_RETRY_BACKOFF_FACTOR=3 # Retroceso más agresivo# Monitoreo opcional de créditosexport FIRECRAWL_CREDIT_WARNING_THRESHOLD=2000 # Advertencia a los 2000 créditosexport FIRECRAWL_CREDIT_CRITICAL_THRESHOLD=500 # Crítico a los 500 créditos
Para instancias autoalojadas:
# Requerido para instalaciones autogestionadasexport FIRECRAWL_API_URL=https://firecrawl.tu-dominio.com# Autenticación opcional para instalaciones autogestionadasexport FIRECRAWL_API_KEY=your-api-key # Si tu instancia requiere autenticación# Configuración personalizada de reintentosexport FIRECRAWL_RETRY_MAX_ATTEMPTS=10export FIRECRAWL_RETRY_INITIAL_DELAY=500 # Comienza con reintentos más rápidos
El servidor incluye varios parámetros configurables que se pueden establecer mediante variables de entorno. Estos son los valores predeterminados en caso de no configurarse:
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, // Alerta crítica cuando el uso de créditos alcance este nivel },};
Estas configuraciones controlan:
Comportamiento de reintentos
Reintenta automáticamente las solicitudes fallidas debido a límites de velocidad (rate limits)
Usa backoff exponencial para evitar sobrecargar la API
Ejemplo: con la configuración predeterminada, los reintentos se realizarán en:
1.er reintento: 1 segundo de espera
2.º reintento: 2 segundos de espera
3.er reintento: 4 segundos de espera (limitado por maxDelay)
Monitoreo del uso de créditos
Supervisa el consumo de créditos de la API para uso en la nube
Proporciona avisos al alcanzar umbrales específicos
Ayuda a prevenir interrupciones inesperadas del servicio
search: Término de búsqueda opcional para filtrar URL
sitemap: Controla el uso del sitemap: “include”, “skip” o “only”
includeSubdomains: Indica si se deben incluir subdominios en el mapeo
limit: Número máximo de URL a devolver
ignoreQueryParameters: Indica si se deben ignorar los parámetros de consulta al mapear
Mejor para: Descubrir URL en un sitio web antes de decidir qué datos extraer; encontrar secciones específicas de un sitio web.
Devuelve: Array de URL encontradas en el sitio.
Extrae información estructurada de páginas web usando capacidades de LLM. Es compatible tanto con extracción mediante IA en la nube como con LLM autoalojados.
urls: Matriz de URLs 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 la extracción desde enlaces externos
enableWebSearch: Habilita la búsqueda web para obtener contexto adicional
includeSubdomains: Incluye subdominios en la extracción
Al usar una instancia autogestionada (self-hosted), la extracción utilizará tu LLM configurado. Para la API en la nube, se usa el servicio de LLM gestionado de Firecrawl.
Agente autónomo de investigación web que navega de forma independiente por internet, busca información, recorre páginas y extrae datos estructurados a partir de tu consulta. Se ejecuta de forma asíncrona: devuelve inmediatamente un ID de tarea y haces polling a firecrawl_agent_status para comprobar cuándo se completa y recuperar los 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" } } } } } } }}
También puedes proporcionar URL específicas para que el agente se centre en ellas:
{ "name": "firecrawl_agent", "arguments": { "urls": ["https://docs.firecrawl.dev", "https://firecrawl.dev/pricing"], "prompt": "Compare the features and pricing information from these pages" }}
prompt: Descripción en lenguaje natural de los datos que quieres (obligatorio, máximo 10.000 caracteres)
urls: Matriz opcional de URLs para enfocar el agente en páginas específicas
schema: Esquema JSON opcional para una salida estructurada
Mejor para: Tareas de investigación complejas donde no conoces las URLs exactas; recopilación de datos desde múltiples fuentes; encontrar información dispersa en la web; extraer datos de aplicaciones de una sola página (SPA) con mucho JavaScript que fallan con el scrape normal.Devuelve: ID de la tarea para comprobación del estado. Usa firecrawl_agent_status para consultar periódicamente los resultados.
8. Comprobar el estado del agente (firecrawl_agent_status)
Comprueba el estado de una tarea de agente y recupera los resultados cuando haya finalizado. Realiza consultas (polling) cada 15-30 segundos y sigue haciéndolas durante al menos 2-3 minutos antes de considerar que la solicitud ha fallado.
ttl: Duración total de la sesión en segundos (30-3600, opcional)
activityTtl: Tiempo de inactividad en segundos (10-3600, opcional)
Ideal para: Ejecutar código (Python/JS) que interactúa con una página del navegador en tiempo real, automatización del navegador en múltiples pasos, sesiones con perfiles que se mantienen a través de múltiples llamadas a la herramienta.Devuelve: ID de sesión, URL de CDP y URL de vista en vivo.
13. Interact con una página extraída (firecrawl_interact)
Interact con una página extraída previamente en una sesión de navegador en vivo. Primero, haz scraping de una página con firecrawl_scrape; luego, usa el scrapeId devuelto (en los metadatos de la respuesta de scraping) para hacer clic en botones, rellenar formularios, extraer contenido dinámico o seguir navegando. La respuesta incluye liveViewUrl e interactiveLiveViewUrl, que puedes abrir en tu navegador para ver o controlar la sesión en tiempo real.
{ "name": "firecrawl_interact", "arguments": { "scrapeId": "scrape-id-from-previous-scrape", "prompt": "Click the Sign In button" }}
scrapeId: El ID del trabajo de scraping de una llamada previa a firecrawl_scrape (obligatorio)
prompt: Instrucción en lenguaje natural que describe la acción que se debe realizar (indica prompt o code)
code: Código que se ejecutará en la sesión del navegador (indica code o prompt)
language: bash, python o node (opcional; el valor predeterminado es node; solo se usa con code)
timeout: Tiempo de espera de ejecución en segundos, 1–300 (opcional; el valor predeterminado es 30)
Ideal para: Flujos de trabajo de varios pasos en una sola página: buscar en un sitio, hacer clic en los resultados, completar formularios y extraer datos que requieren interacción.Devuelve: El resultado de la interacción, incluidos liveViewUrl e interactiveLiveViewUrl.