Firecrawl MCP サーバー
Web スクレイピング機能のためにFirecrawlと統合する Model Context Protocol (MCP) サーバー実装。
最初の実装にご協力いただいた@vrknetha 、 @cawstudiosに深く感謝いたします。
特徴
スクレイピング、クロール、検索、抽出、詳細な調査、バッチスクレイピングのサポート
JSレンダリングによるWebスクレイピング
URLの検出とクロール
コンテンツ抽出によるウェブ検索
指数バックオフによる自動再試行
レート制限を組み込んだ効率的なバッチ処理
クラウドAPIのクレジット使用状況監視
包括的なログシステム
クラウドおよびセルフホスト型 Firecrawl インスタンスのサポート
モバイル/デスクトップビューポートのサポート
タグの包含/除外によるスマートなコンテンツフィルタリング
SSE サポート
MCP.so のプレイグラウンドまたはKlavis AIで MCP サーバーを試してみてください。
Related MCP server: WebSearch
インストール
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を設定するには
カーソル設定を開く
機能 > MCPサーバーへ移動
「+新しいMCPサーバーを追加」をクリックします
以下を入力してください:
名前: 「firecrawl-mcp」(またはお好みの名前)
タイプ:「コマンド」
コマンド:
env FIRECRAWL_API_KEY=your-api-key npx -y firecrawl-mcp
Cursor v0.48.6でFirecrawl MCPを設定するには
カーソル設定を開く
機能 > MCPサーバーへ移動
「+新しいグローバルMCPサーバーを追加」をクリックします
次のコードを入力してください:
{ "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 claudeVS 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 retriesClaude 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
},
};これらの構成は以下を制御します。
再試行動作
レート制限により失敗したリクエストを自動的に再試行します
API の過負荷を回避するために指数バックオフを使用します
例: デフォルト設定では、次の場合に再試行が試行されます。
1回目の再試行: 1秒の遅延
2回目の再試行: 2秒遅延
3 回目の再試行: 4 秒の遅延 (maxDelay で上限)
クレジット使用状況の監視
クラウド 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"
}
}4. 検索ツール( firecrawl_search )
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貢献
リポジトリをフォークする
機能ブランチを作成する
テストを実行:
npm testプルリクエストを送信する
貢献者の方々に感謝
初期実装にご協力いただいた@vrknetha 、 @cawstudiosに感謝します。
ホスティングを提供してくれた MCP.so と Klavis AI、そしてサーバーを統合してくれた@gstarwd 、 @xiangkaiz 、 @zihaolin96に感謝します。
ライセンス
MITライセンス - 詳細はLICENSEファイルを参照