mcp-server-firecrawl

by mendableai
MIT License
16,506
3,053
  • Apple
  • Linux

Integrations

  • Provides integration with Windsurf (Codeium's application) for web scraping, content extraction, and deep research capabilities.

  • Supports converting web content to Markdown format for better readability and integration with documentation systems.

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.

Installation

Ausführen mit npx

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

Manuelle Installation

npm install -g firecrawl-mcp

Lä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

  1. Cursoreinstellungen öffnen
  2. Gehen Sie zu Funktionen > 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. Cursoreinstellungen öffnen
  2. Gehen Sie zu Funktionen > MCP-Server
  3. Klicken Sie auf „+ Neuen MCP-Server hinzufügen“
  4. 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-mcp

Verwenden 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 claude

Ausfü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üssel
    • Erforderlich 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 Instanzen
    • Beispiel: https://firecrawl.your-domain.com
    • Wenn 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 credits

Fü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 retries

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", "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:

  1. 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:
        1. Wiederholungsversuch: 1 Sekunde Verzögerung
        1. Wiederholungsversuch: 2 Sekunden Verzögerung
        1. Wiederholungsversuch: 4 Sekunden Verzögerung (begrenzt auf maxDelay)
  2. Ü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" } }

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 sollen
  • prompt : Benutzerdefinierte Eingabeaufforderung für die LLM-Extraktion
  • systemPrompt : Systemaufforderung zur Anleitung des LLM
  • schema : JSON-Schema für die strukturierte Datenextraktion
  • allowExternalLinks : Erlaubt die Extraktion aus externen Links
  • enableWebSearch : Aktivieren Sie die Websuche für zusätzlichen Kontext
  • includeSubdomains : 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 test

Beitragen

  1. Forken Sie das Repository
  2. Erstellen Sie Ihren Feature-Zweig
  3. Tests ausführen: npm test
  4. Senden 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“

Related MCP Servers

  • A
    security
    A
    license
    A
    quality
    MCP Server enabling integration with Scrapezy to retrieve structured data from websites.
    Last updated -
    1
    12
    1
    JavaScript
    MIT License
    • Apple
  • A
    security
    F
    license
    A
    quality
    Built as a Model Context Protocol (MCP) server that provides advanced web search, content extraction, web crawling, and scraping capabilities using the Firecrawl API.
    Last updated -
    4
    1
    Python
    • Apple
    • Linux
  • -
    security
    A
    license
    -
    quality
    A Model Context Protocol server that allows LLMs to interact with web content through standardized tools, currently supporting web scraping functionality.
    Last updated -
    Python
    MIT License
    • Linux
    • Apple
  • A
    security
    F
    license
    A
    quality
    A server that provides tools to scrape websites and extract structured data from them using Firecrawl's APIs, supporting both basic website scraping in multiple formats and custom schema-based data extraction.
    Last updated -
    2
    JavaScript

View all related MCP servers

ID: 57mideuljt