
MCP-Server, der Web-Scraping, Crawling und Suchfunktionen für KI-Agenten bereitstellt. Unterstützt strukturierte Datenextraktion, interaktives Browsen und tiefgehende Recherche über eine einheitliche API.
Ein Model Context Protocol (MCP)-Server, der Firecrawl zu MCP-kompatiblen KI-Agenten bringt – durchsuchen, scrapen und mit dem Live-Web interagieren für sauberen, agentenbereiten Kontext.
Großer Dank an @vrknetha, @knacklabs für die erste Implementierung!
Spielen Sie mit unserem MCP Server auf MCP.sos Spielplatz oder auf Klavis AI.
Stellen Sie eine Verbindung zum entfernten gehosteten Server her, ohne Einrichtung:``` https://mcp.firecrawl.dev/v2/mcp
Im schlüssellosen kostenlosen Tarif 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 Benutzer sich anmelden kann. Es schaltet das vollständige Toolset und höhere Grenzwerte frei. Mit einem Schlüssel verwenden Sie:```
https://mcp.firecrawl.dev/{FIRECRAWL_API_KEY}/v2/mcp
Siehe die MCP server docs und den agent onboarding guide für Einrichtungsdetails.
env FIRECRAWL_API_KEY=fc-YOUR_API_KEY npx -y firecrawl-mcp
### Manuelle Installation```bash
npm install -g firecrawl-mcp
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 Konfigurationsanleitung
So konfigurieren Sie Firecrawl MCP in Cursor v0.48.6
Um Firecrawl MCP in Cursor v0.45.6 zu konfigurieren:
env FIRECRAWL_API_KEY=your-api-key npx -y firecrawl-mcpWenn 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.
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. Öffnen Sie den Composer über Command+L (Mac), wählen Sie neben dem Senden-Button „Agent" und geben Sie Ihre Anfrage ein.
Fügen Sie dies zu Ihrer ./codeium/windsurf/model_config.json hinzu:```json
{
"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 mit Streamable HTTP lokal anstelle des standardmäßigen stdio-Transports auszuführen:```bash
env HTTP_STREAMABLE_SERVER=true FIRECRAWL_API_KEY=fc-YOUR_API_KEY npx -y firecrawl-mcp
Verwende die URL: http://localhost:3000/mcp
Um Firecrawl für Claude Desktop automatisch über Smithery zu installieren:```bash npx -y @smithery/cli install @mendableai/mcp-server-firecrawl --client claude
### Ausführen in VS Code
Für eine Ein-Klick-Installation klicken Sie auf einen der untenstehenden Installations-Buttons...
[](https://insiders.vscode.dev/redirect/mcp/install?name=firecrawl&inputs=%5B%7B%22type%22%3A%22promptString%22%2C%22id%22%3A%22apiKey%22%2C%22description%22%3A%22Firecrawl%20API%20Key%22%2C%22password%22%3Atrue%7D%5D&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22firecrawl-mcp%22%5D%2C%22env%22%3A%7B%22FIRECRAWL_API_KEY%22%3A%22%24%7Binput%3AapiKey%7D%22%7D%7D) [](https://insiders.vscode.dev/redirect/mcp/install?name=firecrawl&inputs=%5B%7B%22type%22%3A%22promptString%22%2C%22id%22%3A%22apiKey%22%2C%22description%22%3A%22Firecrawl%20API%20Key%22%2C%22password%22%3Atrue%7D%5D&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22firecrawl-mcp%22%5D%2C%22env%22%3A%7B%22FIRECRAWL_API_KEY%22%3A%22%24%7Binput%3AapiKey%7D%22%7D%7D&quality=insiders)
Für die manuelle Installation fügen Sie den folgenden JSON-Block zu Ihrer User Settings (JSON)-Datei in VS Code hinzu. Dies können Sie tun, indem Sie `Ctrl + Shift + P` drücken und `Preferences: Open User Settings (JSON)` eingeben.```json
{
"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}"
}
}
}
}
}
Optionally, you can add it to a file called .vscode/mcp.json in your workspace. This will allow you to share the configuration with others:```json
{
"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`
- Falls nicht angegeben, wird die Cloud-API verwendet (erfordert API-Schlüssel)
#### MCP OAuth (Bearer-Zugriffstoken)
Gehostetes Firecrawl kann OAuth **Zugriffstoken** (`fco_…`) über den Autorisierungsserver auf [firecrawl.dev](https://firecrawl.dev) ausstellen. Dieser MCP-Server leitet die aufgelöste Anmeldeinformation an die Firecrawl-API als `Authorization: Bearer …` weiter.
- **HTTP-Stream-Transports** (`CLOUD_SERVICE=true`, `HTTP_STREAMABLE_SERVER=true` oder `SSE_LOCAL=true`): Clients sollten bei MCP-Anfragen `Authorization: Bearer <fco_access_token>` senden. Ein OAuth-Bearer-Token hat Vorrang vor `x-firecrawl-api-key` / `x-api-key`, wenn beide vorhanden sind.
- **stdio:** Verwenden Sie `FIRECRAWL_OAUTH_TOKEN` für ein statisches Zugriffstoken, oder verwenden Sie weiterhin `FIRECRAWL_API_KEY` für einen API-Schlüssel.
Verwenden Sie nur **Zugriffstoken** (`fco_…`). Aktualisierungstoken (`fcr_…`) müssen am Token-Endpunkt ausgetauscht werden, nicht an die Scrape-/Search-API übergeben werden.
### Konfigurationsbeispiele
Für die Nutzung der Cloud-API:```bash
export FIRECRAWL_API_KEY=your-api-key
Für selbst gehostete Instanz:```bash
export FIRECRAWL_API_URL=https://firecrawl.your-domain.com
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:```json
{
"mcpServers": {
"mcp-server-firecrawl": {
"command": "npx",
"args": ["-y", "firecrawl-mcp"],
"env": {
"FIRECRAWL_API_KEY": "YOUR_API_KEY_HERE"
}
}
}
}
Verwenden Sie diese Anleitung, um das richtige Tool für Ihre Aufgabe auszuwählen:
| Tool | Am besten geeignet für | Rückgabe |
|---|---|---|
| scrape | Einzelseiteninhalt | JSON (bevorzugt) oder Markdown |
| interact | Mit einer URL oder einer gecrawlten Seite interagieren | Ausführungsergebnis + scrapeId für den URL-Modus |
| map | URLs auf einer Site entdecken | URL[] |
| crawl | Mehrseitige Extraktion (mit Limits) | finaler Crawl-Status/Daten nach internem Polling |
| parse | Dateien und gehostete Upload-Referenzen | Markdown, JSON oder Dokumentausgabe |
| extract | Strukturierte Extraktion von URLs | JSON strukturierte Daten |
| search | Websuche nach Informationen | results[] |
| agent | Komplexe, mehrquellige Recherche | JSON (strukturierte Daten) |
| monitor | Wiederkehrende Seitenprüfungen | Monitor/Prüf-Metadaten und Diffs |
| research | Recherche zu Papieren und GitHub-Repositories | Forschungsergebnisse und Repository-Übereinstimmungen |
Wenn Sie scrape verwenden, wählen Sie das richtige Format:
firecrawl_scrape)Inhalte von einer einzelnen URL mit erweiterten Optionen extrahieren.
Am besten geeignet für:
Nicht empfohlen für:
Häufige Fehler:
Das richtige Format wählen:
Prompt-Beispiel:
"Holen Sie sich die Produktdetails von https://example.com/product."
Nutzungsbeispiel (JSON-Format - bevorzugt):```json { "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 der vollständige Inhalt benötigt wird):**```json
{
"name": "firecrawl_scrape",
"arguments": {
"url": "https://example.com/article",
"formats": ["markdown"],
"onlyMainContent": true
}
}
Anwendungsbeispiel (Markenformat - Markenidentität extrahieren):```json { "name": "firecrawl_scrape", "arguments": { "url": "https://example.com", "formats": ["branding"] } }
**Brandingformat:** 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`)
Kartiert eine Website, um alle indizierten URLs auf der Site 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 die spezifische URL kennen, die 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 zum Entdecken von URLs anstelle von map
**Prompt-Beispiel:**
> "Listen Sie alle URLs auf example.com auf."
**Anwendungsbeispiel:**```json
{
"name": "firecrawl_map",
"arguments": {
"url": "https://example.com"
}
}
Rückgabe:
firecrawl_search)Durchsucht das Web und extrahiert optional Inhalte aus Suchergebnissen.
Am besten geeignet für:
Nicht empfohlen für:
Häufige Fehler:
Verwendungsbeispiel:```json { "name": "firecrawl_search", "arguments": { "query": "latest AI research papers 2023", "limit": 5, "lang": "en", "country": "us", "scrapeOptions": { "formats": ["markdown"], "onlyMainContent": true, "redactPII": true } } }
**Rückgabe:**
- Array von Suchergebnissen (mit optionalem gescraptem Inhalt) sowie ein `id`-Feld. Übergebe diese `id` an `firecrawl_search_feedback`, nachdem du die Ergebnisse genutzt hast, um 1 Credit zurückzuerhalten (Suche kostet 2) und die Suchqualität zu verbessern.
**Prompt-Beispiel:**
> "Finde die neuesten Forschungspapiere 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.
**Rufe dies nach jeder Suche auf, die du tatsächlich nutzt** (oder die nicht geholfen hat). Schlechtes oder partielles Feedback mit `missingContent` ist genauso wertvoll wie gutes Feedback.
**Opt-Out:** Setze `FIRECRAWL_NO_SEARCH_FEEDBACK=1` (oder `FIRECRAWL_DISABLE_SEARCH_FEEDBACK=1`) in der Umgebung, wenn der MCP-Server gestartet wird. Das Tool `firecrawl_search_feedback` wird nicht registriert, sodass Agents es nicht aufrufen können. Team-Administratoren können Feedback auch serverseitig deaktivieren; in diesem Fall wird das Tool registriert, gibt aber immer `feedbackErrorCode: "TEAM_OPTED_OUT"` zurück.
**Wichtigstes Feld:** `missingContent`. Es ist ein Array von spezifischen Inhalten, die der Agent erwartet, aber nicht gefunden hat. Ein Eintrag pro fehlendem Thema – diese werden teamsübergreifend aggregiert und sagen uns, was als Nächstes indexiert werden soll.
**Tägliche Rückerstattungsobergrenze (pro Team, pro UTC-Tag, Standard 100 Credits).** Sobald die `creditsRefundedToday` eines Teams den `dailyRefundCap` erreicht, zeichnen weitere Einsendungen zwar weiterhin Feedback auf, erstatten aber keine Credits mehr. Die Antwort setzt `dailyCapReached: true`. Agents sollten die Nutzung dieses Tools für den Rest des UTC-Tages einstellen, wenn sie dieses Flag sehen.
**Anwendungsbeispiel:**```json
{
"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'"
}
}
Returns:
{ success, feedbackId, creditsRefunded, alreadySubmitted? } JSON.firecrawl_feedback)Sendet strukturiertes Feedback für einen abgeschlossenen v2-Endpoint-Job über /v2/feedback.
Verwenden Sie dies für Endpoint-Feedback zu scrape-, parse-, map- oder search-Jobs.
Für die Qualität von Suchergebnissen bevorzugen Sie speziell firecrawl_search_feedback, da es suchspezifische Anleitungen enthält.
Halten Sie das Feedback prägnant: Verwenden Sie Problemcodes, Tags, kurze Notizen, URLs, Seitenzahlen und kleine Metadatenobjekte. Fügen Sie keine rohen Scrape-/Parse-Outputs ein.
Opt-out: Setzen Sie FIRECRAWL_NO_ENDPOINT_FEEDBACK=1 (oder FIRECRAWL_DISABLE_ENDPOINT_FEEDBACK=1) in der Umgebung beim Starten des MCP-Servers. Das firecrawl_feedback-Tool wird nicht registriert, sodass Agenten es nicht aufrufen können.
Anwendungsbeispiel:```json { "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ückgabe:**
- `{ success, feedbackId, creditsRefunded, creditsRefundedToday?, dailyRefundCap?, dailyCapReached?, alreadySubmitted?, warning? }` JSON.
### 4. Crawl-Tool (`firecrawl_crawl`)
Startet einen Crawl-Job, fragt wiederholt ab, bis ein Endzustand erreicht ist, und gibt den endgültigen Crawl-Status/die endgültigen Crawl-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 (Scrape verwenden)
- Wenn Token-Limits ein Problem sind (Map + Scrape für engere Kontrolle verwenden)
- 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 eine engere Kontrolle.
**Häufige Fehler:**
- Zu hohes Setzen von limit oder maxDiscoveryDepth (verursacht Token-Überlauf)
- Crawl für eine einzelne Seite verwenden (stattdessen Scrape verwenden)
**Prompt-Beispiel:**
> „Holen Sie sich alle Blogbeiträge von den ersten beiden Ebenen von example.com/blog.“
**Anwendungsbeispiel:**```json
{
"name": "firecrawl_crawl",
"arguments": {
"url": "https://example.com/blog/*",
"maxDiscoveryDepth": 2,
"limit": 100,
"allowExternalLinks": false,
"deduplicateSimilarURLs": true
}
}
Rückgabe:
id, status, completed, total, creditsUsed, expiresAt, next und data.id mit firecrawl_check_crawl_status, wenn Sie den Auftrag später erneut überprüfen müssen.firecrawl_check_crawl_status)Überprüfen Sie den Status und die Ergebnisse eines vorhandenen Crawl-Auftrags anhand der ID.```json { "name": "firecrawl_check_crawl_status", "arguments": { "id": "550e8400-e29b-41d4-a716-446655440000" } }
**Returns:**
- Die Antwort enthält den Status des Crawl-Jobs:
### 6. Parse-Tool (`firecrawl_parse`)
Analysieren 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-Ablauf; direkte lokale Dateiaufrufe erfordern eine selbst gehostete `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 Browseraktionen wie Screenshots und Klicks.
**Gehosteter MCP-Ablauf:** 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-Auth oder keyless-Berechtigung. Im lokalen `npx firecrawl-mcp`-Modus erfordert das direkte Parsen von Dateien derzeit eine `FIRECRAWL_API_URL`, die auf eine selbst gehostete Firecrawl-API verweist; ein einfacher lokaler Server mit Cloud-API-Schlüssel allein kann keine Dateien lesen und über dieses Tool hochladen.
**Verwendungsbeispiel:**```json
{
"name": "firecrawl_parse",
"arguments": {
"filePath": "/absolute/path/to/document.pdf",
"formats": ["markdown"],
"parsers": ["pdf"],
"zeroDataRetention": true
}
}
Gibt zurück: Geparsten Dokumentinhalt oder Anweisungen zum Hosted Upload mit einem nextToolCall.
firecrawl_extract)Extrahiert strukturierte Informationen von Webseiten mithilfe von LLM-Funktionen. Unterstützt sowohl Cloud-KI als auch selbst gehostete LLM-Extraktion.
Am besten geeignet für:
Nicht empfohlen für:
Argumente:
urls: Array von URLs, aus denen Informationen extrahiert werden sollenprompt: Benutzerdefinierter Prompt für die LLM-ExtraktionsystemPrompt: System-Prompt zur Steuerung des LLMschema: JSON-Schema für die Extraktion strukturierter DatenallowExternalLinks: Extraktion von externen Links erlaubenenableWebSearch: Websuche für zusätzlichen Kontext aktivierenincludeSubdomains: Subdomains in die Extraktion einbeziehenBei Verwendung einer selbst gehosteten Instanz verwendet die Extraktion Ihr konfiguriertes LLM. Für die Cloud-API nutzt sie den verwalteten LLM-Dienst von Firecrawl.
Prompt-Beispiel:
"Extrahiere den Produktnamen, den Preis und die Beschreibung von diesen Produktseiten."
Anwendungsbeispiel:```json { "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 } }
**Rückgabe:**
- Extrahierte strukturierte Daten, wie durch Ihr Schema definiert```json
{
"content": [
{
"type": "text",
"text": {
"name": "Example Product",
"price": 99.99,
"description": "This is an example product description"
}
}
],
"isError": false
}
firecrawl_agent)Autonomer Web-Recherche-Agent. Dies ist eine separate KI-Agentenschicht, die unabhängig das Internet durchsucht, nach Informationen sucht, durch Seiten navigiert und strukturierte Daten basierend auf Ihrer Abfrage extrahiert.
Wie es funktioniert:
Der Agent führt Websuchen durch, folgt Links, liest Seiten und sammelt Daten autonom. Dies läuft asynchron – es gibt sofort eine Auftrags-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:
firecrawl_agent mit Ihrem Prompt/Schema auf → gibt eine Auftrags-ID zurückfirecrawl_agent_status mit der Auftrags-ID ab, um den Fortschritt zu prüfenAm besten geeignet für:
Nicht empfohlen für:
Argumente:
prompt: Natürlichsprachliche Beschreibung der gewünschten Daten (erforderlich, maximal 10.000 Zeichen)urls: Optionales Array von URLs, um den Agenten auf bestimmte Seiten zu fokussierenschema: Optionales JSON-Schema für strukturierte AusgabePrompt-Beispiel:
„Finden Sie die Gründer von Firecrawl und deren Hintergründe“
Verwendungsbeispiel (Agent starten, dann Ergebnisse abfragen):```json { "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 rufen Sie mit der zurückgegebenen Job-ID den Status mit `firecrawl_agent_status` ab.
**Verwendungsbeispiel (mit URLs - der Agent konzentriert sich auf bestimmte Seiten):**```json
{
"name": "firecrawl_agent",
"arguments": {
"urls": ["https://docs.firecrawl.dev", "https://firecrawl.dev/pricing"],
"prompt": "Compare the features and pricing information from these pages"
}
}
Rückgabe:
firecrawl_agent_status, um Ergebnisse abzufragen.firecrawl_agent_status)Überprüft den Status eines Agentenauftrags und ruft die Ergebnisse ab, wenn dieser abgeschlossen ist. Verwende dies, um nach dem Start eines Agenten die Ergebnisse abzufragen.
Abfragemuster: Agenten-Recherchen können bei komplexen Abfragen mehrere Minuten dauern. Frage diesen Endpunkt regelmäßig ab (z. B. alle 10-30 Sekunden), bis der Status "completed" oder "failed" ist.```json { "name": "firecrawl_agent_status", "arguments": { "id": "550e8400-e29b-41d4-a716-446655440000" } }
**Mögliche Status:**
- `processing`: Agent recherchiert noch – später nachsehen
- `completed`: Recherche abgeschlossen – Antwort enthält die extrahierten Daten
- `failed`: Ein Fehler ist aufgetreten
### 10. Interact Tool (`firecrawl_interact`)
Interagieren Sie mit einer neuen URL oder einer Seite, die bereits von `firecrawl_scrape` geöffnet wurde.
**Ideal für:** Klicken, Tippen, Navigieren und Extrahieren des Zustands aus dynamischen Seiten, ohne die veralteten Browser-Tools wiederherzustellen.
**Nutzungsoptionen:**
- Übergeben Sie `url`, um in einem MCP-Aufruf eine Seite zu scrapen und für die Interaktion zu öffnen.
- Übergeben Sie `scrapeId`, um mit einer vorhandenen gescrapten Seite zu interagieren.
- Übergeben Sie genau eine von `url` oder `scrapeId`, plus entweder `prompt` oder `code`.
**Nutzungsbeispiel:**```json
{
"name": "firecrawl_interact",
"arguments": {
"url": "https://example.com",
"prompt": "Click the pricing link and summarize the visible plans"
}
}
Returns: Interaktionsergebnis und, für den URL-Modus, die abgeleitete scrapeId für Nachverfolgung oder Bereinigung.
firecrawl_interact_stop)Stoppen Sie eine Interaktionssitzung für eine gescrapte Seite, wenn Sie mit der Interaktion fertig sind.```json { "name": "firecrawl_interact_stop", "arguments": { "scrapeId": "scrape-id-here" } }
### 12. Forschungswerkzeuge (`firecrawl_research_*`)
Durchsuchen und inspizieren Sie wissenschaftliche Arbeiten und GitHub-Repositories über die MCP-Forschungswerkzeuge.
**Verfügbare Forschungswerkzeuge:**
- `firecrawl_research_search_papers`: wissenschaftliche Arbeiten durchsuchen.
- `firecrawl_research_inspect_paper`: eine Arbeit inspizieren.
- `firecrawl_research_related_papers`: verwandte Arbeiten finden.
- `firecrawl_research_read_paper`: Inhalt einer Arbeit lesen.
- `firecrawl_research_search_github`: GitHub-Repositories durchsuchen.
**Am besten geeignet für:** Literaturrecherche, Arbeitssuche und Repository-Entdeckungs-Workflows, bei denen der Agent eine fokussierte Forschungsoberfläche anstelle eines allgemeinen Web Scrapings benötigt.
### 13. Monitor-Werkzeuge (`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:**
- Überwachung einer oder weniger Seiten im Zeitverlauf
- Benachrichtigung bei bedeutungsvollen Änderungen mithilfe eines in einfachem Englisch formulierten Ziels
- Verfolgung des Prüfverlaufs und seitenbezogener Unterschiede
**Empfohlenes Erstellungsmuster:**
Verwenden Sie `page` oder `pages` zusammen mit `goal`. Der MCP-Server erstellt den Monitor-Request mit einem 30-Minuten-Plan und die API aktiviert automatisch die Beurteilung bedeutungsvoller Änderungen.
Die Beurteilung bedeutungsvoller Änderungen läuft automatisch, wenn `goal` gesetzt ist. Seiten-Webhooks machen `isMeaningful` und `judgment` bei `monitor.page`-Ereignissen verfügbar.
Formulieren Sie Ziele als präzise 2-3-sätzige Monitoranweisungen. Geben Sie an, was einen Alarm auslösen soll, bewahren Sie den vom Benutzer angegebenen Umfang und nehmen Sie nur dann absichtsbezogene Ausschlüsse auf, wenn sie aus der Anfrage ersichtlich sind. Generisches Rauschen wie Leerzeichen, reine Formatierungsänderungen, Anfrage-IDs, Tracking-Parameter, generische Metadaten und nicht verwandte Seitenchrome werden bereits vom Beurteiler verarbeitet, wiederholen Sie dies also nicht in jedem Ziel. Wenn der Benutzer vage ist, halten Sie das Ziel breit; wenn er eine breite Überwachung oder 'jede Änderung' verlangt, bewahren Sie das. Wenn der Benutzer sagt, dass ihm etwas egal ist, nehmen Sie das explizit auf.```json
{
"name": "firecrawl_monitor_create",
"arguments": {
"page": "https://example.com/pricing",
"goal": "Alert when pricing, packaging, or launch messaging changes."
}
}
Mehrere Seiten mit Webhooks:```json { "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.```json
{
"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" }]
}
}
}
Weitere Monitor-Werkzeuge:
firecrawl_monitor_list: Monitore auflisten.firecrawl_monitor_get: einen Monitor abrufen.firecrawl_monitor_update: Felder aktualisieren, einschließlich goal, judgeEnabled, webhook und notification.firecrawl_monitor_run: einen Check jetzt auslösen.firecrawl_monitor_delete: einen Monitor löschen (zerstörerisch; nur aufrufen, wenn der Benutzer ihn entfernen möchte).firecrawl_monitor_checks: Checks auflisten, optional nach Status gefiltert.firecrawl_monitor_check: Ergebnisse auf Seitenebene abrufen, einschließlich diff, snapshot, judgment.meaningful und judgment.meaningfulChanges.Der Server enthält eine umfassende Protokollierung:
Beispiel-Protokollnachrichten:``` [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-Ratenbegrenzungsfehler, die an den MCP-Client weitergegeben werden
- Detaillierte Fehlermeldungen
- Netzwerkresilienz
Beispiel einer Fehlerantwort:```json
{
"content": [
{
"type": "text",
"text": "Error: Rate limit exceeded"
}
],
"isError": true
}
npm install
npm run build
npm test
### Mitwirken
1. Forken Sie das Repository
2. Erstellen Sie Ihren Feature-Branch
3. Tests ausführen: `npm test`
4. Reichen Sie einen Pull-Request ein
### Danke an die Mitwirkenden
Dank an [@vrknetha](https://github.com/vrknetha), [@cawstudios](https://caw.tech) für die erste Umsetzung!
Dank an MCP.so und Klavis AI für das Hosting sowie an [@gstarwd](https://github.com/gstarwd), [@xiangkaiz](https://github.com/xiangkaiz) und [@zihaolin96](https://github.com/zihaolin96) für die Integration unseres Servers.
## Lizenz
MIT-Lizenz – siehe LICENSE-Datei für Details