Instalación
Requiere PHP 8.1 o superior.
Integración con Laravel
.env:
Uso
- Obtén una clave de API en firecrawl.dev
- Configura la clave de API como una variable de entorno llamada
FIRECRAWL_API_KEY, o pásala conFirecrawlClient::create(apiKey: ...)
Uso del facade de Laravel
Firecrawl o la inyección de dependencias:
Scraping de una URL
scrape.
Extracción JSON
JsonFormat mediante el endpoint scrape:
Rastreo de un sitio web
crawl.
Iniciar un rastreo
startCrawl.
Consultar el estado del rastreo
getCrawlStatus.
Cancelar un rastreo
cancelCrawl.
Errores de rastreo
getCrawlErrors.
Mapeo de un sitio web
map.
Buscar en la Web
search.
Scraping por lotes
batchScrape.
startBatchScrape, getBatchScrapeStatus y cancelBatchScrape:
Agente
agent.
startAgent, getAgentStatus y cancelAgent:
Uso & métricas
Herramientas de Laravel AI SDK
laravel/ai), de modo que los agentes puedan hacer scraping, buscar, mapear y rastrear la web sin un MCP Server ni llamadas HTTP manuales.
Requiere
firecrawl/firecrawl-sdk 1.9.0 o posterior, además de laravel/ai 0.9 o posterior (PHP 8.3+, Laravel 12+). Las clases de las herramientas solo se cargan cuando laravel/ai está instalado.FirecrawlClient desde el contenedor, por lo que se reutiliza tu configuración actual de config/firecrawl.php y FIRECRAWL_API_KEY tal cual:
Herramientas disponibles
Los nombres de las herramientas coinciden con los del Firecrawl MCP server, por lo que los agentes ven la misma terminología en todas las interfaces. Registra las cuatro a la vez con el helper spread:
FirecrawlTools::all() se lo pasa a las cuatro herramientas:
Parámetros de las herramientas
Los valores de
limit fuera de rango se ajustan al límite más cercano en lugar de rechazarse, por lo que un modelo que solicite 99 resultados de búsqueda recibirá 20 en lugar de un error.
Comportamiento de la herramienta
firecrawl_search y firecrawl_map devuelven arrays JSON de resultados. firecrawl_scrape devuelve la página en markdown.
Resultados del rastreo
firecrawl_crawl espera hasta 55 segundos a que termine el rastreo y luego devuelve un objeto JSON que deja explícito el resultado. Los rastreos fallidos, cancelados o parciales siguen siendo visibles para el modelo a través del campo status, en lugar de truncarse sin avisar:
omittedPages cuenta las páginas omitidas para mantenerse dentro del presupuesto de salida, y note le indica al modelo que existen más páginas en el servidor y que debe usar un límite más bajo o hacer scraping de páginas específicas con firecrawl_scrape. La herramienta informa sobre la paginación en lugar de seguirla, por lo que los agentes que necesitan todas las páginas de un rastreo grande deben usar FirecrawlClient directamente.
Si el rastreo sigue en ejecución cuando expira la espera, la herramienta lo indica y le recuerda al modelo que el rastreo aún puede completarse del lado del servidor. Los inicios de rastreo incluyen una clave de idempotencia UUID, por lo que un reintento a nivel HTTP nunca crea un rastreo duplicado.
Si tu agente se ejecuta dentro de un trabajo en cola, mantén pequeño el límite del rastreo o aumenta el timeout del trabajo del worker. La espera, la frecuencia de poll y el límite por página son propiedades protegidas, así que extiende la clase para ajustarlas:
Browser
Crear una sesión
Ejecutar código
Sesión interactiva vinculada al scraping
interact(...)ejecuta código en la sesión de navegador vinculada al scraping (y la inicializa la primera vez que se usa).stopInteractiveBrowser(...)detiene explícitamente la sesión interactiva cuando hayas terminado.
Listar & cerrar sesiones
Configuración
FirecrawlClient::create() admite las siguientes opciones:
Cliente HTTP personalizado
GuzzleHttp\ClientInterface para controlar el pool de conexiones, el middleware, la configuración del proxy y otras funciones HTTP. Si se proporciona, la configuración timeoutSeconds se ignora y se utiliza la configuración del propio cliente.
Manejo de errores
Firecrawl\Exceptions.
¿Eres un agente de IA que necesita una clave de API de Firecrawl? Consulta firecrawl.dev/agent-onboarding/SKILL.md para obtener instrucciones de incorporación automática.

