Firecrawl を統合し、Webスクレイピング機能を提供する Model Context Protocol(MCP)サーバー実装です。私たちの MCP サーバーはオープンソースで、GitHub で公開しています。

機能

  • ウェブスクレイピング、クロール、ディスカバリー
  • 検索とコンテンツ抽出
  • 深層調査とバッチスクレイピング
  • クラウドおよびセルフホストに対応
  • SSE(サーバー送信イベント)に対応

インストール

リモートのホストURLを使用するか、サーバーをローカルで実行します。APIキーは https://firecrawl.dev/app/api-keys から取得してください。

リモートホストのURL

https://mcp.firecrawl.dev/{FIRECRAWL_API_KEY}/v2/sse

npxで実行する

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

手動でインストール

npm install -g firecrawl-mcp
MCP.so のプレイグラウンドで Firecrawl の MCP Server を試すか、Klavis AIでお試しください。

Cursor で実行する

Cursor に Firecrawl MCP サーバーを追加

手動インストール

Cursor の設定 🖥️ 注意: Cursor バージョン 0.45.6 以上が必要です 最新の設定手順は、MCP サーバーの構成に関する Cursor 公式ドキュメントをご参照ください: Cursor MCP Server Configuration Guide Cursor v0.48.6 で Firecrawl MCP を構成するには
  1. Cursor Settings を開く
  2. Features > MCP Servers に移動
  3. 「+ Add new global MCP server」をクリック
  4. 次のコードを入力:
    {
      "mcpServers": {
        "firecrawl-mcp": {
          "command": "npx",
          "args": ["-y", "firecrawl-mcp"],
          "env": {
            "FIRECRAWL_API_KEY": "YOUR-API-KEY"
          }
        }
      }
    }
    
Cursor v0.45.6 で Firecrawl MCP を構成するには
  1. Cursor Settings を開く
  2. Features > MCP Servers に移動
  3. 「+ Add New MCP Server」をクリック
  4. 次を入力:
    • Name: “firecrawl-mcp”(任意の名称でも可)
    • Type: “command”
    • Command: 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 キーに置き換えてください。まだお持ちでない場合はアカウントを作成し、https://www.firecrawl.dev/app/api-keys から取得できます。 追加後、MCP サーバー一覧を更新して新しいツールを確認してください。Composer Agent は適宜 Firecrawl MCP を自動的に使用しますが、ウェブスクレイピングの要件を記述することで明示的にリクエストすることも可能です。Command+L(Mac)で Composer を開き、送信ボタン横の「Agent」を選択してクエリを入力します。

Windsurf での実行

次を ./codeium/windsurf/model_config.json に追加します:
{
  "mcpServers": {
    "mcp-server-firecrawl": {
      "command": "npx",
      "args": ["-y", "firecrawl-mcp"],
      "env": {
        "FIRECRAWL_API_KEY": "YOUR_API_KEY"
      }
    }
  }
}

SSEモードでの実行

デフォルトのstdioトランスポートではなく、ローカルでSSE(サーバー送信イベント)を使ってサーバーを実行するには、次の手順に従います。
env SSE_LOCAL=true FIRECRAWL_API_KEY=fc-YOUR_API_KEY npx -y firecrawl-mcp
次のURLを使用します: http://localhost:3000/v2/sse または https://mcp.firecrawl.dev/{FIRECRAWL_API_KEY}/v2/sse

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

Smithery を使って Claude Desktop 向けに Firecrawl を自動的にインストールするには:
npx -y @smithery/cli install @mendableai/mcp-server-firecrawl --client claude

VS Code での実行

ワンクリックでインストールするには、以下のインストールボタンのいずれかをクリックしてください。 Install with NPX in VS Code Install with NPX in VS Code Insiders 手動でインストールする場合は、VS Code の「User Settings (JSON)」ファイルに以下の JSON ブロックを追加してください。Ctrl + Shift + P を押して「Preferences: Open User Settings (JSON)」と入力すると開けます。
{
  "mcp": {
    "inputs": [
      {
        "type": "promptString",
        "id": "apiKey",
        "description": "Firecrawl API キー"
        "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 キー"
      "password": true
    }
  ],
  "servers": {
    "firecrawl": {
      "command": "npx",
      "args": ["-y", "firecrawl-mcp"],
      "env": {
        "FIRECRAWL_API_KEY": "${input:apiKey}"
      }
    }
  }
}

Claude Desktop での実行

Claude の設定ファイルに次を追加してください:
{
  "mcpServers": {
    "firecrawl": {
      "url": "https://mcp.firecrawl.dev/{YOUR_API_KEY}/v2/sse"
    }
  }
}

Claude Code での実行

Claude Code CLI を使って、Firecrawl の Model Context Protocol(MCP)サーバーを追加します。
claude mcp add firecrawl -e FIRECRAWL_API_KEY=your-api-key -- npx -y firecrawl-mcp

構成

環境変数

Cloud APIで必須

  • FIRECRAWL_API_KEY: Firecrawl のAPIキー
    • Cloud API(デフォルト)を使用する場合に必須
    • FIRECRAWL_API_URL を指定したセルフホスト環境では任意
  • FIRECRAWL_API_URL(任意): セルフホスト環境向けのカスタムAPIエンドポイント
    • 例: https://firecrawl.your-domain.com
    • 指定しない場合は Cloud 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 の利用例:
# クラウド API 用に必須
export FIRECRAWL_API_KEY=your-api-key

# 任意のリトライ設定
export FIRECRAWL_RETRY_MAX_ATTEMPTS=5        # 最大リトライ回数を増やす
export FIRECRAWL_RETRY_INITIAL_DELAY=2000    # 初期遅延は 2 秒
export FIRECRAWL_RETRY_MAX_DELAY=30000       # 最大遅延は 30 秒
export FIRECRAWL_RETRY_BACKOFF_FACTOR=3      # より強めのバックオフ

# 任意のクレジット監視
export FIRECRAWL_CREDIT_WARNING_THRESHOLD=2000    # 2000 クレジットで警告
export FIRECRAWL_CREDIT_CRITICAL_THRESHOLD=500    # 500 クレジットで重大アラート
セルフホスト環境の場合:
# 自前ホスティングで必須
export FIRECRAWL_API_URL=https://firecrawl.your-domain.com

# 自前ホスティング向けの任意の認証
export FIRECRAWL_API_KEY=your-api-key  # インスタンスで認証が必要な場合

# リトライ設定のカスタマイズ
export FIRECRAWL_RETRY_MAX_ATTEMPTS=10
export FIRECRAWL_RETRY_INITIAL_DELAY=500     # より短い間隔からリトライ開始

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, // レート制限リクエストの再試行回数
    initialDelay: 1000, // 最初の再試行までの初期待機時間(ミリ秒)
    maxDelay: 10000, // 再試行間の最大待機時間(ミリ秒)
    backoffFactor: 2, // 指数バックオフの倍率
  },
  credit: {
    warningThreshold: 1000, // クレジット使用量がこの閾値に達したら警告
    criticalThreshold: 100, // クレジット使用量がこの閾値に達したら重大アラート
  },
};
これらの設定は次の項目を制御します:
  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": "ID: batch_1 のバッチ処理がキューに登録されました。進行状況は firecrawl_check_batch_status で確認してください。"
    }
  ],
  "isError": false
}

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

バッチ処理のステータスを確認します。
{
  "name": "firecrawl_check_batch_status",
  "arguments": {
    "id": "batch_1"
  }
}
ウェブを検索し、必要に応じて検索結果からコンテンツを抽出します。
{
  "name": "firecrawl_search",
  "arguments": {
    "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の機能を使ってウェブページから構造化データを抽出します。クラウドAIとセルフホスト型LLMのどちらの抽出にも対応しています。
{
  "name": "firecrawl_extract",
  "arguments": {
    "urls": ["https://example.com/page1", "https://example.com/page2"],
    "prompt": "製品名、価格、説明を含む製品情報を抽出してください",
    "systemPrompt": "あなたは製品情報を抽出する有用なアシスタントです",
    "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": "サンプル商品",
        "price": 99.99,
        "description": "これはサンプル商品の説明です"
      }
    }
  ],
  "isError": false
}

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

  • urls: 情報を抽出するURLの配列
  • prompt: LLMによる抽出用のカスタムプロンプト
  • systemPrompt: LLMを誘導するシステムプロンプト
  • schema: 構造化データ抽出用のJSONスキーマ
  • allowExternalLinks: 外部リンクからの抽出を許可する
  • enableWebSearch: 追加のコンテキスト取得のためにウェブ検索を有効にする
  • includeSubdomains: 抽出対象にサブドメインを含める
セルフホスト環境では、設定したLLMが使用されます。クラウドAPIでは、FirecrawlのマネージドLLMサービスが使用されます。

7. Deep Research Tool (firecrawl_deep_research)

インテリジェントなクロール、検索、LLM解析を用いて、クエリに対する深度のあるウェブリサーチを行います。
{
  "name": "firecrawl_deep_research",
  "arguments": {
    "query": "二酸化炭素回収技術はどのように機能するのですか?",
    "maxDepth": 3,
    "timeLimit": 120,
    "maxUrls": 50
  }
}
引数:
  • query(string, 必須):調査する研究課題またはトピック。
  • maxDepth(number, 任意):クロール/検索の最大再帰深度(デフォルト: 3)。
  • timeLimit(number, 任意):調査セッションの制限時間(秒)(デフォルト: 120)。
  • maxUrls(number, 任意):分析する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(string、必須):解析対象サイトのベースURL。
  • maxUrls(number、任意):含めるURLの最大数(既定値: 10)。
  • showFullText(boolean、任意):レスポンスに llms-full.txt の内容を含めるかどうか。
戻り値:
  • 生成された llms.txt の内容と、必要に応じて llms-full.txt(data.llmstxt および/または data.llmsfulltxt)

ログシステム

サーバーには包括的なログ機能があります:
  • 操作のステータスと進捗
  • パフォーマンス指標
  • クレジット使用状況の監視
  • レート制限のトラッキング
  • エラー状況
ログメッセージの例:
[INFO] Firecrawl MCP サーバーが正常に初期化されました
[INFO] URL のスクレイピングを開始: https://example.com
[INFO] バッチ処理をキューに追加しました(ID: batch_1)
[WARNING] クレジット使用量が警告閾値に達しました
[ERROR] レート制限を超過しました。2秒後に再試行します…

エラーハンドリング

サーバーは堅牢なエラーハンドリングを提供します:
  • 一時的なエラーの自動リトライ
  • バックオフを伴うレート制限対応
  • 詳細なエラーメッセージ
  • クレジット消費量の警告
  • ネットワーク耐障害性
エラーレスポンスの例:
{
  "content": [
    {
      "type": "text",
      "text": "エラー: レート制限を超えました。2秒後に再試行します..."
    }
  ],
  "isError": true
}

開発

# 依存関係をインストール
npm install

# ビルド
npm run build

# テストを実行
npm test

コントリビューション

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

貢献者への感謝

初期実装にご尽力いただいた @vrknetha@cawstudios に感謝します。 ホスティングしていただいた MCP.so と Klavis AI、ならびに当社サーバーの統合にご協力いただいた @gstarwd@xiangkaiz@zihaolin96 に感謝します。

ライセンス

MIT ライセンス — 詳細は LICENSE ファイルをご覧ください