Firecrawl MCP-Server
Eine Model Context Protocol (MCP)-Serverimplementierung, die sich für Web-Scraping-Funktionen in Firecrawl integrieren lässt.
Vielen Dank an @vrknetha und @knacklabs für die erste Implementierung!
Merkmale
Web Scraping, Crawling und Discovery
Suche und Inhaltsextraktion
Tiefgehende Recherche und Batch-Scraping
Automatische Wiederholungsversuche und Ratenbegrenzung
Cloud- und selbstgehosteter Support
SSE-Unterstützung
Spielen Sie mit unserem MCP-Server auf dem Spielplatz von MCP.so oder auf Klavis AI herum.
Related MCP server: WebSearch
Installation
Ausführen mit npx
env FIRECRAWL_API_KEY=fc-YOUR_API_KEY npx -y firecrawl-mcpManuelle Installation
npm install -g firecrawl-mcpLäuft auf Cursor
Cursor konfigurieren 🖥️ Hinweis: Erfordert Cursor-Version 0.45.6+. Die aktuellsten Konfigurationsanweisungen finden Sie in der offiziellen Cursor-Dokumentation zur Konfiguration von MCP-Servern: Cursor MCP Server Configuration Guide
So konfigurieren Sie Firecrawl MCP in Cursor v0.48.6
Cursoreinstellungen öffnen
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
Cursoreinstellungen öffnen
Gehen Sie zu Funktionen > MCP-Server
Klicken Sie auf „+ Neuen MCP-Server hinzufügen“
Geben Sie Folgendes ein:
Name: „firecrawl-mcp“ (oder Ihr bevorzugter Name)
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. Falls Sie noch keinen haben, können Sie ein Konto erstellen und ihn unter https://www.firecrawl.dev/app/api-keys abrufen.
Aktualisieren Sie nach dem Hinzufügen die MCP-Serverliste, um die neuen Tools anzuzeigen. Der Composer Agent verwendet bei Bedarf automatisch Firecrawl MCP. Sie können es jedoch explizit anfordern, indem Sie Ihre Web-Scraping-Anforderungen beschreiben. Rufen Sie den Composer über Befehl+L (Mac) auf, wählen Sie „Agent“ neben der Schaltfläche „Senden“ und geben Sie Ihre Anfrage ein.
Laufen auf dem Windsurfbrett
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 im lokalen SSE-Modus
So führen Sie den Server lokal mit Server-Sent Events (SSE) anstelle des standardmäßigen stdio-Transports aus:
env SSE_LOCAL=true FIRECRAWL_API_KEY=fc-YOUR_API_KEY npx -y firecrawl-mcpVerwenden Sie die URL: http://localhost:3000/sse
Installation über Smithery (Legacy)
So installieren Sie Firecrawl für Claude Desktop automatisch über Smithery :
npx -y @smithery/cli install @mendableai/mcp-server-firecrawl --client claudeAusführung auf VS Code
Klicken Sie für die Ein-Klick-Installation auf eine der folgenden Installationsschaltflächen ...
Für die manuelle Installation fügen Sie den folgenden JSON-Block zu Ihrer Benutzereinstellungsdatei (JSON) in VS Code hinzu. Drücken Sie dazu Ctrl + Shift + P und geben Sie Preferences: Open User Settings (JSON) ein.
{
"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 die Konfiguration 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üsselErforderlich bei Verwendung der Cloud-API (Standard)
Optional bei Verwendung einer selbstgehosteten Instanz mit
FIRECRAWL_API_URL
FIRECRAWL_API_URL(Optional): Benutzerdefinierter API-Endpunkt für selbstgehostete InstanzenBeispiel:
https://firecrawl.your-domain.comWenn nicht angegeben, wird die Cloud-API verwendet (erfordert API-Schlüssel)
Optionale Konfiguration
Konfiguration wiederholen
FIRECRAWL_RETRY_MAX_ATTEMPTS: Maximale Anzahl an Wiederholungsversuchen (Standard: 3)FIRECRAWL_RETRY_INITIAL_DELAY: Anfängliche Verzögerung in Millisekunden vor dem ersten Wiederholungsversuch (Standard: 1000)FIRECRAWL_RETRY_MAX_DELAY: Maximale Verzögerung in Millisekunden zwischen Wiederholungsversuchen (Standard: 10000)FIRECRAWL_RETRY_BACKOFF_FACTOR: Exponentieller Backoff-Multiplikator (Standard: 2)
Überwachung der Kreditnutzung
FIRECRAWL_CREDIT_WARNING_THRESHOLD: Warnschwelle für die Kreditnutzung (Standard: 1000)FIRECRAWL_CREDIT_CRITICAL_THRESHOLD: Kritischer Schwellenwert für die Kreditnutzung (Standard: 100)
Konfigurationsbeispiele
Für die Verwendung der Cloud-API mit benutzerdefinierter Wiederholungs- und Kreditüberwachung:
# Required for cloud API
export FIRECRAWL_API_KEY=your-api-key
# Optional retry configuration
export FIRECRAWL_RETRY_MAX_ATTEMPTS=5 # Increase max retry attempts
export FIRECRAWL_RETRY_INITIAL_DELAY=2000 # Start with 2s delay
export FIRECRAWL_RETRY_MAX_DELAY=30000 # Maximum 30s delay
export FIRECRAWL_RETRY_BACKOFF_FACTOR=3 # More aggressive backoff
# Optional credit monitoring
export FIRECRAWL_CREDIT_WARNING_THRESHOLD=2000 # Warning at 2000 credits
export FIRECRAWL_CREDIT_CRITICAL_THRESHOLD=500 # Critical at 500 creditsFür selbst gehostete Instanzen:
# 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
# Custom retry configuration
export FIRECRAWL_RETRY_MAX_ATTEMPTS=10
export FIRECRAWL_RETRY_INITIAL_DELAY=500 # Start with faster retriesVerwendung 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",
"FIRECRAWL_RETRY_MAX_ATTEMPTS": "5",
"FIRECRAWL_RETRY_INITIAL_DELAY": "2000",
"FIRECRAWL_RETRY_MAX_DELAY": "30000",
"FIRECRAWL_RETRY_BACKOFF_FACTOR": "3",
"FIRECRAWL_CREDIT_WARNING_THRESHOLD": "2000",
"FIRECRAWL_CREDIT_CRITICAL_THRESHOLD": "500"
}
}
}
}Systemkonfiguration
Der Server verfügt über mehrere konfigurierbare Parameter, die über Umgebungsvariablen festgelegt werden können. Hier sind die Standardwerte, falls nicht konfiguriert:
const CONFIG = {
retry: {
maxAttempts: 3, // Number of retry attempts for rate-limited requests
initialDelay: 1000, // Initial delay before first retry (in milliseconds)
maxDelay: 10000, // Maximum delay between retries (in milliseconds)
backoffFactor: 2, // Multiplier for exponential backoff
},
credit: {
warningThreshold: 1000, // Warn when credit usage reaches this level
criticalThreshold: 100, // Critical alert when credit usage reaches this level
},
};Diese Konfigurationen steuern:
Wiederholungsverhalten
Automatische Wiederholung fehlgeschlagener Anfragen aufgrund von Ratenbegrenzungen
Verwendet exponentielles Backoff, um eine Überlastung der API zu vermeiden
Beispiel: Mit den Standardeinstellungen werden Wiederholungsversuche unternommen bei:
Wiederholungsversuch: 1 Sekunde Verzögerung
Wiederholungsversuch: 2 Sekunden Verzögerung
Wiederholungsversuch: 4 Sekunden Verzögerung (begrenzt auf maxDelay)
Überwachung der Kreditnutzung
Verfolgt den API-Guthabenverbrauch für die Cloud-API-Nutzung
Gibt Warnungen bei festgelegten Schwellenwerten aus
Hilft, unerwartete Dienstunterbrechungen zu vermeiden
Beispiel: Mit Standardeinstellungen:
Warnung bei 1000 verbleibenden Credits
Kritischer Alarm bei 100 verbleibenden Credits
Ratenbegrenzung und Stapelverarbeitung
Der Server nutzt die integrierten Ratenbegrenzungs- und Stapelverarbeitungsfunktionen von Firecrawl:
Automatische Ratenbegrenzungsbehandlung mit exponentiellem Backoff
Effiziente Parallelverarbeitung für Batch-Operationen
Intelligente Anforderungswarteschlange und Drosselung
Automatische Wiederholungsversuche bei vorübergehenden Fehlern
Verfügbare Tools
1. Scrape-Tool ( firecrawl_scrape )
Scrapen Sie Inhalte von einer einzelnen URL mit erweiterten Optionen.
{
"name": "firecrawl_scrape",
"arguments": {
"url": "https://example.com",
"formats": ["markdown"],
"onlyMainContent": true,
"waitFor": 1000,
"timeout": 30000,
"mobile": false,
"includeTags": ["article", "main"],
"excludeTags": ["nav", "footer"],
"skipTlsVerification": false
}
}2. Batch-Scrape-Tool ( firecrawl_batch_scrape )
Scrapen Sie mehrere URLs effizient mit integrierter Ratenbegrenzung und paralleler Verarbeitung.
{
"name": "firecrawl_batch_scrape",
"arguments": {
"urls": ["https://example1.com", "https://example2.com"],
"options": {
"formats": ["markdown"],
"onlyMainContent": true
}
}
}Die Antwort enthält die Vorgangs-ID zur Statusprüfung:
{
"content": [
{
"type": "text",
"text": "Batch operation queued with ID: batch_1. Use firecrawl_check_batch_status to check progress."
}
],
"isError": false
}3. Überprüfen Sie den Batch-Status ( firecrawl_check_batch_status )
Überprüfen Sie den Status eines Batchvorgangs.
{
"name": "firecrawl_check_batch_status",
"arguments": {
"id": "batch_1"
}
}4. Suchwerkzeug ( firecrawl_search )
Durchsuchen Sie das Web und extrahieren Sie optional Inhalte aus Suchergebnissen.
{
"name": "firecrawl_search",
"arguments": {
"query": "your search query",
"limit": 5,
"lang": "en",
"country": "us",
"scrapeOptions": {
"formats": ["markdown"],
"onlyMainContent": true
}
}
}5. Crawl-Tool ( firecrawl_crawl )
Starten Sie einen asynchronen Crawl mit erweiterten Optionen.
{
"name": "firecrawl_crawl",
"arguments": {
"url": "https://example.com",
"maxDepth": 2,
"limit": 100,
"allowExternalLinks": false,
"deduplicateSimilarURLs": true
}
}6. Extraktionstool ( firecrawl_extract )
Extrahieren Sie strukturierte Informationen aus Webseiten mithilfe von LLM-Funktionen. Unterstützt sowohl Cloud-KI als auch selbst gehostete LLM-Extraktion.
{
"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
}
}Beispielantwort:
{
"content": [
{
"type": "text",
"text": {
"name": "Example Product",
"price": 99.99,
"description": "This is an example product description"
}
}
],
"isError": false
}Optionen des Extraktionstools:
urls: Array von URLs, aus denen Informationen extrahiert werden sollenprompt: Benutzerdefinierte Eingabeaufforderung für die LLM-ExtraktionsystemPrompt: Systemaufforderung zur Anleitung des LLMschema: JSON-Schema für die strukturierte DatenextraktionallowExternalLinks: Erlaubt die Extraktion aus externen LinksenableWebSearch: Aktivieren Sie die Websuche für zusätzlichen KontextincludeSubdomains: Subdomains in die Extraktion einschließen
Bei Verwendung einer selbstgehosteten Instanz erfolgt die Extraktion über Ihr konfiguriertes LLM. Für die Cloud-API wird der verwaltete LLM-Dienst von Firecrawl verwendet.
7. Tool für tiefgehende Recherche (firecrawl_deep_research)
Führen Sie mithilfe intelligenter Crawling-, Such- und LLM-Analysen eine Deep-Web-Recherche zu einer Abfrage durch.
{
"name": "firecrawl_deep_research",
"arguments": {
"query": "how does carbon capture technology work?",
"maxDepth": 3,
"timeLimit": 120,
"maxUrls": 50
}
}Argumente:
Abfrage (Zeichenfolge, erforderlich): Die zu untersuchende Forschungsfrage oder das zu untersuchende Thema.
maxDepth (Zahl, optional): Maximale rekursive Tiefe für Crawling/Suche (Standard: 3).
timeLimit (Zahl, optional): Zeitlimit in Sekunden für die Recherchesitzung (Standard: 120).
maxUrls (Zahl, optional): Maximale Anzahl der zu analysierenden URLs (Standard: 50).
Widerrufsfolgen:
Von einem LLM auf Grundlage von Forschung erstellte Endanalyse. (data.finalAnalysis)
Kann auch strukturierte Aktivitäten und Quellen umfassen, die im Forschungsprozess verwendet wurden.
8. Tool zum Generieren von LLMs.txt (firecrawl_generate_llmstxt)
Generieren Sie eine standardisierte llms.txt-Datei (und optional llms-full.txt) für eine bestimmte Domäne. Diese Datei definiert, wie große Sprachmodelle mit der Site interagieren sollen.
{
"name": "firecrawl_generate_llmstxt",
"arguments": {
"url": "https://example.com",
"maxUrls": 20,
"showFullText": true
}
}Argumente:
url (Zeichenfolge, erforderlich): Die Basis-URL der zu analysierenden Website.
maxUrls (Zahl, optional): Maximale Anzahl einzuschließender URLs (Standard: 10).
showFullText (boolesch, optional): Ob der Inhalt von llms-full.txt in die Antwort aufgenommen werden soll.
Widerrufsfolgen:
Generierter Inhalt der Datei llms.txt und optional der Datei llms-full.txt (data.llmstxt und/oder data.llmsfulltxt)
Protokollierungssystem
Der Server beinhaltet eine umfassende Protokollierung:
Betriebsstatus und -fortschritt
Leistungsmetriken
Überwachung der Kreditnutzung
Ratenbegrenzungsverfolgung
Fehlerbedingungen
Beispiele für Protokollmeldungen:
[INFO] Firecrawl MCP Server initialized successfully
[INFO] Starting scrape for URL: https://example.com
[INFO] Batch operation queued with ID: batch_1
[WARNING] Credit usage has reached warning threshold
[ERROR] Rate limit exceeded, retrying in 2s...Fehlerbehandlung
Der Server bietet eine robuste Fehlerbehandlung:
Automatische Wiederholungsversuche bei vorübergehenden Fehlern
Ratenbegrenzungsbehandlung mit Backoff
Detaillierte Fehlermeldungen
Warnungen zur Kreditnutzung
Netzwerkstabilität
Beispiel für eine Fehlerantwort:
{
"content": [
{
"type": "text",
"text": "Error: Rate limit exceeded. Retrying in 2 seconds..."
}
],
"isError": true
}Entwicklung
# Install dependencies
npm install
# Build
npm run build
# Run tests
npm testBeitragen
Forken Sie das Repository
Erstellen Sie Ihren Feature-Zweig
Tests ausführen:
npm testSenden einer Pull-Anfrage
Dank an die Mitwirkenden
Danke an @vrknetha , @cawstudios für die erste Implementierung!
Danke an MCP.so und Klavis AI für das Hosting und @gstarwd , @xiangkaiz und @zihaolin96 für die Integration unseres Servers.
Lizenz
MIT-Lizenz – Einzelheiten finden Sie in der Datei „LICENSE“