メインコンテンツへスキップ
Firecrawl を統合し、ウェブスクレイピング機能を提供する Model Context Protocol(MCP)サーバー実装です。MCP サーバーはオープンソースで、GitHub から入手できます。

機能

  • Webスクレイピング、クロール、ディスカバリ
  • 検索とコンテンツ抽出
  • 深層リサーチとバッチスクレイピング
  • クラウドおよびセルフホストに対応
  • ストリーミング対応のHTTPサポート

インストール

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

リモートホストのURL

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

npx での実行

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

手動インストール

npm install -g firecrawl-mcp

Cursor 上での実行

Firecrawl MCP サーバーを Cursor に追加する

手動インストール

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

Streamable HTTP モードでの実行

デフォルトの stdio トランスポートではなく、ローカル環境で Streamable HTTP トランスポートを使ってサーバーを実行するには、次のようにします:
env HTTP_STREAMABLE_SERVER=true FIRECRAWL_API_KEY=fc-YOUR_API_KEY npx -y firecrawl-mcp
次のURLを使用してください:http://localhost:3000/v2/mcp または https://mcp.firecrawl.dev/{FIRECRAWL_API_KEY}/v2/mcp

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

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

VS Code での実行

ワンクリックでインストールするには、以下のインストールボタンのいずれかをクリックしてください。 VS Code で NPX を使ってインストール VS Code Insiders で NPX を使ってインストール 手動でインストールするには、VS Code のユーザー設定 (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 Key",
      "password": true
    }
  ],
  "servers": {
    "firecrawl": {
      "command": "npx",
      "args": ["-y", "firecrawl-mcp"],
      "env": {
        "FIRECRAWL_API_KEY": "${input:apiKey}"
      }
    }
  }
}
注意: 一部のユーザーから、古いスキーマ形式で JSON を検証している VS Code の仕様が原因で、MCP サーバーを VS Code に追加する際に問題が発生するとの報告があります(microsoft/vscode#155379)。 この問題は Firecrawl を含む複数の MCP ツールに影響します。 回避策: MCP サーバーが正しく読み込まれるようにするため、VS Code の JSON 検証を無効化してください。 参考: directus/directus#25906 (comment) MCP サーバーは他の拡張機能経由で呼び出した場合は問題なく動作しますが、MCP サーバー一覧に直接登録しようとした場合にのみ、この問題が発生します。VS Code がスキーマ検証を更新し次第、その設定方法についてのガイダンスを追記する予定です。

Claude Desktop での実行

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

Claude Code での実行

Claude Code の CLI を使って Firecrawl MCP サーバーを追加します:
claude mcp add firecrawl -e FIRECRAWL_API_KEY=your-api-key -- npx -y firecrawl-mcp

Google Antigravity 上での実行

Google Antigravity では、Agent インターフェースから直接 MCP サーバーを設定できます。 Antigravity MCP インストール
  1. Editor または Agent Manager ビューで Agent サイドバーを開きます
  2. ”…”(More Actions)メニューをクリックし、MCP Servers を選択します
  3. View raw config を選択して、ローカルの mcp_config.json ファイルを開きます
  4. 以下の設定を追加します:
{
  "mcpServers": {
    "firecrawl": {
      "command": "npx",
      "args": ["-y", "firecrawl-mcp"],
      "env": {
        "FIRECRAWL_API_KEY": "YOUR_FIRECRAWL_API_KEY"
      }
    }
  }
}
  1. ファイルを保存し、Antigravity MCP インターフェースで Refresh をクリックして、新しいツールが表示されることを確認します。
YOUR_FIRECRAWL_API_KEY を、https://firecrawl.dev/app/api-keys から取得した API キーに置き換えてください。

n8n 上での実行

n8n で Firecrawl MCP サーバーに接続するには:
  1. https://firecrawl.dev/app/api-keys から Firecrawl APIキーを取得する
  2. n8n のワークフローで AI Agent ノードを追加する
  3. AI Agent の設定で、新しい Tool を追加する
  4. ツールタイプとして MCP Client Tool を選択する
  5. MCP サーバーのエンドポイントを入力する({YOUR_FIRECRAWL_API_KEY} を実際の APIキーに置き換える):
  https://mcp.firecrawl.dev/{あなたのFirecrawl APIキー}/v2/mcp
  1. Server TransportHTTP Streamable に設定します
  2. AuthenticationNone に設定します
  3. Tools to include では AllSelected、または All Except を選択できます。これにより Firecrawl のツール(scrape、crawl、map、search、extract など)が利用可能になります。
セルフホスト環境でデプロイする場合は、npx で MCP server を実行し、HTTP transport モードを有効にします:
env HTTP_STREAMABLE_SERVER=true \
    FIRECRAWL_API_KEY=fc-YOUR_API_KEY \
    FIRECRAWL_API_URL=YOUR_FIRECRAWL_INSTANCE \
    npx -y firecrawl-mcp
これによりサーバーが http://localhost:3000/v2/mcp で起動し、n8n のワークフロー内でエンドポイントとして利用できます。n8n では HTTP トランスポートが必要なため、環境変数 HTTP_STREAMABLE_SERVER=true を設定する必要があります。

設定

環境変数

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

4. Map Tool (firecrawl_map)

ウェブサイトをマッピングして、サイト上でインデックスされているすべてのURLを洗い出します。
{
  "name": "firecrawl_map",
  "arguments": {
    "url": "https://example.com",
    "search": "blog",
    "sitemap": "include",
    "includeSubdomains": false,
    "limit": 100,
    "ignoreQueryParameters": true
  }
}

Map Tool オプション:

  • url: マッピング対象となるウェブサイトのベース URL
  • search: URL をフィルタリングするための任意の検索語句
  • sitemap: サイトマップの利用方法を制御 - “include”、“skip”、“only” のいずれか
  • includeSubdomains: マッピング時にサブドメインを含めるかどうか
  • limit: 返す URL の最大件数
  • ignoreQueryParameters: マッピング時にクエリパラメータを無視するかどうか
最適な用途: 何をスクレイピングするか決める前にウェブサイト上の URL を探索する場合や、サイト内の特定セクションを見つける場合。 戻り値: サイト上で検出された URL の配列。 ウェブを検索し、必要に応じて検索結果から内容を抽出します。
{
  "name": "firecrawl_search",
  "arguments": {
    "query": "検索クエリ",
    "limit": 5,
    "lang": "en",
    "country": "us",
    "scrapeOptions": {
      "formats": ["markdown"],
      "onlyMainContent": true
    }
  }
}

6. Crawl Tool (firecrawl_crawl)

高度なオプションを指定して非同期クロールを開始します。
{
  "name": "firecrawl_crawl",
  "arguments": {
    "url": "https://example.com",
    "maxDepth": 2,
    "limit": 100,
    "allowExternalLinks": false,
    "deduplicateSimilarURLs": true
  }
}

7. クロールのステータスを確認 (firecrawl_check_crawl_status)

クロールジョブのステータスを確認します。
{
  "name": "firecrawl_check_crawl_status",
  "arguments": {
    "id": "550e8400-e29b-41d4-a716-446655440000"
  }
}
戻り値: クロールジョブのステータスおよび進捗状況(可能であれば結果も含む)。

8. Extract Tool (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
}

Extract Tool オプション:

  • urls: 情報を抽出する対象の URL 配列
  • prompt: LLM による抽出に使用するカスタムプロンプト
  • systemPrompt: LLM を制御するためのシステムプロンプト
  • schema: 構造化データ抽出用の JSON スキーマ
  • allowExternalLinks: 外部リンクからの抽出を許可するかどうか
  • enableWebSearch: 追加のコンテキストのためにウェブ検索を有効にするかどうか
  • includeSubdomains: 抽出対象にサブドメインを含めるかどうか
セルフホスト型インスタンスを使用する場合、抽出処理には構成済みの LLM が使用されます。クラウド API の場合は、Firecrawl のマネージド LLM サービスが使用されます。

ログシステム

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

エラーハンドリング

サーバーは堅牢なエラーハンドリング機能を提供します:
  • 一時的なエラーに対する自動リトライ
  • バックオフを伴うレート制限への対応
  • 詳細なエラーメッセージ
  • クレジット使用量に関する警告
  • ネットワーク障害への耐性
エラーレスポンスの例:
{
  "content": [
    {
      "type": "text",
      "text": "Error: Rate limit exceeded. Retrying in 2 seconds..."
    }
  ],
  "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 ファイルをご覧ください