Firecrawl
offiziellWebdaten mit Firecrawl extrahieren
Was kann man mit Firecrawl MCP machen?
- Bekannte URL auf strukturierte Daten scrapen — Bitten Sie die KI, mit
firecrawl_scrapeund einem JSON-Schema bestimmte Felder (z. B. Name, Preis) aus einer Seite zu extrahieren. - Im Web nach Informationen suchen — Bitten Sie die KI, mit
firecrawl_searchrelevante Seiten im Web zu finden und optional die vollständigen Inhalte der Ergebnisse zu scrapen. - Eine Website kartieren, um ihre URLs zu entdecken — Bitten Sie die KI, mit
firecrawl_mapalle indizierten URLs einer Domain aufzulisten, bevor Sie entscheiden, welche Seiten gescrapt werden sollen. - Autonome Multi-Quellen-Recherche durchführen — Bitten Sie die KI, einen
firecrawl_agent-Job zu starten, der eigenständig surft und Daten sammelt, und fragen Sie dann mitfirecrawl_agent_statusdie Ergebnisse ab. - Mit einer dynamischen Seite interagieren — Bitten Sie die KI, mit
firecrawl_interactauf einer Seite zu klicken, Text einzugeben oder zu navigieren – entweder über eine URL oder eine bestehende Scrape-Sitzung.
Dokumentation
Firecrawl MCP Server
Ein Model Context Protocol (MCP) Server, der Firecrawl zu MCP-kompatiblen KI-Agenten bringt – das Live-Web durchsuchen, scrapen und mit ihm interagieren, für saubere, agentenbereite Kontexte.
Großer Dank an @vrknetha, @knacklabs für die initiale Implementierung!
Funktionen
- Das Web durchsuchen und vollständige Seiteninhalte erhalten
- Jede URL in saubere, strukturierte Daten scrapen
- Mit Seiten interagieren – klicken, navigieren und bedienen
- Tiefgehende Recherche mit autonomem Agenten
- Automatische Wiederholungen und Ratenbegrenzung
- Cloud- und Self-Hosted-Unterstützung
- SSE-Unterstützung
Spielen Sie mit unserem MCP Server auf dem MCP.so Playground oder auf Klavis AI herum.
Installation
Gehostetes MCP (schlüssellose kostenlose Stufe)
Verbinden Sie sich ohne Einrichtung mit dem remote gehosteten Server:
https://mcp.firecrawl.dev/v2/mcp
In der schlüssellosen kostenlosen Stufe funktionieren scrape, search und interact ohne API-Schlüssel (ratenbegrenzt). Andere Tools wie crawl, map, agent und extract benötigen weiterhin einen Schlüssel.
Bevorzugen Sie einen API-Schlüssel oder OAuth, wann immer der Mensch sich registrieren kann. Es schaltet den vollen Tool-Satz und höhere Limits frei. Mit einem Schlüssel verwenden Sie:
https://mcp.firecrawl.dev/{FIRECRAWL_API_KEY}/v2/mcp
Siehe die MCP Server-Dokumentation und den Agent Onboarding Guide für Einrichtungsdetails.
Nur-Suche-Endpunkt
Eine schreibgeschützte, reine Suchoberfläche wird auch hier gehostet:
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 Abrufen von Seiteninhalten durch und hat eine eigene OAuth-Identität; der obige vollständige Endpunkt 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 Configuration Guide
So konfigurieren Sie Firecrawl MCP in Cursor v0.48.6
- Öffnen Sie die Cursor-Einstellungen
- Gehen Sie zu Features > MCP Servers
- Klicken Sie auf "+ Add new global MCP server"
- 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 Features > MCP Servers
- Klicken Sie auf "+ Add New MCP Server"
- Geben Sie Folgendes ein:
- Name: "firecrawl-mcp" (oder Ihr bevorzugter Name)
- Type: "command"
- Command:
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. Falls 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 angebracht ist, aber Sie können es explizit anfordern, indem Sie Ihre Web-Scraping-Anforderungen beschreiben. Greifen Sie über Command+L (Mac) auf den Composer zu, wählen Sie "Agent" neben dem Absenden-Button 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 eine Ein-Klick-Installation klicken Sie auf einen der Installations-Buttons unten...
Für die manuelle Installation fügen Sie den folgenden JSON-Block zu Ihrer User Settings (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 Workspace hinzufügen. Dies ermöglicht es Ihnen, die Konfiguration mit anderen zu 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 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-Zugriffstoken)
Gehostetes Firecrawl kann OAuth Zugriffstoken (fco_…) über den Autorisierungsserver auf firecrawl.dev ausstellen. Dieser MCP-Server leitet die von ihm aufgelösten Anmeldeinformationen als Authorization: Bearer … an die Firecrawl-API weiter.
- HTTP-Stream-Transporte (
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 Zugriffstoken (fco_…). Refresh-Token (fcr_…) müssen am Token-Endpunkt ausgetauscht werden und dürfen nicht an die Scrape-/Search-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 lokalem Port 3001 weiter, und die OAuth-Identifikation der geschützten Ressource 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 den Start der Suchinstanz zu verhindern. 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 weder die gebündelten nginx-Routen noch die Zulassungsliste des Autorisierungsservers neu und dürfen in der gehosteten Bereitstellung nicht unabhängig verwendet werden.
Die Suchinstanz erfordert Authentifizierung für jede Anfrage (einschließlich tools/list) und lehnt OAuth-Token ab, deren Audience nicht mit ihrer eigenen Ressource übereinstimmt.
Konfigurationsbeispiele
Für die Cloud-API-Nutzung:
export FIRECRAWL_API_KEY=your-api-key
Für 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"
}
}
}
}
Wie man ein Tool auswählt
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 komplexe Recherchen über mehrere unbekannte Quellen benötigen: Verwenden Sie agent
- Wenn Sie eine ganze Website oder einen Abschnitt analysieren möchten: Verwenden Sie crawl (mit Limits!)
- Wenn Sie interaktive Browser-Automatisierung benötigen (klicken, tippen, navigieren): Verwenden Sie interact mit einer URL für eine neue Seite oder scrape + interact, wenn Sie die Seite bereits gescraped haben oder eine strengere Scrape-Kontrolle benötigen
Kurzreferenztabelle
| 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 URL-Modus |
| map | Entdecken von URLs auf einer Website | URL[] |
| crawl | Mehrseitenextraktion (mit Limits) | Endgültiger Crawl-Status/Daten nach internem Polling |
| parse | Dateien und gehostete Upload-Referenzen | Markdown, JSON oder Dokumentenausgabe |
| extract | Strukturierte Extraktion aus URLs | JSON strukturierte Daten |
| search | Websuche nach Informationen | results[] |
| agent | Komplexe Multi-Source-Recherche | JSON (strukturierte Daten) |
| monitor | Wiederkehrende Seitenprüfungen | Monitor/Check-Metadaten und Diffs |
| research | Recherche zu Papern und GitHub-Repositories | Rechercheergebnisse und Repo-Übereinstimmungen |
Leitfaden zur Formatauswahl
Bei der Verwendung von scrape wählen Sie das richtige Format:
- JSON-Format (empfohlen für die meisten Fälle): Verwenden Sie es, wenn Sie spezifische Daten von einer Seite benötigen. Definieren Sie ein Schema basierend auf dem, was Sie extrahieren müssen. Dies hält die Antworten klein und vermeidet ein Überlaufen des Kontextfensters.
- Markdown-Format (sparsam verwenden): Nur, wenn Sie wirklich den vollständigen Seiteninhalt benötigen, z. B. zum Lesen eines gesamten Artikels für eine Zusammenfassung oder zur Analyse der Seitenstruktur.
Verfügbare Tools
1. Scrape Tool (firecrawl_scrape)
Inhalte von einer einzelnen URL mit erweiterten Optionen scrapen.
Am besten geeignet für:
- Extraktion einzelner Seiteninhalte, wenn Sie genau wissen, welche Seite die Informationen enthält.
Nicht empfohlen für:
- Extrahieren von Inhalten aus mehreren Seiten (verwenden Sie wiederholte Scrape-Aufrufe für bekannte URLs oder map + scrape, um zuerst URLs zu entdecken, oder crawl für vollständige Seiteninhalte)
- Wenn Sie unsicher sind, welche Seite die Informationen enthält (verwenden Sie search)
Häufige Fehler:
- Übergeben einer Liste von URLs an einen 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äßige Verwendung 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): Verwenden Sie für die meisten Anwendungsfälle das JSON-Format mit einem Schema, um nur die spezifisch benötigten Daten zu extrahieren. Dies hält die Antworten fokussiert und verhindert ein Überlaufen des Kontextfensters.
- 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."
Anwendungsbeispiel (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"]
}
}
]
}
}
Anwendungsbeispiel (Markdown-Format - wenn vollständiger Inhalt benötigt wird):
{
"name": "firecrawl_scrape",
"arguments": {
"url": "https://example.com/article",
"formats": ["markdown"],
"onlyMainContent": true
}
}
Anwendungsbeispiel (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 angegebene Formate.
2. Map Tool (firecrawl_map)
Eine Website kartieren, um alle indizierten URLs auf der Website zu entdecken.
Am besten geeignet für:
- Entdecken von URLs auf einer Website, bevor entschieden wird, was gescraped werden soll
- Auffinden bestimmter Bereiche 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:
- Verwenden von crawl, um URLs zu entdecken, anstelle von map
Prompt-Beispiel:
"Listen Sie alle URLs auf example.com auf."
Anwendungsbeispiel:
{
"name": "firecrawl_map",
"arguments": {
"url": "https://example.com"
}
}
Rückgabe:
- Array von auf der Website gefundenen URLs
3. Search Tool (firecrawl_search)
Das Web durchsuchen und optional Inhalte aus den Suchergebnissen extrahieren.
Am besten geeignet für:
- Auffinden spezifischer Informationen über mehrere Websites hinweg, wenn Sie nicht wissen, welche Website die Informationen hat.
- Wenn Sie den relevantesten Inhalt für eine Suchanfrage benötigen
Nicht empfohlen für:
- Wenn Sie bereits wissen, welche Website gescraped werden soll (verwenden Sie scrape)
- Wenn Sie eine umfassende Abdeckung einer einzelnen Website benötigen (verwenden Sie map oder crawl)
Häufige Fehler:
- Verwenden von crawl oder map für offene Fragen (verwenden Sie stattdessen search)
Anwendungsbeispiel:
{
"name": "firecrawl_search",
"arguments": {
"query": "latest AI research papers 2023",
"highlights": true,
"limit": 5,
"lang": "en",
"country": "us",
"scrapeOptions": {
"formats": ["markdown"],
"onlyMainContent": true,
"redactPII": true
}
}
}
Setzen Sie highlights auf true, um abfragerelevante Hervorhebungen anzufordern, oder auf false, um die ursprünglichen Such-Snippets beizubehalten. Lassen Sie es weg, um das Standardverhalten der API zu verwenden.
Gibt zurück:
- Array von Suchergebnissen (mit optionalem gescrapten Inhalt), plus ein
id-Feld. Übergeben Sie diesesidanfirecrawl_search_feedback, nachdem Sie die Ergebnisse verwendet haben, um 1 Credit zurückzuerhalten (Suche kostet 2) und die Suchqualität zu verbessern.
Prompt-Beispiel:
"Finde die neuesten Forschungsarbeiten zu KI, die 2023 veröffentlicht wurden."
3b. Such-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 dies nach jeder Suche auf, die Sie tatsächlich verwenden (oder die nicht geholfen hat). Schlechtes/unvollständiges Feedback mit missingContent ist genauso wertvoll wie gutes Feedback.
Opt-out: 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-Admins 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 Inhaltsteile, die der Agent erwartet hat zu finden, aber nicht gefunden hat. Ein Eintrag pro fehlendem Thema – diese aggregieren sich teamübergreifend und sagen 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, zeichnen weitere Übermittlungen weiterhin Feedback auf, erstatten aber keine Credits mehr. Die Antwort setzt dailyCapReached: true. Agenten sollten den Aufruf dieses Tools für den Rest des UTC-Tages einstellen, wenn sie dieses Flag sehen.
Anwendungsbeispiel:
{
"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'"
}
}
Gibt zurück:
{ 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 Feedback auf Endpunktebene zu scrape, parse, map oder search-Jobs.
Für die Qualität von Suchergebnissen 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.
Opt-out: 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.
Anwendungsbeispiel:
{
"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"
}
}
}
Gibt zurück:
{ 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 Daten zurück.
Am besten geeignet für:
- Extrahieren von Inhalten aus 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 eine strengere Kontrolle)
- Wenn Sie schnelle Ergebnisse benötigen (Crawlen 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 eine strengere 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:
"Hole alle Blogbeiträge von den ersten beiden Ebenen von example.com/blog."
Anwendungsbeispiel:
{
"name": "firecrawl_crawl",
"arguments": {
"url": "https://example.com/blog/*",
"maxDiscoveryDepth": 2,
"limit": 100,
"allowExternalLinks": false,
"deduplicateSimilarURLs": true
}
}
Gibt zurück:
- Endgültiger Crawl-Status und Daten nach interner Abfrage, einschließlich
id,status,completed,total,creditsUsed,expiresAt,nextunddata. Verwenden Sie die zurückgegebeneidmitfirecrawl_check_crawl_status, wenn Sie den Job später erneut überprüfen müssen.
5. Crawl-Status prüfen (firecrawl_check_crawl_status)
Überprüfen Sie den Status und die Ergebnisse eines bestehenden Crawl-Jobs anhand der ID.
{
"name": "firecrawl_check_crawl_status",
"arguments": {
"id": "550e8400-e29b-41d4-a716-446655440000"
}
}
Gibt zurück:
- Die Antwort enthält den Status des Crawl-Jobs:
6. Parse-Tool (firecrawl_parse)
Parsen Sie 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 eine Markdown- oder strukturierte JSON-Ausgabe benötigen. Gehostetes MCP unterstützt einen zweistufigen Upload-Ref-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 nicht direkt auf das Dateisystem des Aufrufers zugreifen. 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 Erstellen der gehosteten Upload-URL erfordert Firecrawl-Authentifizierung oder Keyless-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 reiner Cloud-API-Key-lokaler Server kann mit diesem Tool keine Dateien lesen und hochladen.
Anwendungsbeispiel:
{
"name": "firecrawl_parse",
"arguments": {
"filePath": "/absolute/path/to/document.pdf",
"formats": ["markdown"],
"parsers": ["pdf"],
"zeroDataRetention": true
}
}
Gibt zurück: Geparsten Dokumentinhalt oder gehostete Upload-Anweisungen mit einer nextToolCall.
7. Extract-Tool (firecrawl_extract)
Extrahieren Sie strukturierte Informationen von Webseiten mithilfe von LLM-Fähigkeiten. Unterstützt sowohl Cloud-KI als auch selbst gehostete LLM-Extraktion.
Am besten geeignet für:
- Extrahieren spezifischer strukturierter Daten wie Preise, Namen, Details.
Nicht empfohlen für:
- Wenn Sie den vollständigen Inhalt einer Seite benötigen (verwenden Sie Scrape)
- Wenn Sie nicht nach spezifischen strukturierten Daten suchen
Argumente:
urls: Array von URLs, aus denen Informationen extrahiert werden sollenprompt: Benutzerdefinierter Prompt für die LLM-ExtraktionsystemPrompt: System-Prompt zur Anleitung des LLMschema: JSON-Schema für die strukturierte DatenextraktionallowExternalLinks: Extraktion von externen Links erlaubenenableWebSearch: Websuche für zusätzlichen Kontext aktivierenincludeSubdomains: Subdomains in die Extraktion einbeziehen
Bei Verwendung einer selbst gehosteten Instanz verwendet die Extraktion Ihr konfiguriertes LLM. Für die Cloud-API wird der verwaltete LLM-Dienst von Firecrawl verwendet. Prompt-Beispiel:
"Extrahiere den Produktnamen, den Preis und die Beschreibung von diesen Produktseiten."
Anwendungsbeispiel:
{
"name": "firecrawl_extract",
"arguments": {
"urls": ["https://example.com/page1", "https://example.com/page2"],
"prompt": "Extract product information including name, price, and description",
"systemPrompt": "You are a helpful assistant that extracts product information",
"schema": {
"type": "object",
"properties": {
"name": { "type": "string" },
"price": { "type": "number" },
"description": { "type": "string" }
},
"required": ["name", "price"]
},
"allowExternalLinks": false,
"enableWebSearch": false,
"includeSubdomains": false
}
}
Gibt zurück:
- Extrahierte strukturierte Daten, wie durch Ihr Schema definiert
{
"content": [
{
"type": "text",
"text": {
"name": "Example Product",
"price": 99.99,
"description": "This is an example product description"
}
}
],
"isError": false
}
8. Agent-Tool (firecrawl_agent)
Autonomer Web-Recherche-Agent. Dies ist eine separate KI-Agenten-Schicht, die selbstständig im Internet surft, nach Informationen sucht, durch Seiten navigiert und strukturierte Daten basierend auf Ihrer Abfrage extrahiert.
So funktioniert es:
Der Agent führt Websuchen durch, folgt Links, liest Seiten und sammelt autonom Daten. Dies läuft asynchron – es gibt sofort eine Job-ID zurück, und Sie fragen firecrawl_agent_status ab, um zu prüfen, wann der Vorgang abgeschlossen ist, und die Ergebnisse abzurufen.
Asynchroner Workflow:
- Rufen Sie
firecrawl_agentmit Ihrem Prompt/Schema auf → gibt Job-ID zurück - Erledigen Sie andere Aufgaben, während der Agent recherchiert (kann bei komplexen Abfragen Minuten dauern)
- Fragen Sie
firecrawl_agent_statusmit der Job-ID ab, um den Fortschritt zu überprü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
- Datensammlung aus mehreren Quellen
- Auffinden 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 einzelner Seiten, bei denen 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:
"Finde die Gründer von Firecrawl und ihre Hintergründe"
Anwendungsbeispiel (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" }
}
}
}
}
}
}
}
Fragen Sie dann mit firecrawl_agent_status unter Verwendung der zurückgegebenen Job-ID ab.
Anwendungsbeispiel (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"
}
}
Gibt zurück:
- Job-ID zur Statusüberprüfung. Verwenden Sie
firecrawl_agent_status, um Ergebnisse abzufragen.
9. Agent-Status prüfen (firecrawl_agent_status)
Überprüfen Sie den Status eines Agenten-Jobs und rufen Sie die Ergebnisse ab, wenn er abgeschlossen ist. Verwenden Sie dies, um nach dem Start eines Agenten Ergebnisse abzufragen.
Abrufmuster: Die Agentenrecherche kann bei komplexen Abfragen 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üfencompleted: Recherche abgeschlossen – Antwort enthält die extrahierten Datenfailed: 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 des Zustands von dynamischen Seiten, ohne die veralteten Browser-Tools wiederherzustellen.
Nutzungsoptionen:
- Übergeben Sie
url, um eine Seite zu scrapen und zur Interaktion in einem MCP-Aufruf zu öffnen. - Übergeben Sie
scrapeId, um die Interaktion mit einer bestehenden gescrapten Seite fortzusetzen. - Übergeben Sie genau eines von
urloderscrapeId, plus entwederpromptodercode.
Anwendungsbeispiel:
{
"name": "firecrawl_interact",
"arguments": {
"url": "https://example.com",
"prompt": "Click the pricing link and summarize the visible plans"
}
}
Gibt zurück: Interaktionsergebnis und, für den URL-Modus, die abgeleitete scrapeId für Nachverfolgung oder Bereinigung.
11. Interaktion beenden-Tool (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 Forschungsarbeiten und GitHub-Repositories mit den Recherche-MCP-Tools.
Verfügbare Recherche-Tools:
firecrawl_research_search_papers: Forschungsarbeiten suchen.firecrawl_research_inspect_paper: Eine Forschungsarbeit untersuchen.firecrawl_research_related_papers: Verwandte Forschungsarbeiten finden.firecrawl_research_read_paper: Inhalt einer Forschungsarbeit lesen.firecrawl_research_search_github: GitHub-Repositories suchen.
Am besten geeignet für: Literaturrecherche, Papiernachschlage- und Repository-Entdeckungs-Workflows, bei denen der Agent eine fokussierte Rechercheoberfläche anstelle von allgemeinem Web-Scraping benötigt.
13. Monitor-Tools (firecrawl_monitor_*)
Erstellen und verwalten Sie wiederkehrende Seitenmonitore. Monitore führen geplante Scrapes oder Crawls durch, vergleichen jedes Ergebnis mit dem letzten gespeicherten Snapshot und können per Webhook oder E-Mail benachrichtigen.
Am besten geeignet für:
- Beobachten einer oder weniger Seiten im Zeitverlauf
- Alarmierung bei bedeutsamen Änderungen mithilfe eines Ziels in einfachem Englisch
- Verfolgung des Prüfverlaufs und seitenbezogener Unterschiede
Empfohlenes Erstellungsmuster:
Verwenden Sie page oder pages plus goal. Der MCP-Server erstellt die Monitoranfrage mit einem 30-Minuten-Zeitplan und die API aktiviert die Beurteilung bedeutsamer Änderungen automatisch.
Die Beurteilung bedeutsamer Änderungen läuft automatisch, wenn goal gesetzt ist. Seiten-Webhooks stellen isMeaningful und judgment bei monitor.page-Ereignissen bereit.
Schreiben Sie Ziele als prägnante Monitoranweisungen mit 2-3 Sätzen. Geben Sie an, was einen Alarm auslösen soll, bewahren Sie jeden vom Benutzer vorgegebenen Umfang und fügen Sie absichtsspezifische Ausschlüsse nur dann ein, wenn sie aus der Anfrage offensichtlich sind. Generisches Rauschen wie Leerzeichen, rein formatbedingte Änderungen, Anfrage-IDs, Tracking-Parameter, generische Metadaten und nicht zusammenhängender Seiten-Chrome wird bereits vom Beurteiler behandelt, wiederholen Sie es also nicht in jedem Ziel. Wenn der Benutzer vage ist, halten Sie das Ziel breit; wenn er um breite Überwachung oder "jede Änderung" bittet, bewahren Sie dies. Wenn der Benutzer sagt, dass ihm etwas egal ist, schließen Sie dies ausdrücklich ein.
{
"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-Kontrolle 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 Monitor-Tools:
firecrawl_monitor_list: Monitore auflisten.firecrawl_monitor_get: Einen Monitor abrufen.firecrawl_monitor_update: Felder aktualisieren, einschließlichgoal,judgeEnabled,webhookundnotification.firecrawl_monitor_run: Jetzt eine Prüfung auslösen.firecrawl_monitor_delete: Einen Monitor löschen (destruktiv; nur aufrufen, wenn der Benutzer ihn entfernen möchte).firecrawl_monitor_checks: Prüfungen auflisten, optional nach Status gefiltert.firecrawl_monitor_check: Ergebnisse auf Seitenebene abrufen, einschließlichdiff,snapshot,judgment.meaningfulundjudgment.meaningfulChanges.
Protokollierungssystem
Der Server umfasst eine umfassende Protokollierung:
- Betriebsstatus und -fortschritt
- Leistungskennzahlen
- Ratenlimit-Verfolgung
- Fehlerzustände
Beispiel für 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 weitergeleitet
- Detaillierte Fehlermeldungen
- Netzwerkausfallsicherheit
Beispiel für eine 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
- Das Repository forken
- Euren Feature-Branch erstellen
- Tests ausführen:
npm test - Einen Pull-Request einreichen
Dank an die Mitwirkenden
Dank an @vrknetha, @cawstudios für die erste 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 – siehe LICENSE-Datei für Details