Passer au contenu principal

Prérequis

Installez le SDK

npm install @mendable/firecrawl-js

Configurez votre clé API

Ajoutez votre clé API dans .env :
FIRECRAWL_API_KEY=fc-YOUR-API-KEY

Créer les outils Firecrawl

Créez src/mastra/tools/firecrawl.ts pour exposer la recherche et le scraping comme outils Mastra :
import Firecrawl from "@mendable/firecrawl-js";
import { createTool } from "@mastra/core/tools";
import { z } from "zod";

const firecrawl = new Firecrawl({ apiKey: process.env.FIRECRAWL_API_KEY! });

export const firecrawlSearch = createTool({
  id: "firecrawl-search",
  description: "Search the web and return top results.",
  inputSchema: z.object({ query: z.string().min(1) }),
  outputSchema: z.object({
    results: z.array(
      z.object({
        title: z.string().nullable(),
        url: z.string(),
      }),
    ),
  }),
  execute: async ({ query }) => {
    const results = await firecrawl.search(query, { limit: 3 });
    return {
      results: (results.web ?? []).map((item) => ({
        title: item.title ?? null,
        url: item.url,
      })),
    };
  },
});

export const firecrawlScrape = createTool({
  id: "firecrawl-scrape",
  description: "Scrape a URL and return markdown content.",
  inputSchema: z.object({ url: z.string().url() }),
  outputSchema: z.object({ markdown: z.string() }),
  execute: async ({ url }) => {
    const result = await firecrawl.scrape(url, {
      formats: ["markdown"],
      onlyMainContent: true,
    });
    return { markdown: result.markdown ?? "" };
  },
});

Créer l’agent

Créez src/mastra/agents/web-agent.ts et ajoutez-y les outils Firecrawl :
import { Agent } from "@mastra/core/agent";
import { firecrawlSearch, firecrawlScrape } from "../tools/firecrawl";

export const webAgent = new Agent({
  id: "web-agent",
  name: "Web Agent",
  instructions:
    "Use Firecrawl tools to search and scrape web pages, then summarize the results.",
  model: "openai/gpt-5.4",
  tools: { firecrawlSearch, firecrawlScrape },
});

Enregistrer l’agent

Enregistrez l’agent dans votre instance Mastra, dans src/mastra/index.ts :
import { Mastra } from "@mastra/core";
import { webAgent } from "./agents/web-agent";

export const mastra = new Mastra({
  agents: { webAgent },
});

Tester dans Studio

Lancez le serveur de développement et ouvrez Mastra Studio :
mastra dev
Ouvrez le Web Agent et essayez des prompts comme :
  • “Trouvez le dernier changelog de Firecrawl et résumez la dernière mise à jour.”
  • “Recherchez la tarification de Firecrawl et extrayez les différents niveaux d’offre.”

Firecrawl auto-hébergé

Si vous exécutez Firecrawl en local, définissez FIRECRAWL_API_URL et passez apiUrl au client :
const firecrawl = new Firecrawl({
  apiKey: process.env.FIRECRAWL_API_KEY!,
  apiUrl: process.env.FIRECRAWL_API_URL,
});

Prochaines étapes

Docs scraping

Toutes les options de scraping, y compris les formats, les actions et les proxies

Docs recherche

Recherchez sur le web et obtenez le contenu complet de la page

Docs Agent

Laissez un agent piloter Firecrawl de bout en bout

Référence SDK Node

Référence complète du SDK avec crawl, cartographie, extraction par lot, etc.