Firecrawl

offiziell

Webdaten mit Firecrawl extrahieren

Was kann man mit Firecrawl MCP machen?

  • Beliebige URL in saubere Daten umwandeln — Fordere Produktdetails, Artikel oder strukturiertes JSON von einer einzelnen Seite über firecrawl_scrape an, mit Optionen für Markdown, JSON-Schema oder Marken-Extraktion.
  • Mit Kontext im Web suchen — Verwende firecrawl_search, um relevante Seiten zu finden und optional deren Inhalt zu scrapen, mit Hervorhebungen, Sprach- und Länderfiltern für gezielte Ergebnisse.
  • URL-Struktur einer Website kartieren — Entdecke alle indizierten URLs einer Domain mit firecrawl_map, um zu planen, was als Nächstes gescraped werden soll.
  • Mehrere Seiten automatisch crawlen — Starte einen firecrawl_crawl-Auftrag, um Inhalte aus einem Website-Bereich zu extrahieren, und prüfe dann den Fortschritt mit firecrawl_check_crawl_status.
  • Autonome Tiefenrecherche durchführen — Delegiere komplexe Fragen mit mehreren Quellen an firecrawl_agent und frage firecrawl_agent_status nach strukturierten Ergebnissen ab.
  • Mit Live-Seiten interagieren — Verwende firecrawl_interact, um auf dynamischen Websites zu klicken, zu tippen und zu navigieren, und beende Sitzungen dann mit firecrawl_interact_stop.

Dokumentation

Firecrawl MCP Server

Ein Model Context Protocol (MCP)-Server, der Firecrawl zu MCP-kompatiblen KI-Agenten bringt – suchen, scrapen und mit dem Live-Web interagieren für sauberen, agentenbereiten Kontext.

Großer Dank an @vrknetha, @knacklabs für die erste Implementierung!

Funktionen

  • Im Web suchen und vollständigen Seiteninhalt erhalten
  • In einem für Coding-Agenten erstellten Index suchen: GitHub-Issues, gemergte Pull Requests, READMEs und Doku
  • Jede URL in saubere, strukturierte Daten scrapen
  • Mit Seiten interagieren – klicken, navigieren und bedienen
  • Tiefenrecherche mit autonomem Agenten
  • Automatische Wiederholungsversuche und Ratenbegrenzung
  • Cloud- und Self-Hosted-Unterstützung
  • SSE-Unterstützung

Probieren Sie unseren MCP-Server auf MCP.so's Playground oder auf Klavis AI aus.

Installation

Gehosteter MCP (schlüsselloser kostenloser Tarif)

Verbinden Sie sich ohne Einrichtung mit dem entfernten gehosteten Server:

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

Im schlüssellosen kostenlosen Tarif funktionieren scrape, search und parse ohne API-Schlüssel (ratenbegrenzt). Andere Tools wie crawl, map und agent benötigen weiterhin einen Schlüssel.

Bevorzugen Sie OAuth oder einen API-Schlüssel, wann immer die Person sich anmelden kann. Das schaltet den vollständigen Tool-Satz und höhere Limits frei.

Für eine interaktive Kontoverbindung konfigurieren Sie Ihren MCP-Client so, dass er diese Server-URL verwendet. Dies ist ein MCP-Endpunkt, keine Browserseite; nutzen Sie den Kontoverbindungsfluss des Clients und fügen Sie beim erneuten Verbinden keinen zweiten Firecrawl-Server-Eintrag hinzu:

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

Für eine API-Schlüssel-Verbindung (z. B. eine unbeaufsichtigte Integration) behalten Sie die Server-URL wie folgt bei:

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

Konfigurieren Sie dann die sichere Header- oder Geheimnis-Einstellung des Clients mit:

Authorization: Bearer <FIRECRAWL_API_KEY>

Setzen Sie niemals einen API-Schlüssel in die Server-URL. Setzen Sie niemals einen API-Schlüssel in einen Agenten-Chat. Konfigurieren Sie ihn direkt im Client oder im Secret-Manager. Siehe den Leitfaden zur gehosteten MCP-Einrichtung und den Onboarding-Leitfaden für Agenten für clientspezifische Anweisungen.

Nur-Suche-Endpunkt

Eine schreibgeschützte, nur-Suche-Oberfläche wird ebenfalls gehostet unter:

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

Sie stellt einen festen Satz von sechs schreibgeschützten Tools bereit: firecrawl_search und die fünf firecrawl_research_*-Tools. Sie führt kein Seiteninhalt-Abrufen durch und hat eine eigene OAuth-Identität; der vollständige Endpunkt oben bleibt unverändert. Siehe docs/search-profile.md für den vollständigen Vertrag.

Ausführen mit npx

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

Manuelle Installation

npm install -g firecrawl-mcp

Ausführen auf Cursor

Cursor konfigurieren 🖥️ Hinweis: Erfordert Cursor-Version 0.45.6+ Für die aktuellsten Konfigurationsanweisungen lesen Sie bitte die offizielle Cursor-Dokumentation zur Konfiguration von MCP-Servern: Cursor MCP Server Konfigurationsleitfaden

So konfigurieren Sie Firecrawl MCP in Cursor v0.48.6

  1. Öffnen Sie die Cursor-Einstellungen
  2. Gehen Sie zu Features > MCP-Server
  3. Klicken Sie auf "+ Neuen globalen MCP-Server hinzufügen"
  4. Geben Sie den folgenden Code ein:
    {
      "mcpServers": {
        "firecrawl-mcp": {
          "command": "npx",
          "args": ["-y", "firecrawl-mcp"],
          "env": {
            "FIRECRAWL_API_KEY": "YOUR-API-KEY"
          }
        }
      }
    }
    

So konfigurieren Sie Firecrawl MCP in Cursor v0.45.6

  1. Öffnen Sie die Cursor-Einstellungen
  2. Gehen Sie zu Features > MCP-Server
  3. Klicken Sie auf "+ Neuen MCP-Server hinzufügen"
  4. Geben Sie Folgendes ein:
    • Name: "firecrawl-mcp" (oder einen bevorzugten Namen)
    • Typ: "Befehl"
    • Befehl: env FIRECRAWL_API_KEY=your-api-key npx -y firecrawl-mcp

Wenn Sie Windows verwenden und auf Probleme stoßen, versuchen Sie cmd /c "set FIRECRAWL_API_KEY=your-api-key && npx -y firecrawl-mcp"

Ersetzen Sie your-api-key durch Ihren Firecrawl-API-Schlüssel. Wenn Sie noch keinen haben, können Sie ein Konto erstellen und ihn von https://www.firecrawl.dev/app/api-keys erhalten.

Nach dem Hinzufügen aktualisieren Sie die MCP-Serverliste, um die neuen Tools zu sehen. Der Composer-Agent verwendet Firecrawl MCP automatisch, wenn es angemessen ist, aber Sie können es explizit anfordern, indem Sie Ihre Web-Scraping-Anforderungen beschreiben. Greifen Sie über Befehl+L (Mac) auf den Composer zu, wählen Sie "Agent" neben der Senden-Schaltfläche und geben Sie Ihre Anfrage ein.

Ausführen auf Windsurf

Fügen Sie dies zu Ihrer ./codeium/windsurf/model_config.json hinzu:

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

Ausführen mit Streamable HTTP Local Mode

Um den Server lokal mit Streamable HTTP anstelle des Standard-stdio-Transports auszuführen:

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

Verwenden Sie die URL: http://localhost:3000/mcp

Installation über Smithery (Legacy)

Um Firecrawl für Claude Desktop automatisch über Smithery zu installieren:

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

Ausführen auf VS Code

Für die Ein-Klick-Installation klicken Sie auf eine der Installationsschaltflächen unten...

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

Für die manuelle Installation fügen Sie den folgenden JSON-Block zu Ihrer Benutzereinstellungen (JSON)-Datei in VS Code hinzu. Sie können dies tun, indem Sie Ctrl + Shift + P drücken und Preferences: Open User Settings (JSON) eingeben.

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

Optional können Sie es zu einer Datei namens .vscode/mcp.json in Ihrem Arbeitsbereich hinzufügen. Dadurch können Sie die Konfiguration mit anderen teilen:

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

Konfiguration

Umgebungsvariablen

Erforderlich für Cloud-API

  • FIRECRAWL_API_KEY: Ihr Firecrawl-API-Schlüssel
    • Erforderlich bei Verwendung der Cloud-API (Standard)
    • Optional bei Verwendung einer Self-Hosted-Instanz mit FIRECRAWL_API_URL
  • FIRECRAWL_API_URL (Optional): Benutzerdefinierter API-Endpunkt für Self-Hosted-Instanzen
    • Beispiel: https://firecrawl.your-domain.com
    • Wenn nicht angegeben, wird die Cloud-API verwendet (erfordert API-Schlüssel)

MCP OAuth (Bearer-Zugriffstokens)

Gehostetes Firecrawl kann OAuth-Zugriffstokens (fco_…) über den Autorisierungsserver auf firecrawl.dev ausstellen. Dieser MCP-Server leitet die Anmeldeinformationen, die er auflöst, als Authorization: Bearer … an die Firecrawl-API weiter.

  • HTTP-Stream-Transports (CLOUD_SERVICE=true, HTTP_STREAMABLE_SERVER=true oder SSE_LOCAL=true): Clients sollten Authorization: Bearer <fco_access_token> bei MCP-Anfragen senden. Ein OAuth-Bearer-Token hat Vorrang vor x-firecrawl-api-key / x-api-key, wenn beide vorhanden sind.
  • stdio: Verwenden Sie FIRECRAWL_OAUTH_TOKEN für ein statisches Zugriffstoken oder verwenden Sie weiterhin FIRECRAWL_API_KEY für einen API-Schlüssel.

Verwenden Sie nur Zugriffs-Tokens (fco_…). Aktualisierungstokens (fcr_…) müssen am Token-Endpunkt ausgetauscht werden, nicht an die Scrape-/Such-API übergeben werden.

Nur-Suche-Oberfläche (gehostet)

Im gehosteten Modus (CLOUD_SERVICE=true) bedient eine zweite In-Process-Instanz den Nur-Suche-Endpunkt. Der gebündelte Dienst hat einen festen Bereitstellungsvertrag: nginx leitet /v2/mcp-search an die Instanz auf dem lokalen Port 3001 weiter, und die OAuth-geschützte Ressourcenkennung ist https://mcp.firecrawl.dev/v2/mcp-search.

FIRECRAWL_MCP_SEARCH_ENABLED (Standard true) ist der unterstützte operative Schalter; setzen Sie ihn auf false, um zu verhindern, dass die Suchinstanz startet. Der Node-Prozess akzeptiert auch FIRECRAWL_MCP_SEARCH_PORT, FIRECRAWL_MCP_SEARCH_ENDPOINT und FIRECRAWL_MCP_SEARCH_RESOURCE_URL für isolierte Tests. Diese Überschreibungen konfigurieren die gebündelten nginx-Routen oder die Autorisierungsserver-Allowlist nicht neu und dürfen in der gehosteten Bereitstellung nicht unabhängig verwendet werden.

Die Suchinstanz erfordert für jede Anfrage eine Authentifizierung (einschließlich tools/list) und lehnt OAuth-Tokens ab, deren Zielgruppe nicht mit ihrer eigenen Ressource übereinstimmt.

Konfigurationsbeispiele

Für die Nutzung der Cloud-API:

export FIRECRAWL_API_KEY=your-api-key

Für eine Self-Hosted-Instanz:

# 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

Verwendung mit Claude Desktop

Fügen Sie dies zu Ihrer claude_desktop_config.json hinzu:

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

So wählen Sie ein Tool

Verwenden Sie diesen Leitfaden, um das richtige Tool für Ihre Aufgabe auszuwählen:

  • Wenn Sie die genaue URL kennen, die Sie möchten: Verwenden Sie scrape (mit JSON-Format für strukturierte Daten)
  • Wenn Sie mehrere bekannte URLs haben: Rufen Sie scrape für jede URL auf. Wenn Sie speziell eine Bulk-API-Operation benötigen, verwenden Sie den Firecrawl-API-Batch-Endpunkt außerhalb von MCP.
  • Wenn Sie URLs auf einer Website entdecken müssen: Verwenden Sie map
  • Wenn Sie im Web nach Informationen suchen möchten: Verwenden Sie search
  • Wenn Sie eine Programmierfrage haben (eine Bibliothek, einen API-Vertrag, eine Fehlermeldung, einen bekannten Bug): Verwenden Sie developer search
  • Wenn Sie wissenschaftliche Arbeiten benötigen (biomedizinische, Lebenswissenschaften, klinische oder arXiv-Literatur): Verwenden Sie research tools – sie durchsuchen Zusammenfassungen und Volltexte von Arbeiten. search mit categories: ["research"] ist eine andere Sache: ein Website-Filter über normale Webergebnisse.
  • Wenn Sie komplexe Recherche über mehrere unbekannte Quellen benötigen: Verwenden Sie agent
  • Wenn Sie eine gesamte Website oder einen Abschnitt analysieren möchten: Verwenden Sie crawl (mit Limits!)
  • Wenn Sie interaktive Browserautomatisierung benötigen (klicken, tippen, navigieren): Verwenden Sie interact mit einer URL für eine frische Seite oder scrape + interact, wenn Sie die Seite bereits gescrapt haben oder eine engere Scrape-Kontrolle benötigen

Kurzreferenztabelle

ToolAm besten geeignet fürRückgabe
scrapeEinzelnen SeiteninhaltJSON (bevorzugt) oder Markdown
interactMit einer URL oder gescrapten Seite interagierenAusführungsergebnis + scrapeId für URL-Modus
mapURLs auf einer Website entdeckenURL[]
crawlMehrseitige Extraktion (mit Limits)endgültiger Crawl-Status/Daten nach internem Polling
parseDateien und gehostete Upload-ReferenzenMarkdown, JSON oder Dokumentausgabe
searchWebsuche nach Informationenresults[]
developerProgrammierfragen über Entwicklerquellenresults[] mit Passagen
agentKomplexe Multi-Quellen-RechercheJSON (strukturierte Daten)
monitorWiederkehrende SeitenprüfungenMonitor/Check-Metadaten und Diffs
researchRecherche zu Arbeiten und GitHub-RepositoriesForschungsergebnisse und Repo-Treffer

Leitfaden zur Formatwahl

Bei Verwendung von scrape wählen Sie das richtige Format:

  • JSON-Format (für die meisten Fälle empfohlen): Verwenden Sie es, wenn Sie spezifische Daten von einer Seite benötigen. Definieren Sie ein Schema basierend auf dem, was Sie extrahieren möchten. Dies hält Antworten klein und vermeidet Kontextfenster-Überlauf.
  • Markdown-Format (sparsam verwenden): Nur wenn Sie wirklich den vollständigen Seiteninhalt benötigen, z. B. um einen gesamten Artikel für eine Zusammenfassung zu lesen oder die Seitenstruktur zu analysieren.

Verfügbare Tools

1. Scrape-Tool (firecrawl_scrape)

Scrapen Sie Inhalte von einer einzelnen URL mit erweiterten Optionen.

Am besten geeignet für:

  • Extraktion von Inhalten einer einzelnen Seite, wenn Sie genau wissen, welche Seite die Informationen enthält.

Nicht empfohlen für:

  • Extrahieren von Inhalten von mehreren Seiten (verwenden Sie wiederholte Scrape-Aufrufe für bekannte URLs oder map + scrape, um URLs zuerst zu entdecken, oder crawl für vollständigen Seiteninhalt)
  • Wenn Sie nicht sicher sind, welche Seite die Informationen enthält (verwenden Sie search)

Häufige Fehler:

  • Übergeben einer Liste von URLs an einen einzelnen Scrape-Aufruf. Rufen Sie scrape einmal pro URL in MCP auf. Wenn Sie speziell eine Bulk-API-Operation benötigen, verwenden Sie den Firecrawl-API-Batch-Endpunkt außerhalb von MCP.
  • Standardmäßiges Verwenden des Markdown-Formats (verwenden Sie das JSON-Format, um nur das zu extrahieren, was Sie benötigen).

Das richtige Format wählen:

  • JSON-Format (bevorzugt): Für die meisten Anwendungsfälle verwenden Sie das JSON-Format mit einem Schema, um nur die spezifischen benötigten Daten zu extrahieren. Dies hält Antworten fokussiert und verhindert Kontextfenster-Überlauf.
  • Markdown-Format: Nur wenn die Aufgabe wirklich vollständigen Seiteninhalt erfordert (z. B. Zusammenfassen eines gesamten Artikels, Analysieren der Seitenstruktur).

Prompt-Beispiel:

"Holen Sie die Produktdetails von https://example.com/product."

Verwendungsbeispiel (JSON-Format - bevorzugt):

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

Verwendungsbeispiel (Markdown-Format - wenn vollständiger Inhalt benötigt wird):

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

Verwendungsbeispiel (Branding-Format - Markenidentität extrahieren):

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

Branding-Format: Extrahiert umfassende Markenidentität (Farben, Schriftarten, Typografie, Abstände, Logo, UI-Komponenten) für Designanalyse oder Stilreplikation. Datenschutz: Setzen Sie redactPII: true, um Inhalte mit geschwärzten personenbezogenen Daten zurückzugeben.

Rückgabe:

  • JSON-strukturierte Daten, Markdown, Branding-Profil oder andere Formate wie angegeben.

2. Map-Tool (firecrawl_map)

Karten Sie eine Website, um alle indizierten URLs auf der Website zu entdecken.

Am besten geeignet für:

  • Entdecken von URLs auf einer Website, bevor entschieden wird, was gescrapt werden soll
  • Finden bestimmter Bereiche einer Website

Nicht empfohlen für:

  • Wenn Sie bereits wissen, welche spezifische URL Sie benötigen (Scrape verwenden)
  • Wenn Sie den Inhalt der Seiten benötigen (nach dem Mapping Scrape verwenden)

Häufige Fehler:

  • Crawl zum Entdecken von URLs verwenden statt Map

Prompt-Beispiel:

"Alle URLs auf example.com auflisten."

Verwendungsbeispiel:

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

Rückgabe:

  • Array der auf der Website gefundenen URLs

3. Search-Tool (firecrawl_search)

Durchsucht das Web und extrahiert optional Inhalte aus den Suchergebnissen.

Am besten geeignet für:

  • Das Finden spezifischer Informationen über mehrere Websites hinweg, wenn Sie nicht wissen, welche Website die Informationen enthält.
  • Wenn Sie die relevantesten Inhalte für eine Suchanfrage benötigen

Nicht empfohlen für:

  • Wenn Sie bereits wissen, welche Website gescrapt werden soll (Scrape verwenden)
  • Wenn Sie eine umfassende Abdeckung einer einzelnen Website benötigen (Map oder Crawl verwenden)

Häufige Fehler:

  • Crawl oder Map für offene Fragen verwenden (stattdessen Search verwenden)

Verwendungsbeispiel:

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

Setzen Sie highlights auf true, um für die Suchanfrage relevante Highlights anzufordern, oder auf false, um die ursprünglichen Suchausschnitte beizubehalten. Lassen Sie es weg, um das Standardverhalten der API zu verwenden.

Für wissenschaftliche Arbeiten siehe Research-Tools: Diese durchsuchen Paper-Abstracts und Volltexte, während categories: ["research"] hier normale Web-Ergebnisse auf forschungsbezogene Websites filtert.

Rückgabe:

  • Array von Suchergebnissen (mit optional gescrapten Inhalten) sowie ein id-Feld. Übergeben Sie dieses id an firecrawl_search_feedback, nachdem Sie die Ergebnisse verwendet haben, um 1 Credit erstattet zu bekommen (Search kostet 2) und die Suchqualität zu verbessern.

Prompt-Beispiel:

"Remote-Arbeits-Zuschussrichtlinien bei Technologieunternehmen vergleichen."

3b. Search-Feedback-Tool (firecrawl_search_feedback)

Sendet strukturiertes Feedback zu einem vorherigen firecrawl_search-Ergebnis. Das erste Feedback pro Such-ID erstattet 1 Credit und verbessert die Suchqualität von Firecrawl. Idempotent pro Such-ID.

Rufen Sie es nach jeder Suche auf, die Sie tatsächlich verwenden (oder die nicht geholfen hat). Schlechtes/teilweises Feedback mit missingContent ist genauso wertvoll wie gutes Feedback.

Deaktivierung: Setzen Sie FIRECRAWL_NO_SEARCH_FEEDBACK=1 (oder FIRECRAWL_DISABLE_SEARCH_FEEDBACK=1) in der Umgebung, wenn Sie den MCP-Server starten. Das firecrawl_search_feedback-Tool wird dann nicht registriert, sodass Agents es nicht aufrufen können. Team-Administratoren können Feedback auch serverseitig deaktivieren; in diesem Fall ist das Tool registriert, gibt aber immer feedbackErrorCode: "TEAM_OPTED_OUT" zurück.

Wichtigstes Feld: missingContent. Es ist ein Array spezifischer Inhalte, die der Agent erwartet hatte zu finden, aber nicht gefunden hat. Ein Eintrag pro fehlendem Thema – diese werden teamübergreifend aggregiert und zeigen uns, was als Nächstes indexiert werden soll.

Tägliche Erstattungsobergrenze (pro Team, pro UTC-Tag, Standard 100 Credits). Sobald das creditsRefundedToday eines Teams dailyRefundCap erreicht, werden weitere Einreichungen zwar weiterhin als Feedback erfasst, erstatten aber keine Credits mehr. Die Antwort setzt dailyCapReached: true. Agents sollten für den Rest des UTC-Tages aufhören, dieses Tool aufzurufen, wenn sie dieses Flag sehen.

Verwendungsbeispiel:

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

Rückgabe:

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

3c. Generisches Feedback-Tool (firecrawl_feedback)

Sendet strukturiertes Feedback für einen abgeschlossenen v2-Endpunkt-Job über /v2/feedback. Verwenden Sie dies für Endpunkt-Level-Feedback zu scrape, parse, map oder search-Jobs. Für die Suchqualität im Speziellen bevorzugen Sie firecrawl_search_feedback, da es suchspezifische Anleitungen enthält.

Halten Sie Feedback prägnant: Verwenden Sie Fehlercodes, Tags, kurze Notizen, URLs, Seitenzahlen und kleine Metadatenobjekte. Fügen Sie keine rohen Scrape-/Parse-Ausgaben ein.

Deaktivierung: Setzen Sie FIRECRAWL_NO_ENDPOINT_FEEDBACK=1 (oder FIRECRAWL_DISABLE_ENDPOINT_FEEDBACK=1) in der Umgebung, wenn Sie den MCP-Server starten. Das firecrawl_feedback-Tool wird dann nicht registriert, sodass Agents es nicht aufrufen können.

Verwendungsbeispiel:

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

Rückgabe:

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

4. Crawl-Tool (firecrawl_crawl)

Startet einen Crawl-Job, fragt ab, bis er einen Endzustand erreicht, und gibt den endgültigen Crawl-Status/die endgültigen Crawl-Daten zurück.

Am besten geeignet für:

  • Extrahieren von Inhalten aus mehreren zusammenhängenden Seiten, wenn Sie eine umfassende Abdeckung benötigen.

Nicht empfohlen für:

  • Extrahieren von Inhalten aus einer einzelnen Seite (Scrape verwenden)
  • Wenn Token-Limits eine Rolle spielen (Map + Scrape für engere Kontrolle verwenden)
  • Wenn Sie schnelle Ergebnisse benötigen (Crawling kann langsam sein)

Warnung: Crawl-Antworten können sehr groß sein und Token-Limits überschreiten. Begrenzen Sie die Crawl-Tiefe und die Anzahl der Seiten oder verwenden Sie Map + Scrape für engere Kontrolle.

Häufige Fehler:

  • limit oder maxDiscoveryDepth zu hoch setzen (verursacht Token-Überlauf)
  • Crawl für eine einzelne Seite verwenden (stattdessen Scrape verwenden)

Prompt-Beispiel:

"Alle Blog-Beiträge von den ersten beiden Ebenen von example.com/blog abrufen."

Verwendungsbeispiel:

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

Rückgabe:

  • Endgültiger Crawl-Status und endgültige Daten nach interner Abfrage, einschließlich id, status, completed, total, creditsUsed, expiresAt, next und data. Verwenden Sie die zurückgegebene id mit firecrawl_check_crawl_status, wenn Sie den Job später erneut prüfen müssen.

5. Crawl-Status prüfen (firecrawl_check_crawl_status)

Prüft den Status und die Ergebnisse eines bestehenden Crawl-Jobs anhand der ID.

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

Rückgabe:

  • Die Antwort enthält den Status des Crawl-Jobs:

6. Parse-Tool (firecrawl_parse)

Parst lokale Dateien oder gehostete Upload-Referenzen mit dem /v2/parse-Endpunkt von Firecrawl.

Am besten geeignet für: PDFs, Word-Dokumente, Tabellenkalkulationen, HTML-Dateien und andere Dokumente, die Markdown oder strukturierte JSON-Ausgabe benötigen. Gehostetes MCP unterstützt einen zweistufigen Upload-Ref-Ablauf; lokale direkte Datei-Lesevorgänge erfordern ein selbst gehostetes FIRECRAWL_API_URL.

Nicht empfohlen für: Remote-URLs (Scrape verwenden), mehrere Dateien in einem Aufruf (Parse pro Datei aufrufen) oder reine Browser-Aktionen wie Screenshots und Klicks.

Gehosteter MCP-Ablauf: Gehostetes MCP kann das Dateisystem des Aufrufers nicht direkt lesen. Rufen Sie firecrawl_parse mit filePath auf, um einen kurzlebigen Upload-Befehl und nextToolCall zu erhalten, laden Sie die Datei lokal hoch und rufen Sie dann firecrawl_parse erneut mit der zurückgegebenen uploadRef auf. Das Minten der gehosteten Upload-URL erfordert Firecrawl-Authentifizierung oder Schlüssel-freie Berechtigung. Im lokalen npx firecrawl-mcp-Modus erfordert das direkte Parsen von Dateien derzeit FIRECRAWL_API_URL, das auf eine selbst gehostete Firecrawl-API verweist; ein einfacher lokaler Server mit nur Cloud-API-Schlüssel kann Dateien über dieses Tool nicht lesen und hochladen.

Verwendungsbeispiel:

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

Rückgabe: Geparster Dokumentinhalt oder gehostete Upload-Anweisungen mit einer nextToolCall.

7. Strukturierte Daten mit Scrape JSON

Für strukturierte Daten von einer bekannten Seite rufen Sie firecrawl_scrape einmal pro URL mit formats: ["json"] auf. Platzieren Sie den Extraktions-Prompt und das JSON-Schema in 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"]
      }
    }
  }
}

Für unbekannte URLs oder Multi-Quellen-Recherche verwenden Sie firecrawl_search oder firecrawl_agent vor Scrape.

8. Agent-Tool (firecrawl_agent)

Autonomer Web-Recherche-Agent. Dies ist eine separate KI-Agenten-Ebene, die unabhängig im Internet surft, nach Informationen sucht, durch Seiten navigiert und strukturierte Daten basierend auf Ihrer Suchanfrage extrahiert.

So funktioniert es:

Der Agent führt Websuchen durch, folgt Links, liest Seiten und sammelt Daten autonom. Dies läuft asynchron – es gibt sofort eine Job-ID zurück, und Sie fragen firecrawl_agent_status ab, um zu prüfen, wann er abgeschlossen ist, und um Ergebnisse abzurufen.

Asynchroner Ablauf:

  1. Rufen Sie firecrawl_agent mit Ihrem Prompt/Schema auf → gibt Job-ID zurück
  2. Erledigen Sie andere Arbeit, während der Agent recherchiert (kann bei komplexen Suchanfragen Minuten dauern)
  3. Fragen Sie firecrawl_agent_status mit der Job-ID ab, um den Fortschritt zu prüfen
  4. Wenn der Status "completed" ist, enthält die Antwort die extrahierten Daten

Am besten geeignet für:

  • Komplexe Rechercheaufgaben, bei denen Sie die genauen URLs nicht kennen
  • Datenerfassung aus mehreren Quellen
  • Finden von Informationen, die über das Web verstreut sind
  • Aufgaben, bei denen Sie während des Wartens auf Ergebnisse andere Arbeit erledigen können

Nicht empfohlen für:

  • Einfaches Single-Page-Scraping, bei dem Sie die URL kennen (Scrape mit JSON-Format verwenden – schneller und günstiger)

Argumente:

  • prompt: Natürlichsprachige Beschreibung der gewünschten Daten (erforderlich, maximal 10.000 Zeichen)
  • urls: Optionales Array von URLs, um den Agenten auf bestimmte Seiten zu fokussieren
  • schema: Optionales JSON-Schema für strukturierte Ausgabe

Prompt-Beispiel:

"Finde die Gründer von Firecrawl und ihre Hintergründe"

Verwendungsbeispiel (Agent starten, dann Ergebnisse abfragen):

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

Dann fragen Sie mit firecrawl_agent_status unter Verwendung der zurückgegebenen Job-ID ab.

Verwendungsbeispiel (mit URLs – Agent konzentriert sich auf bestimmte Seiten):

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

Rückgabe:

  • Job-ID zur Statusprüfung. Verwenden Sie firecrawl_agent_status, um Ergebnisse abzufragen.

9. Agent-Status prüfen (firecrawl_agent_status)

Prüft den Status eines Agent-Jobs und ruft Ergebnisse ab, wenn dieser abgeschlossen ist. Verwenden Sie dies, um nach dem Start eines Agents nach Ergebnissen zu fragen.

Abfragemuster: Agent-Recherche kann bei komplexen Suchanfragen Minuten dauern. Fragen Sie diesen Endpunkt regelmäßig ab (z. B. alle 10–30 Sekunden), bis der Status "completed" oder "failed" ist.

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

Mögliche Status:

  • processing: Agent recherchiert noch – später erneut prüfen
  • completed: Recherche abgeschlossen – die Antwort enthält die extrahierten Daten
  • failed: Ein Fehler ist aufgetreten

10. Interact-Tool (firecrawl_interact)

Interagieren Sie mit einer neuen URL oder mit einer Seite, die bereits von firecrawl_scrape geöffnet wurde.

Am besten geeignet für: Klicken, Tippen, Navigieren und Extrahieren von Zuständen aus dynamischen Seiten, ohne die veralteten Browser-Tools wiederherzustellen.

Verwendungsoptionen:

  • Übergeben Sie url, um eine Seite in einem MCP-Aufruf zu scrapen und für die Interaktion zu öffnen.
  • Übergeben Sie scrapeId, um mit einer vorhandenen gescrapten Seite weiter zu interagieren.
  • Übergeben Sie genau eines von url oder scrapeId sowie entweder prompt oder code.

Verwendungsbeispiel:

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

Rückgabe: Interaktionsergebnis und, im URL-Modus, die abgeleitete scrapeId für Folgeaktionen oder Bereinigung.

11. Interact-Stop-Tool (firecrawl_interact_stop)

Beendet eine Interact-Sitzung für eine gescrapte Seite, wenn Sie mit der Interaktion fertig sind.

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

12. Research-Tools (firecrawl_research_*)

Durchsuchen und untersuchen Sie Paper und GitHub-Repositories über die Research-MCP-Tools.

Abgedeckt: Paper-Abstracts und Volltexte aus biomedizinischer, lebenswissenschaftlicher und klinischer Literatur (PubMed, bioRxiv, medRxiv) sowie arXiv und andere wissenschaftliche Quellen.

Verfügbare Research-Tools:

  • firecrawl_research_search_papers: durchsucht Paper-Metadaten und Abstracts mit einer natürlichsprachigen Suchanfrage, mit optionalen Autor-, Kategorie- und Datumsfiltern.
  • firecrawl_research_inspect_paper: ruft kanonische Metadaten für eine Paper-ID ab (arXiv, PMC, PMID oder DOI).
  • firecrawl_research_related_papers: erweitert von einem oder mehreren Anker-Papers durch den Zitationsgraphen.
  • firecrawl_research_read_paper: liest Volltext-Passagen aus einem bestimmten Paper.
  • firecrawl_research_search_github: durchsucht indexierte öffentliche GitHub-Issues, Pull-Requests und README-Inhalte.

Am besten geeignet für: Literaturrecherche, Paper-Nachschlage und Repository-Entdeckungs-Workflows, bei denen der Agent eine fokussierte Recherchefläche statt allgemeinem Web-Scraping benötigt.

firecrawl_search mit categories: ["research"] ist eine andere Fläche: Es filtert normale Web-Ergebnisse auf forschungsbezogene Websites und gibt Seitenausschnitte zurück, keine Paper-Datensätze. Verwenden Sie diese Tools, wenn es um die Literatur selbst geht, und übergeben Sie mehrere unterschiedliche Formulierungen derselben Frage – sie liefern andere Papers als eine einzelne Suchanfrage.

13. Monitor-Tools (firecrawl_monitor_*)

Erstellen und verwalten Sie wiederkehrende Seiten-Monitore. Monitore führen geplante Scrapes oder Crawls durch, vergleichen jedes Ergebnis mit dem letzten gespeicherten Schnappschuss und können per Webhook oder E-Mail benachrichtigen.

Am besten geeignet für:

  • Beobachten einer Seite oder einiger weniger Seiten über einen Zeitraum
  • Warnen bei bedeutenden Änderungen mithilfe eines Klartext-Ziels
  • Verfolgen der Prüfhistorie und Seiten-Diffs

Empfohlenes Erstellungsmuster: Use page or pages plus goal. Der MCP-Server erstellt die Überwachungsanfrage mit einem 30-Minuten-Plan, und die API aktiviert die automatische Bewertung von Bedeutungsänderungen.

Die Bewertung von Bedeutungsänderungen läuft automatisch, wenn goal gesetzt ist. Seiten-Webhooks legen isMeaningful und judgment bei monitor.page-Ereignissen offen.

Schreiben Sie Ziele als prägnante 2-3 Sätze umfassende Überwachungsanweisungen. Geben Sie an, was einen Alarm auslösen soll, bewahren Sie den vom Benutzer vorgegebenen Umfang und fügen Sie nur dann intent-spezifische Ausnahmen ein, wenn sie sich aus der Anfrage offensichtlich ergeben. Allgemeines Rauschen wie Leerzeichen, reine Formatierungsänderungen, Anfrage-IDs, Tracking-Parameter, allgemeine Metadaten und nicht zusammenhängende Seiten-Elemente werden bereits vom Bewerter behandelt, wiederholen Sie dies daher nicht in jedem Ziel. Wenn der Benutzer vage ist, halten Sie das Ziel breit; wenn er eine breite Überwachung oder „jede Änderung“ wünscht, bewahren Sie dies. Wenn der Benutzer sagt, dass ihm etwas egal ist, nehmen Sie dies explizit auf.

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

Mehrere Seiten mit 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"
  }
}

Erweiterte Erstellungsanfragen:

Übergeben Sie body, wenn Sie Crawl-Ziele, JSON-Änderungsverfolgung, benutzerdefinierte Aufbewahrung oder explizite judgeEnabled-Steuerung benötigen.

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

Andere Überwachungswerkzeuge:

  • firecrawl_monitor_list: Überwachungen auflisten.
  • firecrawl_monitor_get: Eine Überwachung abrufen.
  • firecrawl_monitor_update: Felder aktualisieren, einschließlich goal, judgeEnabled, webhook und notification.
  • firecrawl_monitor_run: Eine sofortige Prüfung auslösen.
  • firecrawl_monitor_delete: Eine Überwachung löschen (zerstörerisch; nur aufrufen, wenn der Benutzer sie entfernen möchte).
  • firecrawl_monitor_checks: Prüfungen auflisten, optional gefiltert nach Status.
  • firecrawl_monitor_check: Ergebnisse auf Seitenebene abrufen, einschließlich diff, snapshot, judgment.meaningful und judgment.meaningfulChanges.

14. Entwicklersuchwerkzeug (firecrawl_developer_search)

Durchsuchen Sie einen Index, der für Codierungsagenten erstellt wurde. Der Index umfasst GitHub-Issues, zusammengeführte Pull-Requests, Repository-READMEs und kuratierte Dokumentationsseiten.

Am besten geeignet für: Eine Programmierfrage – Code-Verhalten, eine Bibliothek oder ein Framework, einen API-Vertrag, eine Fehlermeldung oder einen bekannten Fehler.

Argumente:

{
  "name": "firecrawl_developer_search",
  "arguments": {
    "query": "how do I configure retries",
    "k": 10,
    "skills": "only"
  }
}
  • query (erforderlich): Die Entwicklerfrage oder der Suchbegriff.
  • k: Anzahl der bewerteten Ergebnisse. Der Standardwert ist 10 und das Maximum ist 100.
  • skills: Auf "only" setzen, um nur in Agenten-Fähigkeitsdateien zu suchen.

Gibt zurück: Bewertete Ergebnisse. Jedes Ergebnis hat eine ID, einen Quelltyp (issue, pull_request, readme oder doc), eine URL, einen Titel und die übereinstimmenden Textpassagen im Markdown-Format.

firecrawl_search mit categories: ["developer"] durchsucht denselben Index neben den Webergebnissen. Verwenden Sie stattdessen dieses Werkzeug, wenn Sie die Textpassagen und keine Webergebnisse wünschen. Der reine Such-Endpunkt legt dieses Werkzeug nicht offen; er behält seinen festen Satz von sechs Werkzeugen, und firecrawl_search erreicht dort den Entwicklerindex.

Protokollierungssystem

Der Server enthält umfassende Protokollierung:

  • Betriebsstatus und -fortschritt
  • Leistungsmetriken
  • Ratenbegrenzungsverfolgung
  • Fehlerzustände

Beispiel-Protokollnachrichten:

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

Fehlerbehandlung

Der Server bietet eine robuste Fehlerbehandlung:

  • API-Ratenbegrenzungsfehler werden an den MCP-Client weitergegeben
  • Detaillierte Fehlermeldungen
  • Netzwerk-Resilienz

Beispiel-Fehlerantwort:

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

Entwicklung

# Install dependencies
npm install

# Build
npm run build

# Run tests
npm test

Mitwirken

  1. Repository forken
  2. Ihren Feature-Zweig erstellen
  3. Tests ausführen: npm test
  4. Einen Pull-Request einreichen

Danksagung an Mitwirkende

Danke an @vrknetha, @cawstudios für die erste Implementierung!

Danke an MCP.so und Klavis AI für das Hosting und an @gstarwd, @xiangkaiz und @zihaolin96 für die Integration unseres Servers.

Lizenz

MIT-Lizenz – siehe LICENSE-Datei für Details