mcp-server-firecrawl

by mendableai
MIT License
15,275
2,745
  • 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 サーバー

Web スクレイピング機能のためにFirecrawlと統合する Model Context Protocol (MCP) サーバー実装。

最初の実装にご協力いただいた@vrknetha@cawstudiosに深く感謝いたします。

特徴

  • スクレイピング、クロール、検索、抽出、詳細な調査、バッチスクレイピングのサポート
  • JSレンダリングによるWebスクレイピング
  • URLの検出とクロール
  • コンテンツ抽出によるウェブ検索
  • 指数バックオフによる自動再試行
    • レート制限を組み込んだ効率的なバッチ処理
  • クラウドAPIのクレジット使用状況監視
  • 包括的なログシステム
  • クラウドおよびセルフホスト型 Firecrawl インスタンスのサポート
  • モバイル/デスクトップビューポートのサポート
  • タグの包含/除外によるスマートなコンテンツフィルタリング
  • SSE サポート

MCP.so のプレイグラウンドまたはKlavis AIで MCP サーバーを試してみてください。

インストール

npxで実行

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

手動インストール

npm install -g firecrawl-mcp

カーソル上で実行

カーソルの設定 🖥️ 注: カーソルバージョン 0.45.6 以降が必要です。最新の設定手順については、MCP サーバーの設定に関する公式のカーソルドキュメントを参照してください:カーソル MCP サーバー設定ガイド

Cursor v0.45.6でFirecrawl MCPを設定するには

  1. カーソル設定を開く
  2. 機能 > MCPサーバーへ移動
  3. 「+新しいMCPサーバーを追加」をクリックします
  4. 以下を入力してください:
    • 名前: 「firecrawl-mcp」(またはお好みの名前)
    • タイプ:「コマンド」
    • コマンド: env FIRECRAWL_API_KEY=your-api-key npx -y firecrawl-mcp

Cursor v0.48.6でFirecrawl MCPを設定するには

  1. カーソル設定を開く
  2. 機能 > MCPサーバーへ移動
  3. 「+新しいグローバルMCPサーバーを追加」をクリックします
  4. 次のコードを入力してください:
    { "mcpServers": { "firecrawl-mcp": { "command": "npx", "args": ["-y", "firecrawl-mcp"], "env": { "FIRECRAWL_API_KEY": "YOUR-API-KEY" } } } }

Windows を使用していて問題が発生している場合は、 cmd /c "set FIRECRAWL_API_KEY=your-api-key && npx -y firecrawl-mcp"を試してください。

your-api-key Firecrawl APIキーに置き換えてください。まだお持ちでない場合は、アカウントを作成してhttps://www.firecrawl.dev/app/api-keysから取得できます。

追加後、MCPサーバーリストを更新して新しいツールを確認してください。Composer Agentは適切な場合にFirecrawl MCPを自動的に使用しますが、Webスクレイピングのニーズを明示的に指定することで、明示的にリクエストすることもできます。Command+L(Mac)でComposerにアクセスし、送信ボタンの横にある「Agent」を選択して、クエリを入力してください。

ウィンドサーフィンで走る

これを./codeium/windsurf/model_config.jsonに追加します:

{ "mcpServers": { "mcp-server-firecrawl": { "command": "npx", "args": ["-y", "firecrawl-mcp"], "env": { "FIRECRAWL_API_KEY": "YOUR_API_KEY" } } } }

SSEローカルモードで実行

デフォルトの stdio トランスポートの代わりに、Server-Sent Events (SSE) を使用してローカルでサーバーを実行するには:

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

次の URL を使用します: http://localhost:3000/sse

Smithery (レガシー) 経由でのインストール

Smithery経由で Claude Desktop 用の Firecrawl を自動的にインストールするには:

npx -y @smithery/cli install @mendableai/mcp-server-firecrawl --client claude

VS Codeで実行

ワンクリックでインストールするには、以下のいずれかのインストールボタンをクリックしてください...

手動でインストールする場合は、VS Code のユーザー設定 (JSON) ファイルに次の JSON ブロックを追加します。Ctrl Ctrl + Shift + Pを押してPreferences: Open User Settings (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}" } } } } }

オプションとして、ワークスペース内の.vscode/mcp.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}" } } } }

構成

環境変数

クラウドAPIに必須

  • FIRECRAWL_API_KEY : Firecrawl APIキー
    • クラウド API を使用する場合に必須 (デフォルト)
    • FIRECRAWL_API_URLでセルフホストインスタンスを使用する場合はオプション
  • FIRECRAWL_API_URL (オプション): セルフホストインスタンスのカスタム API エンドポイント
    • 例: https://firecrawl.your-domain.com
    • 指定しない場合はクラウド API が使用されます (API キーが必要です)

オプション構成

再試行構成
  • FIRECRAWL_RETRY_MAX_ATTEMPTS : 再試行の最大回数(デフォルト: 3)
  • FIRECRAWL_RETRY_INITIAL_DELAY : 最初の再試行までの初期遅延(ミリ秒)(デフォルト: 1000)
  • FIRECRAWL_RETRY_MAX_DELAY : 再試行間の最大遅延時間(ミリ秒)(デフォルト: 10000)
  • FIRECRAWL_RETRY_BACKOFF_FACTOR : 指数バックオフ乗数(デフォルト: 2)
クレジット使用状況の監視
  • FIRECRAWL_CREDIT_WARNING_THRESHOLD : クレジット使用量の警告しきい値(デフォルト: 1000)
  • FIRECRAWL_CREDIT_CRITICAL_THRESHOLD : クレジット使用量のクリティカルしきい値(デフォルト: 100)

設定例

カスタム再試行とクレジット監視を使用したクラウド API の使用の場合:

# 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

セルフホストインスタンスの場合:

# 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

Claude Desktopでの使用

これをclaude_desktop_config.jsonに追加します:

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

システム構成

サーバーには、環境変数で設定可能なパラメータがいくつか含まれています。設定されていない場合のデフォルト値は以下のとおりです。

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 }, };

これらの構成は以下を制御します。

  1. 再試行動作
    • レート制限により失敗したリクエストを自動的に再試行します
    • API の過負荷を回避するために指数バックオフを使用します
    • 例: デフォルト設定では、次の場合に再試行が試行されます。
      • 1回目の再試行: 1秒の遅延
      • 2回目の再試行: 2秒遅延
      • 3 回目の再試行: 4 秒の遅延 (maxDelay で上限)
  2. クレジット使用状況の監視
    • クラウド API の使用における API クレジットの消費を追跡します
    • 指定されたしきい値で警告を発する
    • 予期せぬサービス中断を防ぐのに役立ちます
    • 例: デフォルト設定の場合:
      • 残り1000クレジットの警告
      • 残り100クレジットで重大な警告

レート制限とバッチ処理

サーバーは、Firecrawl に組み込まれたレート制限機能とバッチ処理機能を活用します。

  • 指数バックオフによる自動レート制限処理
  • バッチ操作のための効率的な並列処理
  • スマートなリクエストキューイングとスロットリング
  • 一時的なエラーの自動再試行

利用可能なツール

1. スクレイプツール( firecrawl_scrape

高度なオプションを使用して、単一の URL からコンテンツをスクレイピングします。

{ "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. バッチスクレイプツール( firecrawl_batch_scrape

組み込みのレート制限と並列処理により、複数の URL を効率的にスクレイピングします。

{ "name": "firecrawl_batch_scrape", "arguments": { "urls": ["https://example1.com", "https://example2.com"], "options": { "formats": ["markdown"], "onlyMainContent": true } } }

応答にはステータス チェックの操作 ID が含まれます。

{ "content": [ { "type": "text", "text": "Batch operation queued with ID: batch_1. Use firecrawl_check_batch_status to check progress." } ], "isError": false }

3. バッチステータスを確認する( firecrawl_check_batch_status

バッチ操作のステータスを確認します。

{ "name": "firecrawl_check_batch_status", "arguments": { "id": "batch_1" } }

Web を検索し、オプションで検索結果からコンテンツを抽出します。

{ "name": "firecrawl_search", "arguments": { "query": "your search query", "limit": 5, "lang": "en", "country": "us", "scrapeOptions": { "formats": ["markdown"], "onlyMainContent": true } } }

5. クロールツール( firecrawl_crawl

高度なオプションを使用して非同期クロールを開始します。

{ "name": "firecrawl_crawl", "arguments": { "url": "https://example.com", "maxDepth": 2, "limit": 100, "allowExternalLinks": false, "deduplicateSimilarURLs": true } }

6. 抽出ツール( firecrawl_extract

LLM機能を使用してWebページから構造化情報を抽出します。クラウドAIとセルフホスト型LLM抽出の両方をサポートします。

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

応答例:

{ "content": [ { "type": "text", "text": { "name": "Example Product", "price": 99.99, "description": "This is an example product description" } } ], "isError": false }

抽出ツールのオプション:

  • urls : 情報を抽出するURLの配列
  • prompt : LLM抽出のカスタムプロンプト
  • systemPrompt : LLMをガイドするシステムプロンプト
  • schema : 構造化データ抽出用のJSONスキーマ
  • allowExternalLinks : 外部リンクからの抽出を許可する
  • enableWebSearch : 追加のコンテキストのWeb検索を有効にする
  • includeSubdomains : 抽出にサブドメインを含める

セルフホストインスタンスを使用する場合、抽出には設定されたLLMが使用されます。クラウドAPIの場合は、FirecrawlのマネージドLLMサービスが使用されます。

7. ディープリサーチツール(firecrawl_deep_research)

インテリジェントなクロール、検索、LLM 分析を使用して、クエリに関するディープ ウェブ リサーチを実行します。

{ "name": "firecrawl_deep_research", "arguments": { "query": "how does carbon capture technology work?", "maxDepth": 3, "timeLimit": 120, "maxUrls": 50 } }

引数:

  • query (文字列、必須): 調査する研究の質問またはトピック。
  • maxDepth (数値、オプション): クロール/検索の最大再帰深度 (デフォルト: 3)。
  • timeLimit (数値、オプション): 調査セッションの時間制限 (秒) (デフォルト: 120)。
  • maxUrls (数値、オプション): 分析する URL の最大数 (デフォルト: 50)。

戻り値:

  • 研究に基づいて LLM によって生成された最終分析。(data.finalAnalysis)
  • 研究プロセスで使用される構造化されたアクティビティとソースも含まれる場合があります。

8. LLMs.txt 生成ツール (firecrawl_generate_llmstxt)

指定されたドメインに対して、標準化されたllms.txt(およびオプションでllms-full.txt)ファイルを生成します。このファイルは、大規模言語モデルがサイトとどのように連携するかを定義します。

{ "name": "firecrawl_generate_llmstxt", "arguments": { "url": "https://example.com", "maxUrls": 20, "showFullText": true } }

引数:

  • url (文字列、必須): 分析する Web サイトの基本 URL。
  • maxUrls (数値、オプション): 含める URL の最大数 (デフォルト: 10)。
  • showFullText (ブール値、オプション): 応答に llms-full.txt の内容を含めるかどうか。

戻り値:

  • 生成された llms.txt ファイルの内容とオプションで llms-full.txt (data.llmstxt および/または data.llmsfulltxt)

ログシステム

サーバーには包括的なログ機能が含まれています:

  • 運用状況と進捗
  • パフォーマンスメトリック
  • クレジット使用状況の監視
  • レート制限の追跡
  • エラー条件

ログメッセージの例:

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

エラー処理

サーバーは堅牢なエラー処理を提供します。

  • 一時的なエラーの自動再試行
  • バックオフによるレート制限の処理
  • 詳細なエラーメッセージ
  • クレジット使用に関する警告
  • ネットワークの回復力

エラー応答の例:

{ "content": [ { "type": "text", "text": "Error: Rate limit exceeded. Retrying in 2 seconds..." } ], "isError": true }

発達

# Install dependencies npm install # Build npm run build # Run tests npm test

貢献

  1. リポジトリをフォークする
  2. 機能ブランチを作成する
  3. テストを実行: npm test
  4. プルリクエストを送信する

貢献者の方々に感謝

初期実装にご協力いただいた@vrknetha@cawstudiosに感謝します。

ホスティングを提供してくれた MCP.so と Klavis AI、そしてサーバーを統合してくれた@gstarwd@xiangkaiz@zihaolin96に感謝します。

ライセンス

MITライセンス - 詳細はLICENSEファイルを参照

ID: 57mideuljt