Firecrawl MCP Server

by mcma123
Verified
MIT License
8,264
  • Apple
  • Linux

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Integrations

  • Enables integration with Windsurf (Codeium's code assistant) by adding the FireCrawl MCP server to the model configuration for web scraping capabilities.

  • Supports content extraction in Markdown format from web pages, allowing for structured and readable representation of scraped content.

Firecrawl MCP サーバー

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

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

特徴

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

インストール

npxで実行

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

手動インストール

npm install -g firecrawl-mcp

カーソル上で実行

カーソルの設定 🖥️ 注: カーソルバージョン 0.45.6 以上が必要です

Cursor で FireCrawl MCP を構成するには:

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

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

your-api-key FireCrawl API キーに置き換えます。

追加後、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_HERE" } } } }

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

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

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

構成

環境変数

クラウド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サービスが使用されます。

ログシステム

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

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

ログメッセージの例:

[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. プルリクエストを送信する

ライセンス

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

ID: 0tq327xp5t