Firecrawl MCP
offiziellFügt leistungsstarke Web-Scraping- und Suchfunktionen zu LLM-Clients wie Cursor und Claude hinzu.
Was kann man mit Firecrawl MCP machen?
- Beliebige URL scrapen — Verwenden Sie
firecrawl_scrape, um den Inhalt einer Seite als Markdown oder strukturiertes JSON gemäß einem von Ihnen bereitgestellten Schema zu extrahieren. - Im Web suchen — Verwenden Sie
firecrawl_search, um rankierte Ergebnisse zu einer Abfrage zu erhalten, optional mit Abruf des Seiteninhalts im selben Aufruf. - Site-URLs entdecken — Verwenden Sie
firecrawl_map, um alle indizierten URLs einer Website aufzulisten, ohne deren Inhalte abzurufen. - Mehrere Seiten crawlen — Verwenden Sie
firecrawl_crawl, um Inhalte von vielen Seiten einer Website zu extrahieren, begrenzt durchlimitundmaxDiscoveryDepth. - Mit Seiten interagieren — Verwenden Sie
firecrawl_interact, um auf einer Seite zu klicken, zu tippen oder zu navigieren, bevor Sie sie lesen, und fahren Sie überscrapeIdfort. - Autonome Recherche durchführen — Verwenden Sie
firecrawl_agent, um strukturierte Daten aus mehreren Quellen zu sammeln, wenn Sie die genauen URLs nicht kennen.
Dokumentation
Firecrawl MCP Server
Ein Model Context Protocol (MCP)-Server, der Firecrawl zu MCP-kompatiblen KI-Agenten bringt – durchsuchen, scrapen und interagieren Sie mit dem Live-Web für sauberen, agentenbereiten Kontext.
Großer Dank an @vrknetha, @knacklabs für die erste Implementierung!
Funktionen
- Durchsuchen Sie das Web und erhalten Sie den vollständigen Seiteninhalt
- Durchsuchen Sie einen Index, der für Codierungsagenten erstellt wurde: GitHub-Issues, gemergte Pull-Requests, READMEs und Dokumentationen
- Scrapen Sie jede URL in saubere, strukturierte Daten
- Interagieren Sie mit Seiten – 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 dem MCP.so-Playground oder auf Klavis AI aus.
Wann Sie diesen Server verwenden sollten
- Verwenden Sie
firecrawl_scrape, wenn Sie eine bekannte URL haben und deren Inhalt als Markdown oder als JSON, das einem von Ihnen bereitgestellten Schema entspricht, wünschen. - Verwenden Sie
firecrawl_map, wenn Sie URLs auf einer Website entdecken müssen, ohne deren Inhalt abzurufen. - Verwenden Sie
firecrawl_crawl, wenn Sie Inhalte von vielen Seiten unter einer Website benötigen; setzen Sielimit,includePaths/excludePathsodermaxDiscoveryDepth, um dies zu begrenzen. - Verwenden Sie
firecrawl_search, wenn Sie von einer Abfrage statt von einer URL ausgehen und rankierte Webergebnisse wünschen; fügen SiescrapeOptionshinzu, wenn Sie auch Seiteninhalte im selben Aufruf abrufen möchten (der Nur-Suche-Endpunkt ruft niemals Inhalte ab). - Verwenden Sie
firecrawl_interact, wenn eine Seite eine Klick-, Eingabe- oder Navigationsaktion benötigt, bevor Sie sie lesen können – übergeben Sie eineurlfür eine neue Seite oder einescrapeId, um auf einer bereits gescrapten Seite fortzufahren. - Verwenden Sie die
firecrawl_monitor_*-Tools, wenn dieselbe Seite in regelmäßigen Abständen mit Diffs und Änderungsbenachrichtigungen überprüft werden muss, anstatt nur einmal abgerufen zu werden. - Ziehen Sie etwas anderes in Betracht, wenn Sie eine Browsersitzung über viele eigene Schritte mit eigener Wiederholungs- und Beendigungslogik offen halten müssen: Jeder
firecrawl_interact-Aufruf führt eineprompt- odercode-Runde bis zum Abschluss aus und gibt die Kontrolle zurück – die Sitzung kann über Aufrufe hinweg überscrapeIdbestehen bleiben und endet mitfirecrawl_interact_stop, aber Sie können sie nicht interaktiv Schritt für Schritt von der Client-Seite innerhalb eines einzelnen Aufrufs steuern.
Dieser Server listet 25 Tools auf, wenn das vollständige Profil mit Standardeinstellungen registriert wird (Feedback-Tools enthalten, nicht im lokalen schlüssellosen Modus). Das Setzen von FIRECRAWL_NO_SEARCH_FEEDBACK=1 und/oder FIRECRAWL_NO_ENDPOINT_FEEDBACK=1 entfernt die entsprechenden Feedback-Tools und reduziert diese Anzahl, ebenso wie der lokale schlüssellose Start. Für Clients mit einem Tool-Slot-Limit: Der gehostete schlüssellose Endpunkt (https://mcp.firecrawl.dev/v2/mcp, kein API-Schlüssel) stellt nur 3 bereit – firecrawl_scrape, firecrawl_search, firecrawl_parse – und der dedizierte Nur-Suche-Endpunkt (https://mcp.firecrawl.dev/v2/mcp-search) stellt eine feste Anzahl von 6 schreibgeschützten Tools bereit.
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. Es entsperrt den vollständigen Tool-Satz und höhere Limits.
Für eine interaktive Kontoverbindung konfigurieren Sie Ihren MCP-Client, um diese Server-URL zu verwenden. Dies ist ein MCP-Endpunkt, keine Browserseite; verwenden Sie den Kontoverbindungsfluss des Clients und fügen Sie beim erneuten Verbinden keinen zweiten Firecrawl-Servereintrag 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 Geheimniseinstellung 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 Geheimnisverwalter. Siehe den gehosteten MCP-Setup-Leitfaden und den Agenten-Onboarding-Leitfaden für clientspezifische Anweisungen.
Nur-Suche-Endpunkt
Eine schreibgeschützte, nur-Suche-Oberfläche ist ebenfalls gehostet unter:
https://mcp.firecrawl.dev/v2/mcp-search
Es stellt eine feste Anzahl von sechs schreibgeschützten Tools bereit: firecrawl_search, firecrawl_developer_search und die vier firecrawl_research_*-Tools. Es führt kein Seiteninhalts-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
Konfigurieren von Cursor 🖥️ 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
- Öffnen Sie die Cursor-Einstellungen
- Gehen Sie zu Funktionen > MCP-Server
- Klicken Sie auf „+ Neuen globalen MCP-Server hinzufügen"
- 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
- Öffnen Sie die Cursor-Einstellungen
- Gehen Sie zu Funktionen > MCP-Server
- Klicken Sie auf „+ Neuen MCP-Server hinzufügen"
- Geben Sie Folgendes ein:
- Name: „firecrawl-mcp" (oder Ihren 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 mit Ihrem 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 dies angemessen ist, aber Sie können es explizit anfordern, indem Sie Ihre Web-Scraping-Anforderungen beschreiben. Greifen Sie auf den Composer über Befehl+L (Mac) zu, wählen Sie „Agent" neben der Senden-Schaltfläche und geben Sie Ihre Abfrage 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 im lokalen Modus
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...
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 die Cloud-API
FIRECRAWL_API_KEY: Ihr Firecrawl-API-Schlüssel- Erforderlich bei Verwendung der Cloud-API (Standard)
- Optional bei Verwendung einer selbst gehosteten Instanz mit
FIRECRAWL_API_URL
FIRECRAWL_API_URL(Optional): Benutzerdefinierter API-Endpunkt für selbst gehostete Instanzen- Beispiel:
https://firecrawl.your-domain.com - Wenn nicht angegeben, wird die Cloud-API verwendet (erfordert API-Schlüssel)
- Beispiel:
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=trueoderSSE_LOCAL=true): Clients solltenAuthorization: Bearer <fco_access_token>bei MCP-Anfragen senden. Ein OAuth-Bearer-Token hat Vorrang vorx-firecrawl-api-key/x-api-key, wenn beide vorhanden sind. - stdio: Verwenden Sie
FIRECRAWL_OAUTH_TOKENfür ein statisches Zugriffstoken oder verwenden Sie weiterhinFIRECRAWL_API_KEYfür einen API-Schlüssel.
Verwenden Sie nur Zugriffstokens (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 eine Authentifizierung für jede Anfrage (einschließlich tools/list) und lehnt OAuth-Tokens ab, deren Zielgruppe nicht mit ihrer eigenen Ressource übereinstimmt.
Konfigurationsbeispiele
Für die Cloud-API-Nutzung:
export FIRECRAWL_API_KEY=your-api-key
Für eine selbst gehostete 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 aus
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 das Web nach Informationen durchsuchen möchten: verwenden Sie search
- Wenn Sie eine Programmierfrage haben (eine Bibliothek, einen API-Vertrag, eine Fehlermeldung, einen bekannten Fehler): 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.
searchmitcategories: ["research"]ist eine andere Sache: ein Website-Filter über gewöhnliche Webergebnisse. - Wenn Sie Multi-Quellen-Recherche benötigen, die strukturierte Daten zurückgibt, die URLs nicht kennen oder die Antwort mehrere Websites umfasst (eine Entität plus ihre Felder, eine Liste, einen Datensatz): 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, Eingeben, Navigieren): verwenden Sie interact mit einer URL für eine neue Seite oder scrape + interact, wenn Sie die Seite bereits gescrapt haben oder eine engere Scrape-Kontrolle benötigen
Schnellreferenztabelle
| Tool | Am besten geeignet für | Rückgabe |
|---|---|---|
| scrape | Einzelner Seiteninhalt | JSON (bevorzugt) oder Markdown |
| interact | Interagieren mit einer URL oder gescrapten Seite | Ausführungsergebnis + scrapeId für den URL-Modus |
| map | Entdecken von URLs auf einer Website | URL[] |
| crawl | Mehrseitige Extraktion (mit Limits) | Endgültiger Crawl-Status/daten nach internem Polling |
| parse | Dateien und gehostete Upload-Referenzen | Markdown, JSON oder Dokumentausgabe |
| search | Websuche nach Informationen | results[] |
| developer | Programmierfragen über Entwicklerquellen | results[] mit Passagen |
| agent | Multi-Quellen-Recherche, unbekannte oder viele Websites | JSON (strukturierte Daten) |
| monitor | Wiederkehrende Seitenprüfungen | Monitor-/Prüfmetadaten und Diffs |
| research | Recherche zu Arbeiten und GitHub-Repositories | Forschungsergebnisse und Repository-Übereinstimmungen |
Leitfaden zur Formatauswahl
Wenn Sie scrape verwenden, 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 die Antworten klein und vermeidet Context-Window-Überlauf.
- Markdown-Format (sparsam verwenden): Nur wenn Sie wirklich den vollständigen Seiteninhalt benötigen, z. B. um einen gesamten Artikel zusammenzufassen oder die Seitenstruktur zu analysieren.
Verfügbare Tools
1. Scrape-Tool (firecrawl_scrape)
Inhalte von einer einzelnen URL mit erweiterten Optionen extrahieren.
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ändige Seiteninhalte)
- Wenn Sie nicht sicher sind, welche Seite die Informationen enthält (verwenden Sie Suche)
Häufige Fehler:
- Eine Liste von URLs an einen einzigen Scrape-Aufruf übergeben. 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äßig das Markdown-Format verwenden (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 die Antworten fokussiert und verhindert Context-Window-Überlauf.
- Markdown-Format: Nur wenn die Aufgabe wirklich den 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ückgaben:
- JSON-strukturierte Daten, Markdown, Branding-Profil oder andere Formate wie angegeben.
2. Map-Tool (firecrawl_map)
Eine Website mappen, um alle indizierten URLs auf der Website zu entdecken.
Am besten geeignet für:
- Entdecken von URLs auf einer Website, bevor Sie entscheiden, was gescrapt werden soll
- Finden bestimmter Abschnitte einer Website
Nicht empfohlen für:
- Wenn Sie bereits wissen, welche spezifische URL Sie benötigen (verwenden Sie Scrape)
- Wenn Sie den Inhalt der Seiten benötigen (verwenden Sie Scrape nach dem Mapping)
Häufige Fehler:
- Crawl verwenden, um URLs zu entdecken, anstatt Map
Prompt-Beispiel:
"Listen Sie alle URLs auf example.com auf."
Verwendungsbeispiel:
{
"name": "firecrawl_map",
"arguments": {
"url": "https://example.com"
}
}
Rückgaben:
- Array von URLs, die auf der Website gefunden wurden
3. Such-Tool (firecrawl_search)
Im Web suchen und optional Inhalte aus den Suchergebnissen extrahieren.
Am besten geeignet für:
- Finden spezifischer Informationen über mehrere Websites hinweg, wenn Sie nicht wissen, welche Website die Informationen hat.
- Wenn Sie die relevantesten Inhalte für eine Abfrage benötigen
Nicht empfohlen für:
- Wenn Sie bereits wissen, welche Website gescrapt werden soll (verwenden Sie Scrape)
- Wenn Sie eine umfassende Abdeckung einer einzelnen Website benötigen (verwenden Sie Map oder Crawl)
Häufige Fehler:
- Crawl oder Map für offene Fragen verwenden (verwenden Sie stattdessen die Suche)
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 abfragerelevante Highlights anzufordern, oder false, um die ursprünglichen Suchsnippets beizubehalten. Lassen Sie es weg, um das Standardverhalten der API zu verwenden.
Für wissenschaftliche Arbeiten siehe Forschungstools: Diese durchsuchen Paper-Abstracts und Volltexte, während categories: ["research"] hier normale Webergebnisse auf forschungsbezogene Websites filtert.
Rückgaben:
- Array von Suchergebnissen (mit optional gescraptem Inhalt), plus ein
id-Feld. Übergeben Sie diesesidanfirecrawl_search_feedback, nachdem Sie die Ergebnisse verwendet haben, um 1 Guthaben zu erstatten (Suche kostet 2) und die Suchqualität zu verbessern.
Prompt-Beispiel:
"Vergleichen Sie die Richtlinien für Remote-Arbeitsstipendien in Technologieunternehmen."
3b. Such-Feedback-Tool (firecrawl_search_feedback)
Sendet strukturiertes Feedback zu einem vorherigen firecrawl_search-Ergebnis. Das erste Feedback pro Such-ID erstattet 1 Guthaben und verbessert die Suchqualität von Firecrawl. Idempotent pro Such-ID.
Rufen Sie dies 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.
Abmelden: 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 nicht registriert, sodass Agenten 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 hat zu finden, aber nicht gefunden hat. Ein Eintrag pro fehlendem Thema – diese aggregieren über Teams hinweg und sagen uns, was als Nächstes indexiert werden soll.
Tägliches Erstattungslimit (pro Team, pro UTC-Tag, Standard 100 Guthaben). Sobald das creditsRefundedToday eines Teams dailyRefundCap erreicht, werden weitere Einreichungen weiterhin als Feedback aufgezeichnet, erstatten aber keine Guthaben mehr. Die Antwort setzt dailyCapReached: true. Agenten sollten aufhören, dieses Tool für den Rest des UTC-Tages 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ückgaben:
{ success, feedbackId, creditsRefunded, alreadySubmitted? }JSON.
3c. Allgemeines 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 Problemcodes, Tags, kurze Notizen, URLs, Seitenzahlen und kleine Metadatenobjekte. Fügen Sie keine rohen Scrape-/Parse-Ausgaben ein.
Abmelden: 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 nicht registriert, sodass Agenten 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ückgaben:
{ success, feedbackId, creditsRefunded, creditsRefundedToday?, dailyRefundCap?, dailyCapReached?, alreadySubmitted?, warning? }JSON.
4. Crawl-Tool (firecrawl_crawl)
Startet einen Crawl-Job, pollt, 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 von mehreren verwandten Seiten, wenn Sie eine umfassende Abdeckung benötigen.
Nicht empfohlen für:
- Extrahieren von Inhalten von einer einzelnen Seite (verwenden Sie Scrape)
- Wenn Token-Limits ein Problem darstellen (verwenden Sie Map + Scrape für engere Kontrolle)
- 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 (verwenden Sie stattdessen Scrape)
Prompt-Beispiel:
"Holen Sie alle Blog-Beiträge von den ersten beiden Ebenen von example.com/blog."
Verwendungsbeispiel:
{
"name": "firecrawl_crawl",
"arguments": {
"url": "https://example.com/blog/*",
"maxDiscoveryDepth": 2,
"limit": 100,
"allowExternalLinks": false,
"deduplicateSimilarURLs": true
}
}
Rückgaben:
- Endgültiger Crawl-Status und Daten nach internem Polling, einschließlich
id,status,completed,total,creditsUsed,expiresAt,nextunddata. Verwenden Sie das zurückgegebeneidmitfirecrawl_check_crawl_status, wenn Sie den Job später erneut prüfen müssen.
5. Crawl-Status prüfen (firecrawl_check_crawl_status)
Status und Ergebnisse eines vorhandenen Crawl-Jobs anhand der ID prüfen.
{
"name": "firecrawl_check_crawl_status",
"arguments": {
"id": "550e8400-e29b-41d4-a716-446655440000"
}
}
Rückgaben:
- Die Antwort enthält den Status des Crawl-Jobs:
6. Parse-Tool (firecrawl_parse)
Lokale Dateien oder gehostete Upload-Referenzen mit dem /v2/parse-Endpunkt von Firecrawl parsen.
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-Referenz-Flow; lokale direkte Dateilesevorgänge erfordern ein selbst gehostetes FIRECRAWL_API_URL.
Nicht empfohlen für: Remote-URLs (verwenden Sie Scrape), mehrere Dateien in einem Aufruf (rufen Sie Parse einmal pro Datei auf) oder reine Browser-Aktionen wie Screenshots und Klicks.
Gehosteter MCP-Flow: 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 dem zurückgegebenen uploadRef auf. Das Minten der gehosteten Upload-URL erfordert Firecrawl-Authentifizierung oder Keyless-Berechtigung. Im lokalen npx firecrawl-mcp-Modus erfordert direktes Datei-Parsen derzeit FIRECRAWL_API_URL, das auf eine selbst gehostete Firecrawl-API verweist; ein einfacher lokaler Server nur mit 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ückgaben: Geparster Dokumentinhalt oder gehostete Upload-Anweisungen mit einem 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. Fügen Sie den Extraktions-Prompt und das JSON-Schema in jsonOptions ein.
{
"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"]
}
}
}
}
Wenn die URLs nicht bekannt sind oder die Daten sich über mehrere Websites erstrecken, verwenden Sie firecrawl_agent für Multi-Quellen-Recherche.
8. Agent-Tool (firecrawl_agent)
Autonomer Web-Recherche-Agent, der strukturierte Daten zurückgibt, wenn Sie die URLs nicht kennen oder die Antwort sich über mehrere Websites erstreckt. Beschreiben Sie die benötigten Felder, übergeben Sie optional ein JSON-Schema und Start-URLs, und der Agent sucht, navigiert, liest Seiten und gibt JSON zurück, das über Quellen hinweg zusammengestellt wurde. Verwenden Sie es für eine Entität plus ihre Felder, für Listen und Datensätze und für Seiten, die Navigation erfordern, um an die Daten zu gelangen. Für eine bekannte URL verwenden Sie stattdessen firecrawl_scrape mit JSON-Format.
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 pollen firecrawl_agent_status, um zu prüfen, wann es abgeschlossen ist, und Ergebnisse abzurufen.
Asynchroner Workflow:
- Rufen Sie
firecrawl_agentmit Ihrem Prompt/Schema auf → gibt Job-ID zurück - Arbeiten Sie an anderen Aufgaben, während der Agent recherchiert (kann bei komplexen Abfragen Minuten dauern)
- Pollen Sie
firecrawl_agent_statusmit der Job-ID, um den Fortschritt zu prüfen - 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 andere Arbeiten erledigen können, während Sie auf Ergebnisse warten
Nicht empfohlen für:
- Einfaches Scraping einer einzelnen Seite, bei dem Sie die URL kennen (verwenden Sie Scrape mit JSON-Format – schneller und günstiger)
Argumente:
prompt: Natürlichsprachliche Beschreibung der gewünschten Daten (erforderlich, max. 10.000 Zeichen)urls: Optionales Array von URLs, um den Agenten auf bestimmte Seiten zu fokussierenschema: Optionales JSON-Schema für strukturierte Ausgabe
Prompt-Beispiel:
"Finden Sie die Gründer von Firecrawl und ihre Hintergründe"
Verwendungsbeispiel (Agent starten, dann auf Ergebnisse pollen):
{
"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 pollen Sie mit firecrawl_agent_status unter Verwendung der zurückgegebenen Job-ID.
Verwendungsbeispiel (mit URLs – Agent fokussiert 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ückgaben:
- Job-ID zur Statusprüfung. Verwenden Sie
firecrawl_agent_status, um auf Ergebnisse zu pollen.
9. Agent-Status prüfen (firecrawl_agent_status)
Status eines Agent-Jobs prüfen und Ergebnisse abrufen, wenn abgeschlossen. Verwenden Sie dies, um nach dem Starten eines Agenten auf Ergebnisse zu pollen.
Polling-Muster: Die Agent-Recherche kann bei komplexen Abfragen Minuten dauern. Pollen Sie diesen Endpunkt regelmäßig (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üfencompleted: Recherche abgeschlossen – die Antwort enthält die extrahierten Datenfailed: Ein Fehler ist aufgetreten
10. Interact-Tool (firecrawl_interact)
Mit einer neuen URL oder einer Seite interagieren, 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.
Nutzungsoptionen:
- Übergeben Sie
url, um in einem einzigen MCP-Aufruf zu scrapen und eine Seite zur Interaktion zu öffnen. - Übergeben Sie
scrapeId, um mit einer bereits gescrapten Seite weiter zu interagieren. - Übergeben Sie genau eines von
urloderscrapeId, plus entwederpromptodercode.
Nutzungsbeispiel:
{
"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, das abgeleitete scrapeId für Folgeaktionen oder Bereinigung.
11. Interaktions-Tool stoppen (firecrawl_interact_stop)
Beenden Sie eine Interaktionssitzung für eine gescrapte Seite, wenn Sie mit der Interaktion fertig sind.
{
"name": "firecrawl_interact_stop",
"arguments": {
"scrapeId": "scrape-id-here"
}
}
12. Recherche-Tools (firecrawl_research_*)
Durchsuchen und untersuchen Sie Paper und GitHub-Repositories über die Recherche-MCP-Tools.
Abgedeckt: Paper-Abstracts und Volltexte aus biomedizinischer, lebenswissenschaftlicher und klinischer Literatur (PubMed, bioRxiv, medRxiv) sowie arXiv und andere wissenschaftliche Quellen.
Verfügbare Recherche-Tools:
firecrawl_research_search_papers: Durchsucht Paper-Metadaten und Abstracts mit einer natürlichsprachlichen Abfrage, mit optionalen Autoren-, 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 Volltextpassagen aus einem bestimmten Paper.
Am besten geeignet für: Literaturrecherche, Paper-Nachschlage und Repository-Entdeckungs-Workflows, bei denen der Agent eine fokussierte Recherche-Oberfläche anstelle von allgemeinem Web-Scraping benötigt.
firecrawl_search mit categories: ["research"] ist eine andere Oberfläche: Es filtert normale Webergebnisse 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 Paper als eine einzelne Abfrage.
13. Überwachungs-Tools (firecrawl_monitor_*)
Erstellen und verwalten Sie wiederkehrende Seitenüberwachungen. Überwachungen 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 weniger Seiten über einen längeren Zeitraum
- Alarmieren bei bedeutsamen Änderungen mithilfe eines Ziels in einfachem Englisch
- Verfolgen des Prüfverlaufs und von Seiten-Diffs
Empfohlenes Erstellungsmuster:
Verwenden Sie page oder pages plus goal. Der MCP-Server erstellt die Überwachungsanfrage mit einem 30-Minuten-Zeitplan, und die API aktiviert die Bewertung bedeutsamer Änderungen automatisch.
Die Bewertung bedeutsamer Änderungen läuft automatisch, wenn goal gesetzt ist. Seiten-Webhooks legen isMeaningful und judgment bei monitor.page-Ereignissen offen.
Formulieren Sie Ziele als prägnante 2-3-Satz-Überwachungsanweisungen. Geben Sie an, was einen Alarm auslösen soll, bewahren Sie jeden vom Benutzer angegebenen Umfang und fügen Sie absichtsspezifische Ausschlüsse nur hinzu, wenn sie aus der Anfrage offensichtlich sind. Generisches Rauschen wie Leerzeichen, reine Formatierungsänderungen, Anfrage-IDs, Tracking-Parameter, generische Metadaten und nicht zusammenhängende Seitenumgebung wird bereits vom Bewertungsmodul behandelt. Wiederholen Sie dies also nicht in jedem Ziel. Wenn der Benutzer vage ist, halten Sie das Ziel breit; wenn er breite Überwachung oder „jede Änderung“ anfordert, bewahren Sie das. Wenn der Benutzer sagt, dass ihm etwas egal ist, nehmen Sie das ausdrücklich 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 Überwachungs-Tools:
firecrawl_monitor_list: Listet Überwachungen auf.firecrawl_monitor_get: Ruft eine Überwachung ab.firecrawl_monitor_update: Aktualisiert Felder einschließlichgoal,judgeEnabled,webhookundnotification.firecrawl_monitor_run: Löst jetzt eine Prüfung aus.firecrawl_monitor_delete: Löscht eine Überwachung (zerstörerisch; nur aufrufen, wenn der Benutzer sie entfernen möchte).firecrawl_monitor_checks: Listet Prüfungen auf, optional nach Status gefiltert.firecrawl_monitor_check: Ruft Ergebnisse auf Seitenebene ab, einschließlichdiff,snapshot,judgment.meaningfulundjudgment.meaningfulChanges.
14. Entwickler-Such-Tool (firecrawl_developer_search)
Durchsucht 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 – Codeverhalten, 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 rangierten Ergebnisse. Der Standardwert ist 10 und das Maximum ist 100.skills: Auf"only"setzen, um nur Agenten-Fähigkeitsdateien zu durchsuchen.
Rückgabe: Rangierte Ergebnisse. Jedes Ergebnis enthält eine ID, einen Quelltyp (issue, pull_request, readme oder doc), eine URL, einen Titel und die übereinstimmenden Passagen in Markdown.
firecrawl_search mit categories: ["developer"] durchsucht denselben Index neben den Webergebnissen. Verwenden Sie stattdessen dieses Tool, wenn Sie die übereinstimmenden Passagen, den skills-Filter oder keine Webergebnisse in der Antwort wünschen. Der Nur-Suche-Endpunkt legt beide Tools offen, und dieselbe Wahl gilt dort.
Protokollierungssystem
Der Server enthält eine umfassende Protokollierung:
- Betriebsstatus und -fortschritt
- Leistungsmetriken
- Ratenlimit-Verfolgung
- Fehlerbedingungen
Beispiel-Protokollmeldungen:
[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-Ratenlimit-Fehler 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
- Repository forken
- Erstellen Sie Ihren Feature-Branch
- Tests ausführen:
npm test - Pull-Request einreichen
Dank an Mitwirkende
Dank an @vrknetha, @cawstudios für die ursprüngliche Implementierung!
Dank 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 – Details finden Sie in der LIZENZ-Datei