Firecrawl MCP Server について
Firecrawl MCP Serverは、Firecrawlのウェブ検索、コンテンツ抽出、ブラウザー操作をMCP対応クライアントに提供します。ライブウェブの情報をMarkdownや構造化データとして扱うエージェントやアプリ向けで、マネージド運用とセルフホストに対応します。
主な機能
- 01ウェブや専門インデックスの検索
- 02URLをMarkdownまたはJSONに変換
- 03PDFやドキュメントの解析
- 04サイトのクロールやURLの検出
- 05ブラウザーでの動的ページ操作
- 06ページ変更の監視
活用シーン
- 01複数のウェブソースを横断した調査
- 02既知のURLからの構造化データ抽出
- 03サイト内の複数ページのコンテンツ収集
- 04ページ更新の定期確認
MCP 対応
MCPサーバーは、Firecrawlの検索、スクレイピング、クロール、解析、監視、ブラウザー操作をMCPクライアント向けのツールとして公開します。ホスト型エンドポイントの利用と、ローカル実行またはセルフホストが可能です。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp.firecrawl.dev/v2/mcpclaude mcp add --transport http firecrawl-mcp-server-firecrawl https://mcp.firecrawl.dev/v2/mcp{"mcpServers":{"firecrawl-mcp-server-firecrawl":{"type":"http","url":"https://mcp.firecrawl.dev/v2/mcp"}}}Cursor で開く{"servers":{"firecrawl-mcp-server-firecrawl":{"type":"http","url":"https://mcp.firecrawl.dev/v2/mcp"}}}VS Code で開く{"mcpServers":{"firecrawl-mcp-server-firecrawl":{"type":"http","url":"https://mcp.firecrawl.dev/v2/mcp"}}}{"mcpServers":{"firecrawl-mcp-server-firecrawl":{"serverUrl":"https://mcp.firecrawl.dev/v2/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
https://mcp.firecrawl.dev/v2/mcp認証が必要ツール
3| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| url | string | いいえ | |
| proxy | enum | いいえ | basic | stealth | enhanced | auto |
| maxAge | number | いいえ | |
| mobile | boolean | いいえ | |
| formats | array | いいえ | |
| parsers | array | いいえ | |
| profile | object | いいえ | 保存済みのブラウザープロファイルを読み込みますが、変更は保存しません。 |
| profile.name | string | はい | |
| timeout | integer | いいえ | 実行タイムアウト(ミリ秒)。 |
| waitFor | number | いいえ | |
| location | object | いいえ | |
| location.country | string | いいえ | |
| location.languages | array | いいえ | |
| lockdown | boolean | いいえ | |
| objective | string | いいえ | この呼び出しにおけるユーザーの根本的な目標、つまり URL やクエリの言い換えではなく、最終的に達成しようとしていることを 1 文で示します。関連する呼び出しでも同じ内容を使用します。機密情報は含めないでください。 |
| redactPII | boolean | いいえ | |
| requestId | string | いいえ | 1 つの Alexandria 実行ペイロードに紐づく冪等性キーです。省略すると生成され、結果とともに返されます。 |
| alexandria | any | いいえ | カタログに登録された Alexandria の機能呼び出しです。url とは同時に指定できません。{provider, capability, options} オブジェクト 1 つ、または 1~10 個のオブジェクトの配列を指定します。契約は firecrawl_search または firecrawl_find_tools で確認できます。各呼び出しに version を指定すると公開済みワークフローのバージョンを固定できます。省略時は最新バージョンが使われます。alexandria と併用できるのは requestId と timeout のみです。選択した契約には必須入力と requiresOneOf グループ(各グループで少なくとも 1 つのメンバーが必要)が示されます。また、example.request/example.response や response.key(レコードと異なる場合があります)が含まれることもあります。ページネーションが宣言されている場合、そのフィールドが同じフィルターを使ったページングを制御します。カタログの next はプロバイダーのページネーションとは別です。各機能の結果は data.alexandria に返され、data、records、または code を含むエラーとなります。外側の応答が成功しても、個々の機能が失敗する場合があります。Alexandria が有効なチームの API キーが必要です。利用規約への同意が必要なプロバイダーもあり、リクエストがブロックされると該当する要件が返されます。 |
| pdfOptions | object | いいえ | |
| pdfOptions.maxPages | integer | いいえ | |
| toolDetail | enum | いいえ | URL モードのみ:ドメイン検出の詳細です。デフォルトは summary、compact は provider/capability/description、full は契約を返します。alexandria と併用すると無視されます。compact | summary | full |
| domainTools | boolean | いいえ | URL モードのみ:ページのドメインに一致する Alexandria ツールを、返されるドキュメントの tools に含めます。alexandria と併用すると無視されます。 |
| excludeTags | array | いいえ | |
| includeTags | array | いいえ | |
| jsonOptions | object | いいえ | |
| jsonOptions.prompt | string | いいえ | |
| jsonOptions.schema | object | いいえ | |
| queryOptions | object | いいえ | |
| queryOptions.mode | enum | いいえ | directQuote | freeform |
| queryOptions.prompt | string | はい | |
| storeInCache | boolean | いいえ | |
| onlyMainContent | boolean | いいえ | |
| screenshotOptions | object | いいえ | |
| screenshotOptions.quality | number | いいえ | |
| screenshotOptions.fullPage | boolean | いいえ | |
| screenshotOptions.viewport | object | いいえ | |
| screenshotOptions.viewport.width | number | はい | |
| screenshotOptions.viewport.height | number | はい | |
| zeroDataRetention | boolean | いいえ | |
| removeBase64Images | boolean | いいえ | |
| skipTlsVerification | boolean | いいえ |
詳細
Firecrawl MCP Server
AI エージェント向けのコンテキスト API である Firecrawl を、MCP 互換クライアントから利用できるようにする Model Context Protocol(MCP)サーバーです。ウェブを検索、スクレイピングして操作し、整形済みの Markdown または構造化データを取得できます。
初期実装を手がけた @vrknetha と @knacklabs に心より感謝します!
機能
- ウェブを検索し、必要に応じて各検索結果のページ全文も取得
- 開発者向けソース(GitHub のイシュー、マージ済みプルリクエスト、README、ドキュメント)、米国政府の情報源、科学論文(PubMed、bioRxiv、medRxiv、arXiv)のインデックスを検索
- 任意の URL を整形済み Markdown または構造化 JSON にスクレイピング
- PDF やドキュメントを解析
- サイトをクロールして多数のページからコンテンツを取得、またはサイトマップを作成して URL を発見
- 実際のブラウザーでページを操作:クリック、入力、フォーム入力、動的ページの移動
- 複数のソースを対象に調査し、構造化データを返す Agent ジョブを実行
- ページを監視し、コンテンツが変更されたときに通知
- Firecrawl クレジットの現在および過去の使用状況を確認
- 自動リトライとレート制限
- クラウドおよびセルフホストに対応
- SSE に対応
MCP.so のプレイグラウンドまたは Klavis AIで、当社の MCP Serverをお試しください。
このサーバーを使う場面
- 既知の URL があり、そのコンテンツを Markdown、または指定したスキーマに一致する JSON として取得する場合は、
firecrawl_scrapeを使います。 - コンテンツを取得せずにサイト上の URL を発見する場合は、
firecrawl_mapを使います。 - サイト内の多数のページからコンテンツを取得する場合は、
firecrawl_crawlを使います。対象範囲を制限するには、limit、includePaths/excludePaths、またはmaxDiscoveryDepthを設定します。 - URL ではなくクエリから検索を始め、順位付けされたウェブ検索結果を取得する場合は、
firecrawl_searchを使います。検索結果には抜粋が含まれます。必要な URL に対してfirecrawl_scrapeを使うと、ページ全文を取得できます。scrapeOptionsを使うと、同じ呼び出しで各検索結果のページをすべて取得し、各ページがスクレイピングとして課金されます。そのため、少数の検索結果の全文が必要な場合に限って使ってください。検索専用エンドポイントではコンテンツを取得しません。 - ページを読み取る前にクリック、入力、移動などの操作が必要な場合は、
firecrawl_interactを使います。新しいページにはurlを、すでにスクレイピングしたページで操作を続けるにはscrapeIdを渡します。 - 同じページを繰り返しスケジュールに従って確認し、差分や変更アラートを取得する場合は、一度だけ取得するのではなく
firecrawl_monitor_*ツールを使います。 - 残りのクレジットや、月別・日別のクレジット使用状況を確認する場合は、必要に応じてエンドポイント別または API キー別に内訳を分けて、
firecrawl_credit_usageを使います。 - 独自のリトライや終了ロジックを用いて、複数の手順にわたりブラウザーセッションを開いたままにする必要がある場合は、別の方法を検討してください。各
firecrawl_interact呼び出しは、1 回のpromptまたはcodeのターンを完了してから制御を返します。scrapeIdを介して呼び出し間でセッションを維持でき、firecrawl_interact_stopで終了できますが、1 回の呼び出しの中でクライアント側から対話的にステップごとに操作することはできません。
このサーバーは、デフォルト設定でフルプロファイルを登録した場合(フィードバックツールを含み、ローカルキーなしモードではない場合)、27 個のツールを登録します。FIRECRAWL_NO_SEARCH_FEEDBACK=1 および/または FIRECRAWL_NO_ENDPOINT_FEEDBACK=1 を設定すると、対応するフィードバックツールが削除され、ツール数が減ります。ローカルキーなしで起動した場合も同様です。ツール数に上限があるクライアントの場合、ホスト型のキー不要エンドポイント(API キー不要の https://mcp.firecrawl.dev/v2/mcp)が公開するツールは 3 個(firecrawl_scrape、firecrawl_search、firecrawl_parse)のみです。また、専用の検索専用エンドポイント(https://mcp.firecrawl.dev/v2/mcp-search)は、固定された 9 個のツール(検索、開発者向け検索、政府関連検索、研究検索に加え、Alexandria のカタログ検索と実行)を公開します。
インストール
ホステッド MCP(キー不要の無料プラン)
セットアップせずに、ホステッドリモートサーバーに接続します。
https://mcp.firecrawl.dev/v2/mcp
キー不要の無料プランでは、scrape、search、parse は API キーなしで動作します(レート制限あり)。crawl、map、agent などの他のツールには、引き続きキーが必要です。
ユーザーがサインアップできる場合は、OAuth または API キーを使用してください。これにより、すべてのツールを利用できるようになり、上限も引き上げられます。
対話型のアカウント接続を行うには、このサーバー URL を使用するよう MCP クライアントを設定します。これは MCP エンドポイントであり、ブラウザのページではありません。クライアントのアカウント接続フローを使用し、再接続時に Firecrawl サーバーの項目を重複して追加しないでください。
https://mcp.firecrawl.dev/v2/mcp-oauth
API キーを使って接続する場合(たとえば、無人で実行するインテグレーションの場合)、サーバー URL は次のままにします。
https://mcp.firecrawl.dev/v2/mcp
次に、クライアントのセキュアヘッダーまたはシークレット設定を、以下のように設定します。
Authorization: Bearer <FIRECRAWL_API_KEY>
API キーをサーバー URL に含めないでください。エージェントとのチャットに API キーを記載しないでください。クライアントまたはシークレットマネージャーで直接設定してください。クライアントごとの手順については、ホステッド MCP セットアップガイド とエージェントのオンボーディングガイドを参照してください。
インテグレーションの命名
HTTP 経由で接続するインテグレーションは、たとえば X-Firecrawl-Origin: my-agent のように、X-Firecrawl-Origin ヘッダーを使って名前を設定できます。サーバーは、クライアント名または User-Agent の代わりに、リクエスト元 mcp-my-agent@<server version> として Firecrawl に報告します。英字、数字、ハイフンを使用してください。それ以外の文字の連続はそれぞれ 1 つのハイフンに置き換えられ、先頭と末尾のハイフンは削除され、名前は 48 文字で切り詰められます。ツールの結果に影響はありません。変更されるのは、Firecrawl API に送信されるリクエスト元(およびエンベッダーの beforeKeylessRequest に渡される値)のみです。
検索専用エンドポイント
スコープが固定された検索機能も、次の URL でホステッド提供されています。
https://mcp.firecrawl.dev/v2/mcp-search
固定された 9 つのツールを公開します。firecrawl_search、firecrawl_developer_search、firecrawl_gov_search、4 つの firecrawl_research_* ツール、および 2 つの Alexandria ツール firecrawl_find_tools と firecrawl_scrape です。firecrawl_search はページのコンテンツを取得しません。
npx で実行
env FIRECRAWL_API_KEY=fc-YOUR_API_KEY npx -y firecrawl-mcp
手動インストール
npm install -g firecrawl-mcp
Cursor で実行
Cursor 🖥️ の設定 注:Cursor バージョン 0.45.6 以降が必要です。 最新の設定手順については、MCP サーバーの設定に関する公式の Cursor ドキュメントを参照してください。 Cursor MCP サーバー設定ガイド
Cursor v0.48.6 で Firecrawl MCP を設定するには
- Cursor の設定を開きます
- Features > MCP Servers に移動します
- 「+ Add new global MCP server」をクリックします
- 次のコードを入力します。
{ "mcpServers": { "firecrawl-mcp": { "command": "npx", "args": ["-y", "firecrawl-mcp"], "env": { "FIRECRAWL_API_KEY": "YOUR-API-KEY" } } } }
Cursor v0.45.6 で Firecrawl MCP を設定するには
- Cursor の設定を開きます
- Features > MCP Servers に移動します
- 「+ Add New MCP Server」をクリックします
- 次の内容を入力します。
- 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 キーに置き換えてください。まだ API キーをお持ちでない場合は、アカウントを作成し、https://www.firecrawl.dev/app/api-keys から取得できます。
追加した後、MCP サーバーのリストを更新すると、新しいツールが表示されます。Composer Agent は、適切な場合に Firecrawl MCP を自動的に使用しますが、Web で必要な情報を説明して明示的にリクエストすることもできます。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/mcp です。
このモードでは、サーバーは localhost、127.0.0.1、[::1](ポートは問いません)、および HOST が 0.0.0.0 または :: 以外の場合はそのアドレス宛てのリクエストにのみ応答します。Host ヘッダーが別のホストを示すリクエスト、または Origin ヘッダーが別のサイトを示すリクエストには 403 が返され、CORS ヘッダーには * ではなく許可されたオリジンが反映されます。/health への GET および HEAD リクエストには、ホストにかかわらず応答するため、ヘルスチェックは引き続き機能します。また、サーバーは拒否したリクエストごとに、FIRECRAWL_MCP_ALLOWED_HOSTS の名前を含むログを出力します。これにより、アクセスしたウェブページが DNS リバインディングやクロスオリジンリクエストを通じてローカルサーバーを呼び出し、その FIRECRAWL_API_KEY を使用することを防ぎます。
リバースプロキシの背後にあるホスト名や LAN IP など、別の名前またはアドレスでサーバーにアクセスするには、FIRECRAWL_MCP_ALLOWED_HOSTS に列挙してください(カンマ区切り。ポートは無視されます)。同じリストによって、サーバーを呼び出せるブラウザーのオリジンも決まります。同じマシン上のリバースプロキシでは、デフォルトのバインドアドレスをそのまま使用できます。
env HTTP_STREAMABLE_SERVER=true FIRECRAWL_API_KEY=fc-YOUR_API_KEY \
FIRECRAWL_MCP_ALLOWED_HOSTS=mcp.home.lan npx -y firecrawl-mcp
別のマシン上のクライアントからアクセスするには、サーバーがループバック以外のアドレスでリッスンするようにする必要があるため、HOST も設定してください。その場合、ポートに到達できるすべてのクライアントにサーバーの FIRECRAWL_API_KEY が適用されるため、信頼できるネットワークでのみ実行してください。
env HTTP_STREAMABLE_SERVER=true FIRECRAWL_API_KEY=fc-YOUR_API_KEY HOST=0.0.0.0 \
FIRECRAWL_MCP_ALLOWED_HOSTS=192.168.1.20 npx -y firecrawl-mcp
FIRECRAWL_MCP_ALLOWED_HOSTS=* を設定するとチェックが無効になり、ワイルドカードの CORS ヘッダーが復元されます。サーバーの前段でホストとオリジンを独自にチェックする場合に限り、設定してください。
Docker での実行
ghcr.io/firecrawl/firecrawl-mcp-server イメージは、npx -y firecrawl-mcp と同じサーバーを実行します。main からの各ビルドには、latest、v<package version>、sha-<commit sha> のタグが付けられます。v<package version> はそのバージョンの最新ビルドを指すため、固定されたイメージが必要な場合は sha-<commit sha>(またはダイジェスト)を指定してください。
stdio(デフォルト)。サーバーをコマンドとして起動する MCP クライアント向けです。
docker run -i --rm -e FIRECRAWL_API_KEY=fc-YOUR_API_KEY ghcr.io/firecrawl/firecrawl-mcp-server:latest
{
"mcpServers": {
"firecrawl-mcp": {
"command": "docker",
"args": ["run", "-i", "--rm", "-e", "FIRECRAWL_API_KEY", "ghcr.io/firecrawl/firecrawl-mcp-server:latest"],
"env": {
"FIRECRAWL_API_KEY": "YOUR_API_KEY"
}
}
}
}
Streamable HTTP。http://localhost:3000/mcp で提供されます。
docker run --rm -p 127.0.0.1:3000:3000 \
-e HTTP_STREAMABLE_SERVER=true \
-e FIRECRAWL_API_KEY=fc-YOUR_API_KEY \
ghcr.io/firecrawl/firecrawl-mcp-server:latest
イメージでは HOST=0.0.0.0 と PORT=3000 が設定されています。別のポートでリッスンするには、PORT(および -p のマッピング)を上書きしてください。リクエストに独自の認証情報が含まれていない場合、サーバーはコンテナの FIRECRAWL_API_KEY を使用します。そのため、この例ではポートを 127.0.0.1 のみに公開しています。クライアントが独自のキーを指定する必要がない限り、より広い範囲に公開しないでください。セルフホスト可能な Firecrawl API を使用するには、FIRECRAWL_API_URL を設定してください。コンテナは非特権ユーザー node として実行されます。サーバーは Host ヘッダーと Origin ヘッダーが localhost、127.0.0.1、[::1] の場合にのみ応答するため、-p 127.0.0.1:3000:3000 のマッピングはそのまま機能します。別の名前でアクセスするには、-e FIRECRAWL_MCP_ALLOWED_HOSTS=<host> を設定してください(Streamable HTTP ローカルモードを参照)。
VS Code での実行
ワンクリックでインストールするには、以下のインストールボタンのいずれかをクリックしてください……
手動でインストールするには、以下の JSON ブロックを VS Code のユーザー設定(JSON)ファイルに追加してください。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_INTEGRATION(任意):エディター拡張機能など、このサーバーを起動するアプリ用の統合タグ- scrape、batch scrape、crawl、map、search、extract、agent、parse、interact、feedback リクエストの
integrationフィールドとして送信されます _zedのように、_で始まる値を使用してください
- scrape、batch scrape、crawl、map、search、extract、agent、parse、interact、feedback リクエストの
ローカル HTTP モード
FIRECRAWL_MCP_ALLOWED_HOSTS(任意):HTTP_STREAMABLE_SERVER=trueまたはSSE_LOCAL=trueの場合に、サーバーが応答する追加のホスト名またはアドレス。カンマ区切りで指定しますlocalhost、127.0.0.1、[::1]、およびワイルドカードではないHOSTは常に許可されます。ポートは無視されますHostまたはOriginヘッダーにこれ以外のホスト名が指定されたリクエストは、/healthへのGETおよびHEADリクエストを除き、403が返されます*を指定するとチェックが無効になります。すべてのホストに応答するCLOUD_SERVICE=trueでは使用されません
MCP OAuth(ベアラーアクセストークン)
Firecrawl は、firecrawl.dev の認可サーバーを通じて OAuth アクセストークン(fco_…)を発行します。この MCP サーバーは、解決した認証情報を Authorization: Bearer … として Firecrawl API に転送します。
- HTTP ストリームトランスポート(
CLOUD_SERVICE=true、HTTP_STREAMABLE_SERVER=true、またはSSE_LOCAL=true):クライアントは MCP リクエストにAuthorization: Bearer <fco_access_token>を付けて送信してください。OAuth ベアラートークンとx-firecrawl-api-key/x-api-keyの両方が指定されている場合は、OAuth ベアラートークンが優先されます。 - stdio:静的アクセストークンには
FIRECRAWL_OAUTH_TOKENを使用するか、API キーとしてFIRECRAWL_API_KEYを引き続き使用してください。
アクセストークン(fco_…)のみを使用してください。リフレッシュトークン(fcr_…)はトークンエンドポイントで交換する必要があります。scrape/search API に直接渡さないでください。
CLOUD_SERVICE=true
CLOUD_SERVICE=true の場合、ツールはストリーミング可能な HTTP 経由で PORT(デフォルトは 3000、0.0.0.0 にバインド)から提供されます。より厳格なデフォルト設定が適用され、すべてのリクエストに認証情報(API キーまたは OAuth アクセストークン)が必要です。スクレイプは読み取り専用です(下記のスクレイプツールを参照)。また、firecrawl_parse で受け付けるのはアップロードのみです。
FASTMCP_ENDPOINT でツールのサーフェスを選択します。/v2/mcp(デフォルト)はすべてのツール、/v2/mcp-oauth はアカウント関連のツール、/v2/mcp-search は検索専用ツールを提供します(この場合は FIRECRAWL_MCP_SEARCH_OAUTH_ONLY=true も必要です)。すべてのツールを提供するサーフェスでは、検索専用のインスタンスもポート 3001 で起動します。無効にするには FIRECRAWL_MCP_SEARCH_ENABLED=false を設定してください。
設定例
クラウド API を使用する場合:
export FIRECRAWL_API_KEY=your-api-key
セルフホストインスタンスの場合:
# 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
Claude Desktop での使用方法
claude_desktop_config.json に次の内容を追加してください:
{
"mcpServers": {
"mcp-server-firecrawl": {
"command": "npx",
"args": ["-y", "firecrawl-mcp"],
"env": {
"FIRECRAWL_API_KEY": "YOUR_API_KEY_HERE"
}
}
}
}
ツールの選び方
タスクに適したツールを選ぶには、次のガイドを参照してください。
- 対象の URL が正確に分かっている場合: scrape を使用します(構造化データには JSON 形式を使用します)
- 複数の URL が分かっている場合: URL ごとに scrape を呼び出します。特に一括 API 操作が必要な場合は、MCP の外部で Firecrawl API のバッチエンドポイントを使用します。
- サイト上の URL を見つける必要がある場合: map を使用します
- 情報をウェブ検索したい場合: search を使用します
- プログラミングに関する質問の場合(ライブラリ、API の仕様、エラーメッセージ、既知のバグなど):developer search を使用します
- 法律または規制に関する質問の場合(法令、規則、法典、裁判所の意見書、その他の米国政府刊行物など):Firecrawl Government Index を使用します
- 科学論文が必要な場合(生物医学、ライフサイエンス、臨床、arXiv の文献など):論文の要約と全文を検索する research tools を使用します。
categories: ["research"]を指定したsearchは別の機能で、通常のウェブ検索結果に適用するサイトフィルターです。 - URL が分からない場合、構造化データを返す複数ソースの調査が必要な場合、または回答が複数のサイトにまたがる場合(エンティティとそのフィールド、リスト、データセットなど):agent を使用します
- サイト全体またはセクション全体を分析したい場合: crawl を使用します(制限を設定してください!)
- インタラクティブなブラウザー操作が必要な場合(クリック、入力、移動など):新しいページには URL を指定して interact を使用します。ページをすでにスクレイプしている場合や、スクレイプをより細かく制御する必要がある場合は、scrape と interact を組み合わせて使用します
- カタログに登録されたプロバイダー(Alexandria)のデータが必要な場合:
sources: ["alexandria"]を指定して検索し、find_tools で選択したコントラクトを確認してから、scrapealexandriaで実行します
クイックリファレンス表
| ツール | 最適な用途 | 戻り値 |
|---|---|---|
| scrape | 単一ページのコンテンツ | JSON(推奨)または Markdown |
| interact | URL またはスクレイピング済みページとの対話 | 実行結果 + URL モードの scrapeId |
| map | サイト上の URL の検出 | URL[] |
| crawl | 複数ページの抽出(制限付き) | 内部ポーリング後の最終的なクロールステータス/データ |
| parse | ファイルおよびホストされたアップロード参照 | Markdown、JSON、またはドキュメント出力 |
| search | 情報のウェブ検索 | results[] |
| find_tools | Alexandria カタログの閲覧と URL の検索 | プロバイダー、ツールの契約、次のツールへのナビゲーション |
| developer | 開発者向けソースを使ったプログラミングの質問 | パッセージを含む results[] |
| gov | 米国の一次法および規制関連資料 | スニペットを含む results[] |
| agent | 複数のソースを使った調査、不明なサイトや多数のサイトの調査 | JSON(構造化データ) |
| monitor | ページの定期的な確認 | モニター/チェックのメタデータと差分 |
| research | 論文および GitHub リポジトリの調査 | 調査結果とリポジトリの一致 |
フォーマットの選択ガイド
scrape を使用する際は、適切なフォーマットを選択してください。
- JSON フォーマット(ほとんどの場合に推奨): ページから特定のデータを取得する必要がある場合に使用します。抽出する内容に基づいてスキーマを定義してください。これにより、レスポンスを小さく保ち、コンテキストウィンドウのオーバーフローを防げます。
- Markdown フォーマット(使用は控えめに): 要約のために記事全体を読む場合やページ構造を分析する場合など、ページ全体のコンテンツが本当に必要なときにのみ使用します。
利用可能なツール
1. スクレイプツール(firecrawl_scrape)
高度なオプションを使って、単一の URL からコンテンツをスクレイピングします。
最適な用途:
- どのページに情報が含まれているか正確にわかっている場合の、単一ページからのコンテンツ抽出。
推奨しない用途:
- 複数のページからコンテンツを抽出する場合(既知の URL にはスクレイプを繰り返し呼び出すか、まず map とスクレイプで URL を見つけるか、ページ全体のコンテンツを取得するには crawl を使用してください)
- どのページに情報が含まれているかわからない場合(search を使用してください)
よくある間違い:
- 1 回のスクレイプ呼び出しに URL のリストを渡すこと。MCP では URL ごとにスクレイプを 1 回呼び出してください。特に 1 回の一括 API 操作が必要な場合は、MCP の外部で Firecrawl API のバッチエンドポイントを使用してください。
- デフォルトで Markdown 形式を使用すること(必要な情報だけを抽出するには JSON 形式を使用してください)。
適切な形式の選択:
- JSON 形式(推奨): ほとんどの用途では、スキーマを指定した JSON 形式を使用して、必要なデータだけを抽出してください。これにより、応答を絞り込み、コンテキストウィンドウのオーバーフローを防げます。
- Markdown 形式: タスクでページ全体のコンテンツが本当に必要な場合に限って使用してください(例:記事全体の要約、ページ構造の分析)。
プロンプトの例:
「https://example.com/product から製品の詳細を取得してください。」
使用例(JSON 形式 — 推奨):
{
"name": "firecrawl_scrape",
"arguments": {
"url": "https://example.com/product",
"formats": [
{
"type": "json",
"prompt": "Extract the product information",
"schema": {
"type": "object",
"properties": {
"name": { "type": "string" },
"price": { "type": "number" },
"description": { "type": "string" }
},
"required": ["name", "price"]
}
}
]
}
}
使用例(Markdown 形式 — 全コンテンツが必要な場合):
{
"name": "firecrawl_scrape",
"arguments": {
"url": "https://example.com/article",
"formats": ["markdown"],
"onlyMainContent": true
}
}
使用例(ブランディング形式 — ブランドアイデンティティを抽出):
{
"name": "firecrawl_scrape",
"arguments": {
"url": "https://example.com",
"formats": ["branding"]
}
}
ブランディング形式: デザイン分析やスタイルの再現に向けて、包括的なブランドアイデンティティ(色、フォント、タイポグラフィ、余白、ロゴ、UI コンポーネント)を抽出します。
プライバシー: redactPII: true を設定すると、個人を特定できる情報が伏せられたコンテンツが返されます。
CLOUD_SERVICE=true の場合: scrape は読み取り専用です。ブラウザーの actions は受け付けず、プロバイダーの利用規約にも同意できません。名前付きの profile は、変更を保存せずに保存済みのブラウザー状態を読み込みます。また、フルエンドポイントの firecrawl_search も scrapeOptions.profile を同様に扱います。ブラウザー状態をプロファイルに保存するには、firecrawl_interact でページを開いてください(下記を参照)。組織の管理者はダッシュボードで利用規約に同意します。
返される内容:
- 指定された形式の JSON 構造化データ、Markdown、ブランディングプロファイル、その他の形式。
2. マップツール(firecrawl_map)
ウェブサイトをマップし、サイト上でインデックス化されたすべての URL を見つけます。
最適な用途:
- スクレイピング対象を決める前に、ウェブサイト上の URL を見つける
- ウェブサイトの特定のセクションを見つける
推奨しない用途:
- 必要な特定の URL がすでにわかっている場合(scrape を使用してください)
- ページのコンテンツが必要な場合(マッピング後に scrape を使用してください)
よくある間違い:
- URL を見つけるために map ではなく crawl を使用すること
プロンプトの例:
「example.com 上のすべての URL を一覧表示してください。」
使用例:
{
"name": "firecrawl_map",
"arguments": {
"url": "https://example.com"
}
}
返される内容:
- サイト上で見つかった URL の配列
3. 検索ツール(firecrawl_search)
ウェブを検索し、必要に応じて検索結果からコンテンツを抽出します。
次のような場合に最適です:
- どのウェブサイトに情報があるかわからず、複数のウェブサイトから特定の情報を探す場合。
- クエリに最も関連性の高いコンテンツが必要な場合
次のような場合にはおすすめしません:
- スクレイピングするウェブサイトがすでにわかっている場合(scrape を使用してください)
- 1 つのウェブサイトを網羅的に調べる必要がある場合(map または crawl を使用してください)
よくある間違い:
- 自由形式の質問に crawl または map を使う(代わりに search を使用してください)
使用例:
{
"name": "firecrawl_search",
"arguments": {
"query": "remote work stipend policies at tech companies",
"highlights": true,
"limit": 5,
"lang": "en",
"country": "us"
}
}
同じ呼び出しで複数の結果の全文を取得するには、"scrapeOptions": { "formats": ["markdown"], "onlyMainContent": true } を追加します。取得した結果はそれぞれ scrape として課金されるため、ほとんどの質問では抜粋を使用し、必要な URL のみに firecrawl_scrape を使ってください。
クエリに関連するハイライトを取得するには highlights を true に設定し、元の検索スニペットを維持するには false に設定します。省略すると、API のデフォルトの動作が使用されます。
"sources": ["alexandria"] を追加すると、data.tools でセマンティックなツール検索ができます。必要に応じてウェブ/ニュース/画像と組み合わせることもできます。クエリは必須です。コンテキストに基づく検索と段階的な情報開示には firecrawl_find_tools を使用してください。Alexandria Tools を参照してください。
科学論文については、Research Tools を参照してください。これらのツールは論文の要旨と全文を検索します。一方、ここで categories: ["research"] を指定すると、通常のウェブ検索結果が研究関連のウェブサイトに絞り込まれます。
戻り値:
- ソース別にグループ化された検索結果(
data.web、data.images、data.news)。スクレイピングしたコンテンツが含まれる場合もあり、さらにidフィールドが含まれます。各結果にはsourceと 1 から始まるpositionが付与されます。positionは各グループ内で 1 から採番されるため、配列要素を数えず、ペアをそのままfirecrawl_search_feedbackのvaluableResultsにコピーしてください。結果を使った後に、そのidをfirecrawl_search_feedbackに渡すと、1 クレジットが返金されます(検索コストは 2 クレジット)。また、検索品質の向上にも役立ちます。
プロンプト例:
「テクノロジー企業各社のリモートワーク手当の方針を比較してください。」
3b. 検索フィードバックツール(firecrawl_search_feedback)
以前の firecrawl_search の結果に対して、構造化されたフィードバックを送信します。検索 ID ごとに最初のフィードバックを送信すると、1 クレジットが返金され、Firecrawl の検索品質が向上します。検索 ID ごとに冪等です。
実際に使用した検索の後は毎回、このツールを呼び出してください(役に立たなかった場合も同様です)。missingContent を含む不十分なフィードバックや部分的なフィードバックも、良質なフィードバックと同じように役立ちます。
オプトアウト: MCP サーバーの起動時に、環境変数 FIRECRAWL_NO_SEARCH_FEEDBACK=1(または FIRECRAWL_DISABLE_SEARCH_FEEDBACK=1)を設定してください。firecrawl_search_feedback ツールは登録されないため、エージェントは呼び出せません。チーム管理者はサーバー側でフィードバックを無効にすることもできます。その場合、ツールは登録されますが、常に feedbackErrorCode: "TEAM_OPTED_OUT" を返します。
最も重要なフィールド: missingContent です。エージェントが見つかると期待していたものの、見つからなかった具体的なコンテンツを配列で指定します。トピックごとに 1 つ記載してください。これらはチーム間で集約され、次にインデックス化すべき内容を把握するために使われます。結果が役に立った場合は、各結果に付与された source/position のペアを使って valuableResults を指定してください。結果はグループごとにまとめられ、各グループで個別に 1 から採番されるため、両方が必要です。有用な結果はすべて列挙してください(列挙されていない結果は役に立たなかったものとして扱われます)。valuableSources は、返された結果には含まれていない有用な URL にのみ使用してください。
1 日あたりの返金上限(チームごと、UTC 日単位、デフォルトは 100 クレジット)。 チームの creditsRefundedToday が dailyRefundCap に達すると、それ以降の送信は引き続きフィードバックとして記録されますが、クレジットは返金されません。レスポンスでは dailyCapReached: true が設定されます。このフラグが表示されたら、エージェントは UTC のその日が終わるまでこのツールの呼び出しを停止してください。
使用例:
{
"name": "firecrawl_search_feedback",
"arguments": {
"searchId": "0193f6c5-1234-7890-abcd-1234567890ab",
"rating": "good",
"valuableResults": [
{ "source": "web", "position": 1 },
{ "source": "web", "position": 3 },
{ "source": "news", "position": 2, "reason": "Broke the pricing change." }
],
"valuableSources": [
{
"url": "https://docs.firecrawl.dev/pricing",
"reason": "Not in the results; found via a result's pricing link. Answered the question."
}
],
"missingContent": [
{
"topic": "Pricing for the search endpoint",
"description": "No pricing tier table for /search specifically."
},
{ "topic": "Per-team rate limits" }
],
"querySuggestions": "Boost docs.firecrawl.dev for queries that mention 'firecrawl'"
}
}
戻り値:
{ success, feedbackId, creditsRefunded, alreadySubmitted? }の JSON。
3c. 汎用フィードバックツール(firecrawl_feedback)
/v2/feedback を通じて、完了した v2 エンドポイントジョブに対する構造化フィードバックを送信します。
scrape、parse、map、search ジョブのエンドポイントレベルのフィードバックに使用してください。
検索結果の品質に関するフィードバックには、検索に特化したガイダンスが含まれる firecrawl_search_feedback を優先してください。
フィードバックは簡潔にしてください。問題コード、タグ、短いメモ、URL、ページ番号、小さなメタデータオブジェクトを使用してください。スクレイプ/解析の生出力は含めないでください。
オプトアウト: MCP サーバーの起動時に、環境変数として FIRECRAWL_NO_ENDPOINT_FEEDBACK=1(または FIRECRAWL_DISABLE_ENDPOINT_FEEDBACK=1)を設定します。firecrawl_feedback ツールは登録されないため、エージェントは呼び出せません。
使用例:
{
"name": "firecrawl_feedback",
"arguments": {
"endpoint": "scrape",
"jobId": "0193f6c5-1234-7890-abcd-1234567890ab",
"rating": "partial",
"issues": ["missing_markdown"],
"tags": ["docs"],
"note": "The pricing table was missing from the markdown output.",
"url": "https://example.com/pricing",
"pageNumbers": [1],
"metadata": {
"format": "markdown"
}
}
}
戻り値:
{ success, feedbackId, creditsRefunded, creditsRefundedToday?, dailyRefundCap?, dailyCapReached?, websiteCapReached?, alreadySubmitted?, warning? }の JSON。
4. クロールツール(firecrawl_crawl)
クロールジョブを開始し、終端状態に達するまでポーリングして、最終的なクロールのステータス/データを返します。
最適な用途:
- 包括的にカバーする必要がある場合に、複数の関連ページからコンテンツを抽出すること。
推奨されない用途:
- 単一ページからコンテンツを抽出する場合(scrape を使用してください)
- トークン制限が懸念される場合(制御しやすい map + scrape を使用してください)
- すばやく結果を得たい場合(クロールには時間がかかることがあります)
警告: クロールの応答は非常に大きくなる可能性があり、トークン制限を超えることがあります。クロールの深さとページ数を制限するか、制御しやすい map + scrape を使用してください。
よくある間違い:
- limit または maxDiscoveryDepth を高く設定しすぎる(トークンのオーバーフローにつながります)
- 単一ページに crawl を使用する(代わりに scrape を使用してください)
プロンプトの例:
「example.com/blog の最初の 2 階層から、すべてのブログ投稿を取得してください。」
使用例:
{
"name": "firecrawl_crawl",
"arguments": {
"url": "https://example.com/blog/*",
"maxDiscoveryDepth": 2,
"limit": 100,
"allowExternalLinks": false,
"deduplicateSimilarURLs": true
}
}
戻り値:
- 内部ポーリング後の最終的なクロールのステータスとデータです。
id、status、completed、total、creditsUsed、expiresAt、next、dataが含まれます。後でジョブを再確認する必要がある場合は、返されたidをfirecrawl_check_crawl_statusで使用してください。
5. クロールステータスの確認(firecrawl_check_crawl_status)
ID を指定して、既存のクロールジョブのステータスと結果を確認します。
{
"name": "firecrawl_check_crawl_status",
"arguments": {
"id": "550e8400-e29b-41d4-a716-446655440000"
}
}
戻り値:
- 応答にはクロールジョブのステータスが含まれます。
6. 解析ツール(firecrawl_parse)
Firecrawl の /v2/parse エンドポイントを使用して、ローカルファイルまたはホストされたアップロード参照を解析します。
最適な用途: PDF、Word 文書、スプレッドシート、HTML ファイル、その他 Markdown または構造化 JSON 出力が必要な文書です。ホスト型エンドポイントでは 2 段階のアップロードフローが使用されます。ローカルファイルを直接読み取るには、セルフホストの FIRECRAWL_API_URL が必要です。
推奨されない用途: リモート URL(scrape を使用してください)、1 回の呼び出しでの複数ファイル(ファイルごとに parse を 1 回呼び出してください)、スクリーンショットやクリックなどのブラウザー専用操作です。
ホスト型エンドポイント: ファイルシステムを読み取ることはできません。filePath を指定して firecrawl_parse を呼び出すと、有効期限の短いアップロードコマンドと nextToolCall が返されます。ファイルをローカルでアップロードした後、返された uploadRef を使って firecrawl_parse を再度呼び出してください。アップロード手順には Firecrawl の認証または keyless ティアが必要です。ローカルの npx firecrawl-mcp モードでは、ファイルの直接解析に現在 FIRECRAWL_API_URL がセルフホストの Firecrawl API を指している必要があります。クラウド API キーのみを使用する通常のローカルサーバーでは、このツールを通じてファイルを読み取ってアップロードすることはできません。
使用例:
{
"name": "firecrawl_parse",
"arguments": {
"filePath": "/absolute/path/to/document.pdf",
"formats": ["markdown"],
"parsers": ["pdf"],
"zeroDataRetention": true
}
}
戻り値: 解析された文書コンテンツ、または nextToolCall を含むホスト型アップロードの手順です。
7. Scrape JSON による構造化データ
既知のページから構造化データを取得するには、formats: ["json"] を指定して URL ごとに 1 回 firecrawl_scrape を呼び出します。抽出プロンプトと JSON スキーマは jsonOptions に指定します。
{
"name": "firecrawl_scrape",
"arguments": {
"url": "https://example.com/product",
"formats": ["json"],
"jsonOptions": {
"prompt": "Extract the product name, price, and description.",
"schema": {
"type": "object",
"properties": {
"name": { "type": "string" },
"price": { "type": "number" },
"description": { "type": "string" }
},
"required": ["name", "price"]
}
}
}
}
URL が不明な場合や、データが複数のサイトにまたがる場合は、複数のソースを調査するために firecrawl_agent を使用してください。
8. エージェントツール(firecrawl_agent)
URL が分からない場合や、回答に複数のサイトの情報が必要な場合に、構造化データを返す自律型のウェブリサーチエージェントです。必要なフィールドを記述し、必要に応じて JSON スキーマとシード URL を渡すと、エージェントが検索、ページの移動と読み込みを行い、複数の情報源から集めたデータを JSON で返します。エンティティとそのフィールド、リストやデータセット、データにたどり着くためにページ内の移動が必要な場合に使用します。URL が1つだけ分かっている場合は、代わりに JSON 形式で firecrawl_scrape を使用してください。
仕組み:
エージェントはウェブ検索を行い、リンクをたどってページを読み込み、自律的にデータを収集します。これは非同期で実行され、すぐにジョブ ID が返されます。完了を確認して結果を取得するには、firecrawl_agent_status をポーリングします。
非同期のワークフロー:
- プロンプト/スキーマを指定して
firecrawl_agentを呼び出す → ジョブ ID が返されます - エージェントが調査している間、ほかの作業を行います(複雑なクエリでは数分かかる場合があります)
- ジョブ ID を指定して
firecrawl_agent_statusをポーリングし、進行状況を確認します - ステータスが
"completed"になったら、応答に抽出されたデータが含まれます
おすすめの用途:
- 正確な URL が分からない複雑な調査タスク
- 複数の情報源からのデータ収集
- ウェブ上に散在する情報の検索
- 結果を待つ間にほかの作業を行えるタスク
推奨しない用途:
- URL が分かっている単純な単一ページのスクレイピング(JSON 形式で scrape を使用すると、より高速で低コストです)
引数:
prompt:必要なデータを自然言語で記述します(必須、最大10,000文字)urls:任意の URL 配列。エージェントが特定のページを優先して調査するよう指定しますschema:構造化出力用の任意の JSON スキーマeffort:任意。エージェントタスクの推論予算として"low"、"medium"、"high"を指定します。maxCredits:任意の正の整数。この実行で使用するクレジットの上限です。省略した場合、API のデフォルトは2,500で、無料リクエストの上限も2,500です。strictConstrainToURLs:任意のブール値。trueの場合、エージェントはurlsに指定された URL のみを訪問します。threadId:任意。既存のスレッドを続行します。以前のfirecrawl_agentまたはfirecrawl_agent_statusの結果に含まれるthreadIdを指定します。新しいスレッドを開始する場合は省略します。後続の呼び出しでmode、urls、schema、exchangeの設定を省略すると、前のターンの設定が引き継がれます。mode:任意。"extract"(デフォルト)は、各ターンで完全な構造化結果を返します。"chat"を指定すると、新しいデータを求めない後続の呼び出しでは再実行せず、代わりにmessageに短い返答を返します。exchange.requireApprovalを使用する場合は、この設定が必要です。exchange:任意。このターンの Alexandria プロバイダー設定です。変更せずにPOST /v2/agentに転送されます。enabled、toolkits(プロバイダーのスラッグを最大5つ)、maxCalls(1~30)、requireApproval(有料呼び出しではターンがpendingApprovalの状態で終了します。同じ呼び出しで、後続の呼び出しの場合も含めてmode: "chat"が必要です)onTermsRequired:エージェントが使用する Alexandria プロバイダーに、チームがまだ同意していないデータ利用規約が必要な場合の動作を指定します。利用制限のあるプロバイダーは、どのモードでも呼び出されません。後続の呼び出しで省略すると、前のターンの値が引き継がれます。"skip"(デフォルト):同意済みのプロバイダーのみで回答します。ステータス結果のexchange.skippedProvidersに、役立つ可能性があった利用制限付きプロバイダーが表示されます。"ask":同様に回答し、さらに利用規約のpendingApprovalと、承認 ID およびプロバイダー要件を含むexchange.requiresActionを返します。terms/showで規約を確認し、組織の管理者が Firecrawl ダッシュボードで同意します。
approve:{ approvalId, callIds?, always? }の形式で、前のターンがpendingApprovalで終了したことに対して承認します。callIdsとalwaysは有料呼び出しの承認にのみ適用されます。decline:{ approvalId }の形式で、承認しないことを示します。利用規約への同意を拒否すると、そのプロバイダーはスレッドの残りの間、使用されません。approveとdeclineにはthreadIdが必要です。また、同時に指定できるのはどちらか一方だけです。 プロバイダーの利用規約(確認モード): 自動承諾モードはありません。利用規約の提示でターンが終了すると、ステータス結果にpendingApproval(kind: "terms")と、approvalIdおよびプロバイダーの要件を含むexchange.requiresActionが返されます。そのAPIペイロード内のterms/acceptディスクリプターは、MCP経由では利用できません。プロバイダーを利用するには、次の手順に従ってください。
- ユーザーに利用規約を提示します(
alexandriaを指定してfirecrawl_scrapeからterms/showを実行します)。 - 組織の管理者に、プロバイダーのURLまたはデータソース設定で利用規約を承諾するよう案内します。データのリクエストは同意を意味しません。
- 管理者がダッシュボードで承諾したことを確認するまで待ちます。
- 同じスレッドを続行します。同じ
threadIdを指定してfirecrawl_agentを呼び出し、exchange.approve: { "approvalId": "..." }を渡します。これにより調査が再開されますが、利用規約は承諾されません。
ユーザーが拒否した場合は、代わりに同じthreadIdを指定してfirecrawl_agentを呼び出し、exchange.decline: { "approvalId": "..." }を渡します。
プロンプトの例:
「Firecrawl の創業者とその経歴を調べてください」
使用例(エージェントを起動してから、結果をポーリング):
{
"name": "firecrawl_agent",
"arguments": {
"prompt": "Find the top 5 AI startups founded in 2024 and their funding amounts",
"schema": {
"type": "object",
"properties": {
"startups": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": { "type": "string" },
"funding": { "type": "string" },
"founded": { "type": "string" }
}
}
}
}
}
}
}
その後、返されたジョブ ID を使用してfirecrawl_agent_statusでポーリングします。
使用例(URL を指定 - エージェントが特定のページに集中):
{
"name": "firecrawl_agent",
"arguments": {
"urls": ["https://docs.firecrawl.dev", "https://firecrawl.dev/pricing"],
"prompt": "Compare the features and pricing information from these pages"
}
}
使用例(同じスレッドでのフォローアップ):
{
"name": "firecrawl_agent",
"arguments": {
"prompt": "Only keep the startups based in Europe",
"threadId": "0199a1b2-0000-7000-8000-000000000031"
}
}
使用例(管理者がダッシュボードでの承諾を確認した後にスレッドを続行):
{
"name": "firecrawl_agent",
"arguments": {
"prompt": "The admin confirmed acceptance of the Apollo terms in the dashboard. Continue.",
"threadId": "0199a1b2-0000-7000-8000-000000000031",
"exchange": { "approve": { "approvalId": "0199a1b2-0000-7000-8000-000000000033" } }
}
}
返される値:
- ステータス確認用のジョブ IDに加えて、
threadIdとthreadTurnが返されます。結果をポーリングするにはfirecrawl_agent_statusを使用します。
9. エージェントのステータスを確認する(firecrawl_agent_status)
エージェントジョブのステータスを確認し、完了時に結果を取得します。エージェントを起動した後、結果をポーリングする際に使用します。
ポーリングのパターン: 複雑なクエリでは、エージェントによる調査に数分かかることがあります。ステータスが「completed」または「failed」になるまで、このエンドポイントを定期的に(例:10~30秒ごとに)ポーリングしてください。
{
"name": "firecrawl_agent_status",
"arguments": {
"id": "550e8400-e29b-41d4-a716-446655440000"
}
}
ステータスの種類:
processing:エージェントが調査を続けています。しばらくしてから再度確認してください。completed:調査が完了しました。レスポンスに抽出されたデータが含まれます。failed:エラーが発生しました。
10. Interact ツール(firecrawl_interact)
新しいURL、またはfirecrawl_scrapeですでに開いたページを操作します。
最適な用途: 非推奨のブラウザーツールを復活させることなく、動的なページでクリック、入力、移動を行い、状態を抽出できます。
使用方法:
urlを渡すと、1回のMCP呼び出しでページをスクレイピングして開き、操作できます。scrapeIdを渡すと、既存のスクレイピング済みページの操作を続けられます。- ブラウザーの状態(cookies、localStorage)を名前付きプロファイルに保存するには、
scrapeOptions: { "profile": { "name": "my-profile", "saveChanges": true } }とともにurlを渡します。状態はfirecrawl_interact_stopでセッションを終了したときに保存されます。 urlまたはscrapeIdのいずれか一方と、promptまたはcodeのいずれか一方を指定します。
使用例:
{
"name": "firecrawl_interact",
"arguments": {
"url": "https://example.com",
"prompt": "Click the pricing link and summarize the visible plans"
}
}
返される値: 操作結果。URL モードの場合は、後続の操作やクリーンアップに使用する、そこから派生したscrapeIdも返されます。
11. Interact ツールを停止する(firecrawl_interact_stop)
操作が終わったら、スクレイピング済みページのInteractセッションを停止します。
{
"name": "firecrawl_interact_stop",
"arguments": {
"scrapeId": "scrape-id-here"
}
}
12. リサーチツール(firecrawl_research_*)
リサーチ MCP ツールを使って、論文や GitHub リポジトリを検索、調査します。
対象: PubMed、bioRxiv、medRxiv の生物医学、生命科学、臨床分野の文献に加え、arXiv やその他の科学情報源に掲載された論文の要旨と全文です。
利用可能なリサーチツール:
firecrawl_research_search_papers:自然言語クエリを使って論文のメタデータと要旨を検索します。著者、カテゴリ、日付による絞り込みも任意で指定できます。firecrawl_research_inspect_paper:1 件の論文 ID(arXiv、PMC、PMID、DOI)の正規メタデータを取得します。firecrawl_research_related_papers:1 件以上の起点となる論文から、引用グラフをたどって関連論文を探します。firecrawl_research_read_paper:指定した論文から全文の一部を読み取ります。
最適な用途: エージェントが一般的なウェブ検索ではなく、焦点を絞ったリサーチ環境を必要とする文献レビュー、論文検索、リポジトリ発見のワークフローです。
categories: ["research"] を指定した firecrawl_search は、別の検索方法です。通常のウェブ検索結果を研究関連のウェブサイトに絞り込み、論文レコードではなくページのスニペットを返します。文献そのものに関する質問にはこれらのツールを使い、同じ質問をいくつかの異なる表現で渡してください。単一のクエリとは異なる論文が見つかるためです。
13. モニターツール(firecrawl_monitor_*)
定期的に実行するページモニターを作成、管理します。モニターはスケジュールに従ってスクレイピングまたはクロールを実行し、各結果を前回保存したスナップショットと比較して差分を検出します。また、Webhook またはメールで通知できます。
最適な用途:
- 1 ページ、または数ページを継続的に監視する
- 平易な英語で目的を指定し、重要な変更を通知する
- チェック履歴とページ単位の差分を追跡する
推奨される作成方法:
page または pages と goal を使います。MCP サーバーは 30 分間隔のスケジュールでモニターリクエストを作成し、API は重要な変更の判定を自動的に有効にします。
goal が設定されている場合、重要な変更の判定は自動的に実行されます。ページ Webhook の monitor.page イベントでは、isMeaningful と judgment が公開されます。
目的は、簡潔な 2~3 文のモニター指示として記述してください。何をアラートの対象とするかを示し、ユーザーが指定した範囲を維持してください。また、依頼内容から明らかな場合に限り、目的に応じた除外条件を含めてください。空白、書式のみの変更、リクエスト ID、トラッキングパラメーター、一般的なメタデータ、無関係なページの共通要素といった一般的なノイズは判定機能で処理されるため、各目的で繰り返し記載する必要はありません。ユーザーの指示が曖昧な場合は目的を広く保ち、広範な監視や「すべての変更」を求めている場合は、その範囲を維持してください。ユーザーが特定の内容を気にしないと述べている場合は、その点を明記してください。
{
"name": "firecrawl_monitor_create",
"arguments": {
"page": "https://example.com/pricing",
"goal": "Alert when pricing, packaging, or launch messaging changes."
}
}
Webhook を使った複数ページの監視:
{
"name": "firecrawl_monitor_create",
"arguments": {
"pages": ["https://example.com/pricing", "https://example.com/changelog"],
"goal": "Alert when pricing, packaging, or launch messaging changes.",
"webhookUrl": "https://example.com/webhooks/firecrawl"
}
}
高度な作成リクエスト:
クロール対象、JSON の変更追跡、カスタムの保持期間、または judgeEnabled の明示的な制御が必要な場合は、body を渡してください。
{
"name": "firecrawl_monitor_create",
"arguments": {
"body": {
"name": "Docs monitor",
"schedule": { "text": "hourly", "timezone": "UTC" },
"goal": "Alert when docs pages add, remove, or materially change API behavior.",
"targets": [{ "type": "crawl", "url": "https://example.com/docs" }]
}
}
}
その他のモニターツール:
firecrawl_monitor_list:モニターの一覧を表示します。firecrawl_monitor_get:1 件のモニターを取得します。firecrawl_monitor_update:goal、judgeEnabled、webhook、notificationなどのフィールドを更新します。firecrawl_monitor_run:今すぐチェックを実行します。firecrawl_monitor_delete:モニターを削除します(破壊的な操作です。ユーザーが削除を意図している場合にのみ呼び出してください)。firecrawl_monitor_checks:チェックの一覧を表示します。ステータスによる絞り込みも任意で指定できます。firecrawl_monitor_check:diff、snapshot、judgment.meaningful、judgment.meaningfulChangesなど、ページ単位の結果を取得します。
14. 開発者検索ツール(firecrawl_developer_search)
コーディングエージェント向けに構築されたインデックスを検索します。このインデックスには、GitHub の Issue、マージ済みプルリクエスト、リポジトリの README、コードドキュメントが含まれます。
最適な用途: コードの動作、ライブラリやフレームワーク、API コントラクト、エラーメッセージ、既知のバグなど、プログラミングに関する質問。
引数:
{
"name": "firecrawl_developer_search",
"arguments": {
"query": "how do I configure retries",
"k": 10,
"skills": "only"
}
}
query(必須):開発に関する質問または検索語句。k:ランキング結果の件数。デフォルトは 10、最大は 100 です。skills:エージェントスキルのファイルのみを検索するには、"only"を指定します。
戻り値: ランキング順の結果。各結果には、ID、ソースの種類(issue、pull_request、readme、doc のいずれか)、URL、タイトル、該当箇所の Markdown が含まれます。
categories: ["developer"] を指定して firecrawl_search を使うと、ウェブ検索結果と並べて同じインデックスが検索されます。該当箇所、skills フィルター、またはウェブ検索結果を含まない応答が必要な場合は、代わりにこのツールを使用してください。検索専用エンドポイントでは両方のツールを利用でき、同じ選択が適用されます。
14b. 政府インデックス検索ツール(firecrawl_gov_search)
米国の連邦、州、地方自治体の情報源から、法律や規制に関する一次資料を検索します。対象は、制定法、規則、法典、裁判所の意見書、その他の政府刊行物です。
最適な用途: 適用される条文や政府の公式情報源を必要とする、法律または規制に関する質問。
引数:
{
"name": "firecrawl_gov_search",
"arguments": {
"query": "excessive force claims against police officers",
"k": 10,
"courtType": "federal-appellate",
"cites": "42 U.S.C. § 1983"
}
}
query(必須):法律または規制に関する質問または検索語句。k:ランキング結果の件数。デフォルトは 10、最大は 100 です。jurisdiction:1 つの管轄区域のページに絞り込みます。連邦の場合は"us"、州または準州の場合は"us-"に 2 文字の州または準州コードを続けた値(例:"us-ca"、"us-dc")を指定します。court:CourtListener の裁判所 ID(例:"scotus"、"ca9"、"nysd")でラベル付けされた 1 つの裁判所のページに絞り込みます。courtType:1 つの裁判所種別のページに絞り込みます。指定できる値は、federal-supreme、federal-appellate、federal-district、federal-bankruptcy、federal-special、military、state-supreme、state-appellate、state-trial、state-special、state-attorney-generalです。cites:印刷された引用(例:"42 U.S.C. § 1983"、"5 U.S. 137")または引用 ID(例:"us:usc:42:1983")で指定した 1 つの法律または判例を引用するページに絞り込みます。domain:1 つのサイト(例:"irs.gov")のページに絞り込みます。
フィルターは任意で、組み合わせて使用できます。結果は、設定されたすべてのフィルターに一致する必要があります。フィルターで残るのは、インデックスがラベル付けしたページのみであるため、関連ページが検索から漏れる場合があり、結果がなくても該当ページが存在しないとは限りません。裁判所のラベルは、連邦裁判所と判例集で最も網羅されています。
戻り値: ランキング順の結果。各結果には、順位、タイトル、URL、該当するスニペットが含まれます。検索専用エンドポイントでもこのツールを利用できます。
categories: ["gov"] を指定して firecrawl_search を使うと、同じ情報源が検索され、ヒットが category: "gov" とともに data.web に返されます。gov カテゴリーではこれらのフィルターは使用できず、他のカテゴリーと組み合わせることもできません。
15. Alexandria ツール
Firecrawl Alexandria は、Alexandria へのアクセス権があるチームの Firecrawl API キーを使って、Firecrawl API 経由で利用できるデータプロバイダーのカタログです。キーなしのセッション(ホスト型またはローカル)では Alexandria requires an API key on a team with Alexandria access と表示されます。ホスト型のキーなしセッションでは、Alexandria の検出ツールは表示されません。
セマンティック検出(firecrawl_search):
{
"name": "firecrawl_search",
"arguments": {
"query": "podcast conversations about AI agents",
"sources": ["web", "alexandria"],
"domainTools": true,
"limit": 2
}
}
data.tools は、プロバイダー、機能、説明を含むコンパクトな候補をデフォルトで返します。メタデータとナビゲーションを取得するには toolDetail: "summary" を、入力、応答フィールド、例を含むコントラクトを取得するには toolDetail: "full" を指定します。domainTools: true を指定すると、クエリ内の言及と結果 URL に関連する項目が、同じ配列に追加されます。検出を利用できない場合は warning を確認してください。検索にはクエリが必要で、カタログの走査用フィルターは受け付けません。この検出機能は、フル版と検索専用版のどちらの MCP サーフェスでも利用できます。
段階的開示(firecrawl_find_tools):
{
"name": "firecrawl_find_tools",
"arguments": {
"providers": ["particle"],
"capabilities": ["podcasts/episodes/search"],
"expand": ["options", "response", "examples"],
"limit": 2
}
}
引数なしでカテゴリーを確認し、段階的に絞り込みます。
| 引数 | 結果 |
|---|---|
{} | カテゴリーと簡単な説明 |
{"categories":["podcasts"]} | そのカテゴリーのプロバイダー |
{"categories":["podcasts"],"providers":["particle"]} | 簡潔なツール名と説明 |
{"providers":["particle"],"capabilities":["podcasts/episodes/search"]} | 選択した入力、制約、レスポンス、例の全項目 |
グループを経由する必要はありません。明示的な level では categories、providers、groups、tools を指定でき、明示的な expand では契約のセクションを選択できます。expand: [] を指定すると、capability を選択していても結果は簡潔なままです。広範な全契約を取得するには、level: "tools" と expand: ["options", "response", "examples"] を明示的に指定してください。URL はページを取得せずに、コンテキストに応じた探索を提供します。includeCosts: true を設定しない限り、ツールの結果には capability ごとのクレジット料金は含まれません。後続の nextTool 引数ではこの設定が維持されます。
結果は data.alexandria[0].data に格納されます。項目の nextTool に従うには、その name を arguments とともに呼び出してください。ページの nextTool はページネーションを進めます。既存の next オブジェクトは、firecrawl_scrape から使用できる Alexandria 探索呼び出しのままです。探索にクレジットはかからず、プロバイダーツールが実行されることもありません。実行前に、選択した完全な契約を確認してください。
これらの制御を使用するには、対応する Alexandria API デプロイメントが必要です。
実行(firecrawl_scrape と alexandria): url の代わりに alexandria を渡します(この2つのいずれか一方を指定します。requestId と timeout も指定できます)。単一の呼び出し、または最大10件の呼び出しをまとめた配列を指定できます。
{
"name": "firecrawl_scrape",
"arguments": {
"alexandria": [
{
"provider": "fred",
"capability": "series/observations",
"options": { "series_id": "CPIAUCSL" }
}
]
}
}
戻り値: { success, scrape_id, requestId, data: { alexandria: [...], creditsCost } }。各項目は、結果(provider、capability、data、records、upstreamStatus)または code を含む error のいずれかです。プロバイダーのエラーが発生してもバッチ全体が失敗することはなく、data.creditsCost はリクエストに対して請求された合計額です。Alexandria のエラーボディ(Alexandria へのアクセス権がない場合の403、請求関連のステータスである402/409)は、code とともにインバンドで返されます。
実行時に x-request-id が1つ生成され、成功時も失敗時も返されます。不確かな結果になった場合は、新しいIDを作成せず、同一のペイロードをその requestId で再試行してください。利用可能なクレジットはAPIによって確認されます。
チームが利用規約に同意していない Alexandria プロバイダーを指定すると、何も実行される前に HTTP 403 が返され、次のボディが含まれます。
{
"success": false,
"code": "THIRD_PARTY_DATA_TERMS_REQUIRED",
"error": "An organization admin must accept the benzinga provider's terms (version 2026-09-12-placeholder) before this request can run. Accept them at https://www.firecrawl.dev/app/alexandria/benzinga",
"requiresAction": {
"type": "accept_terms",
"terms": "benzinga",
"version": "2026-09-12-placeholder",
"url": "https://www.firecrawl.dev/app/alexandria/benzinga"
}
}
ツールの結果では、これがエラーとして返され、structuredContent に code、status: 403、requestId、変更されていない requiresAction オブジェクト、および next_actions(human_action_required、続いて retry_same_request)が格納されます。利用規約への同意は法的行為であるため、組織の管理者は MCP 経由ではなく、Firecrawl ダッシュボードで同意します。返された nextTool 呼び出しを使用して、firecrawl_scrape に alexandria: [{provider: "firecrawl", capability: "terms/show", options: {provider: "<provider>"}}] を指定し、プロバイダーの実行とは別に送信して、利用規約を読み取り、ユーザーに提示してください。その後、組織の管理者が requiresAction.url または https://www.firecrawl.dev/app/settings?tab=data-sources で同意します。firecrawl_scrape はそれ以外のすべての terms/* capability を拒否するため、アカウントに変更を加えることはありません。データのリクエストは同意を意味せず、自動同意も不確かな再試行も行われません。
ブロックされた取得にクレジットは請求されません。管理者が同意を確認した後、同一のペイロードと requestId で同じツールを再度呼び出してください。
16. クレジット使用量ツール
このツールを使用するには、認証済みの Firecrawl アカウントが必要です。読み取り専用です。
firecrawl_credit_usageの既定値は{ "view": "current" }で、remainingCredits、planCredits、billingPeriodStart、billingPeriodEndを返します。チームに追加購入分や付与分がある場合、残りのクレジットがプランのクレジット数を上回ることがあります。{ "view": "historical" }を渡すと、startDate、endDate、creditsUsedを含む暦月ごとの期間が返されます。{ "byApiKey": true }も渡すと、履歴ビューが選択され、期間が API キーごとに分割されます。この場合、各行にapiKeyが含まれます。代わりに{ "byEndpoint": true }を渡すと、クレジットを使用したエンドポイント(scrape、search、crawl、map、agent、...)ごとに期間が分割されます。この場合、各行にendpointが含まれます。暦月ごとではなく、UTC の日ごとに期間を分けるには{ "bin": "day" }を渡します。byApiKeyとbyEndpointを併用したり、これらのいずれかを{ "view": "current" }と併用したりしないでください。最新の期間では、endDateが null になる場合があります。Firecrawl API がエンドポイントごとの分割または日ごとの期間にまだ対応していない場合、結果にはnoticeと月ごとの数値が含まれます。
プログラムからの使用(不安定)
このパッケージには、別のランタイムにサーバーを組み込むためのライブラリエントリーポイントも用意されています。不安定なため、API、そのオプション、型はマイナーリリースやパッチリリースを含むすべてのリリースで変更される可能性があります。バージョンは正確に固定してください。
npm install --save-exact firecrawl-mcp zod
この例では、ツールのパラメーターを zod で定義しているため、組み込み先のプロジェクトで独自の依存関係としてインストールします。
import { createFirecrawlMcpServer } from 'firecrawl-mcp/server';
import { z } from 'zod';
const server = createFirecrawlMcpServer({
transport: 'httpStream',
apiKey: process.env.FIRECRAWL_API_KEY,
unstable_hooks: {
registerExtraTools: (registrar) => {
registrar.addTool({
name: 'my_tool',
description: 'An extra tool served next to the Firecrawl tools.',
parameters: z.object({ text: z.string() }),
execute: async ({ text }) => text,
});
},
},
});
await server.start({
transportType: 'httpStream',
httpStream: { port: 3000, host: '127.0.0.1', endpoint: '/mcp', stateless: true },
});
// MCP endpoint: http://127.0.0.1:3000/mcp
host を明示的に設定してください。設定しない場合、サーバーは localhost でリッスンします。Node はこれを単一のアドレス(多くの場合は ::1 のみ)にバインドするため、127.0.0.1 へのリクエストは拒否されます。他のマシンからの接続を受け入れるには、ネットワークアクセス制御または unstable_hooks.authenticate によるチェックを行ったうえで、0.0.0.0 または :: を使用してください。いずれも使用しない場合、ポートに到達できるすべての呼び出し元に、設定済みの apiKey が提供されます。
ライブラリは、指定がない限り Host や Origin をチェックせず、CORS ヘッダーはすべてのオリジンを許可します。同じマシン上のブラウザーからアクセス可能なサーバーでは、httpStream.allowedHosts(例:['localhost', '127.0.0.1', '[::1]'])を渡してください。Host または Origin ヘッダーで別のホストが指定されたリクエストは、その後 403 が返されます(ヘルスパスへの GET と HEAD を除く)。また、CORS ヘッダーには許可されたオリジンが設定されます。コマンドラインは、ローカル HTTP モードでこのリストを設定します。
オプションは CLI の環境変数に対応しています:apiUrl、apiKey、transport、logging、safeMode、fileAccess(local または upload)、requireCredential、searchFeedback、endpointFeedback。unstable_hooks では次を指定できます:
| フック | 目的 |
|---|---|
authenticate(request) | リクエストのセッションを解決します。拒否するには Response をスローします。 |
wrapTool(tool) | 登録済みのすべてのツールをデコレートします。 |
onToolResult(event) | 各ツール呼び出しの開始と結果を監視します。 |
instructions | サーバーの指示、または既定値から指示を選択する関数です。 |
registerExtraTools(registrar, context) | 組み込みツールの後にツールを追加します。 |
outboundRequest(session) | Firecrawl API リクエストごとの認証情報と追加ヘッダーを指定します。 |
beforeKeylessRequest(session, origin) | スローすることで、API キーなしのリクエストを拒否します。 |
toolFilter(name) | 組み込みツールをインスタンスに含めないようにします。 |
configureHttp(app) | HTTP ルートを追加します。 |
oauth.protectedResource | OAuth の保護対象リソースのメタデータを提供します。 |
このサーバーは、公式 MCP TypeScript SDK(@modelcontextprotocol/server)を基盤としています。SDK 独自の型ではなく、firecrawl-mcp/server がエクスポートする型(Session、ToolDefinition、ToolRegistrar、FirecrawlMcpServerHooks など)を使用してください。
このエントリーポイントでは、組み込みツールが使用する recoveryPayload、normalizeHeader、requestOrigin、isRuntimeUserAgent、initializeClientSlug、searchToolBaseFields、searchOutputSchema、structuredCompact などのヘルパーもエクスポートされます。追加のツールやフックで、組み込みの動作に合わせるために使用できます。これらも不安定です。
ロギングシステム
サーバーには、包括的なロギング機能が備わっています。
- 操作のステータスと進捗
- パフォーマンスメトリクス
- レート制限の追跡
- エラーの状況
ログメッセージの例:
[INFO] Firecrawl MCP Server initialized successfully
[INFO] Starting scrape for URL: https://example.com
[ERROR] Rate limit exceeded
エラー処理
サーバーは、堅牢なエラー処理を提供します。
- API のレート制限エラーを MCP クライアントに通知
- 詳細なエラーメッセージ
- ネットワーク障害への耐性
エラーレスポンスの例:
{
"content": [
{
"type": "text",
"text": "Error: Rate limit exceeded"
}
],
"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 - 詳細は LICENSE ファイルをご覧ください
構造化データと大規模な結果
認証済み検索では、ウェブ検索結果、セマンティック検索の Alexandria ツール、ドメイン一致がデフォルトで使用されます。まず、実際の質問から始めてください。直接的なセマンティックツールの検索、選択したコントラクト、または段階的なブラウジング(カテゴリ → プロバイダー → コンパクトなツール → 選択したコントラクト)には、firecrawl_find_tools を使用してください。ツールは firecrawl_scrape で実行します。通常の URL スクレイピングと検索では、プロバイダーツールは自動実行されません。
選択したコントラクトでは、expand: ["options", "response"] を優先し、入力形式が不明な場合に限り例をリクエストしてください。関連する機能をまとめて確認し、返されたコントラクトを再利用してください。
大規模になる可能性のあるワークフローの結果では、実行前にトップレベルの requestId を指定し、保持してください。クライアントがレスポンスを拒否した場合でも、この ID は利用できます。通常の URL スクレイピングでは、代わりに返されたスクレイプ ID を使用します。
大規模なワークフロー結果または通常のスクレイプ結果を保持するには、次のように firecrawl_scrape を呼び出してください。
{
"alexandria": {
"provider": "firecrawl",
"capability": "bash",
"options": {
"requestId": "<source-request-or-scrape-id>",
"command": "ls -lh"
}
}
}
data.alexandria[0].data 内の stdout、stderr、exitCode、workspaceId を読み取ってください。続けて options: {workspaceId, command} を指定し、jq で response.json を確認するか、通常のスクレイプの場合は制限付きのテキストコマンドで document.md を確認します。出力は必要なものに絞ってください。ソースの読み込みは単独の呼び出しにする必要があります。ソースに含まれる ID は、トップレベルの実行リクエスト ID とは異なります。ワークスペースはアイドル状態が 5 分続くと期限切れになります。また、すべての結果が保持されるわけではありません(ZDR と API プロバイダーのワークフローペイロードを含みます)。検索 ID はサポートされていません。
ワークフローのソースでは、response.json に API エンベロープが保持されます。.data.alexandria[].data を選択し、次に選択したコントラクトの response.key を選択してください(空でない場合)。その形式が分かっている場合は、キーを繰り返し確認するのではなく、関連する件数と射影を 1 つの Bash コマンドにまとめてください。
推定トークン数が 20,000 を超える Alexandria の実行成功レスポンス(シリアライズされた UTF-8 バイト数を 4 で割って算出)は、リモート Bash によってバッチ全体にアクセスできることが確認された後、小さな受け渡しレスポンスを返します。保持されたデータを確認するには、nextTool に従ってください。これにより Bash の呼び出しが 1 回追加され、アイドル状態が 5 分続くと期限切れになるワークスペースが開始されます。ペイロード全体は保持されます。確認に失敗した場合は、元のレスポンスがインラインのまま返されます。検索、通常の URL スクレイピング、エラーレスポンス、Firecrawl ユーティリティ呼び出しに変更はありません。この配信上限はクライアントに残っているコンテキストを測定するものではなく、プロセス内の結果キャッシュも追加されません。ローカルファイルシステムツールが利用できる場合は、CLI の出力を保存し、必要なセクションを読み取る方法もあります。
CLI の検出手順に対応する MCP 呼び出しは次のとおりです。
| 意図 | ツール | 引数 |
|---|---|---|
| ウェブ検索+セマンティック検索+ドメインツール | firecrawl_search | {"query":"<user question>"} |
| セマンティックツールのみ | firecrawl_search | {"query":"<user question>","sources":["alexandria"]} |
| カテゴリ | firecrawl_find_tools | {} |
| カテゴリ内のプロバイダー | firecrawl_find_tools | {"categories":["<category-id>"]} |
| コンパクトなプロバイダーツール | firecrawl_find_tools | {"providers":["<provider-id>"]} |
| 選択したコントラクト | firecrawl_find_tools | {"providers":["<provider-id>"],"capabilities":["<capability-id>"]} |
| 実行 | firecrawl_scrape | {"alexandria":{"provider":"<provider-id>","capability":"<capability-id>","options":{"<required-field>":"<value>"}}} |
Find Tools と実行は、フルサーフェスと検索サーフェスの両方で利用できます。検索結果に完全なコントラクトが含まれている場合は、別の検出呼び出しを行わずに再利用してください。追加の結果が必要な場合に限り、返された nextTool のナビゲーションに従ってください。
Alexandria セッションのフィードバック
既存の firecrawl_feedback ツールでは、endpoint: "alexandria" を指定できます。
{
"endpoint": "alexandria",
"rating": "partial",
"requestedWebsite": {
"url": "https://example.com",
"requestedFunctionality": "Find records and download their attachments"
},
"objective": "Compare contract requirements across agencies before bidding",
"rationale": "Found summaries but could not retrieve attachments"
}
省略可能な objective は、セッションの根本的な目標、つまり requestedWebsite に指定された単一のウェブサイトを超えて、エージェントまたはそのユーザーが最終的に達成しようとしていたことです。
この機能では、ジョブ ID を使わず、認証済みの POST /v2/feedback を使用します。チームが直近で Alexandria の検索、検出、または実行を行ってから 20 分以内に送信する必要があります。それ以降のフィードバックは FEEDBACK_WINDOW_EXPIRED で拒否されます。対象となるフィードバックでは、1 クレジットが返金される場合があります。ただし、1 ウェブサイトあたり 1 日 10 クレジット、チームあたり 1 日 100 クレジット(UTC 日)の上限があります。どちらかの上限を超えた場合、フィードバックは記録されますが返金は行われず、レスポンスで websiteCapReached または dailyCapReached が設定されます。省略可能な providerFeedback 配列と capabilityFeedback 配列では、カバレッジの不足や実行上の問題を説明できます。ツールのスキーマには、サポートされる問題の値が記載されています。new_capability_request には requestedFunctionality が必要ですが、(プロバイダーは存在するものの、その機能が不足していることを示す)missing_capability には不要です。既存のフィードバックのオプトアウト設定と認証制御が適用されます。
対象となる Alexandria の実行結果と検出結果には、ツール名と引数のひな形を含む feedbackTool ポインターが含まれます。bash などの Firecrawl 内部の呼び出しでは、また firecrawl_feedback が登録されていない場合(FIRECRAWL_NO_ENDPOINT_FEEDBACK またはキーなしでの起動)は、このポインターは省略されます。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。