Skip to main content
Glama
firecrawl

mcp-server-firecrawl

by firecrawl

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-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 ...

Mit NPX in VS Code installieren Installation mit NPX in VS Code Insiders

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

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 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“

Install Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/firecrawl/firecrawl-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server