
AIエージェント向けにWebスクレイピング、クローリング、検索機能を提供するMCPサーバー。統一されたAPIを通じて構造化データ抽出、インタラクティブブラウジング、ディープリサーチをサポートします。
Model Context Protocol (MCP) サーバーであり、Firecrawl を MCP 互換の AI エージェントに導入します。ライブウェブを検索、スクレイピング、操作して、クリーンでエージェント対応のコンテキストを提供します。
初期実装を提供してくれた @vrknetha と @knacklabs に多大なる感謝を捧げます!
MCP.so のプレイグラウンド または Klavis AI で、当社の MCP サーバーを試してみてください。
リモートのホステッドサーバーにセットアップ不要で接続:``` https://mcp.firecrawl.dev/v2/mcp
キーレス無料利用枠では、`scrape`、`search`、`interact` は API キーなしで動作します(レート制限あり)。`crawl`、`map`、`agent`、`extract` などの他のツールは依然としてキーが必要です。
人間がサインアップできる場合は、API キーまたは OAuth を優先してください。これにより、ツールセット全体とより高い制限が解放されます。キーを使用する場合は、次を使用します:```
https://mcp.firecrawl.dev/{FIRECRAWL_API_KEY}/v2/mcp
設定の詳細については、MCPサーバードキュメントとエージェントオンボーディングガイドを参照してください。
env FIRECRAWL_API_KEY=fc-YOUR_API_KEY npx -y firecrawl-mcp
### 手動インストール```bash
npm install -g firecrawl-mcp
Cursorの設定 🖥️ 注: Cursorバージョン0.45.6以降が必要です。 最新の設定手順については、MCPサーバーの設定に関する公式Cursorドキュメントを参照してください: Cursor MCPサーバー設定ガイド
Cursor v0.48.6でFirecrawl MCPを設定する手順
To configure Firecrawl MCP in Cursor v0.45.6
env FIRECRAWL_API_KEY=your-api-key npx -y firecrawl-mcpWindows を使用していて問題が発生する場合は、
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 スクレイピングのニーズを明示的に指定して要求することもできます。Composer には Command+L(Mac)でアクセスし、送信ボタンの隣の「Agent」を選択してクエリを入力します。
以下を ./codeium/windsurf/model_config.json に追加してください:```json
{
"mcpServers": {
"mcp-server-firecrawl": {
"command": "npx",
"args": ["-y", "firecrawl-mcp"],
"env": {
"FIRECRAWL_API_KEY": "YOUR_API_KEY"
}
}
}
}
### Streamable HTTP Local Mode での実行
デフォルトの stdio トランスポートの代わりに、Streamable HTTP をローカルで使用してサーバーを実行するには:```bash
env HTTP_STREAMABLE_SERVER=true FIRECRAWL_API_KEY=fc-YOUR_API_KEY npx -y firecrawl-mcp
次のURLを使用してください:http://localhost:3000/mcp
Smithery を介して Claude Desktop 用の Firecrawl を自動的にインストールするには:Smithery:```bash npx -y @smithery/cli install @mendableai/mcp-server-firecrawl --client claude
### VS Code での実行
ワンクリックインストールの場合は、以下のインストールボタンのいずれかをクリックしてください...
[](https://insiders.vscode.dev/redirect/mcp/install?name=firecrawl&inputs=%5B%7B%22type%22%3A%22promptString%22%2C%22id%22%3A%22apiKey%22%2C%22description%22%3A%22Firecrawl%20API%20Key%22%2C%22password%22%3Atrue%7D%5D&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22firecrawl-mcp%22%5D%2C%22env%22%3A%7B%22FIRECRAWL_API_KEY%22%3A%22%24%7Binput%3AapiKey%7D%22%7D%7D) [](https://insiders.vscode.dev/redirect/mcp/install?name=firecrawl&inputs=%5B%7B%22type%22%3A%22promptString%22%2C%22id%22%3A%22apiKey%22%2C%22description%22%3A%22Firecrawl%20API%20Key%22%2C%22password%22%3Atrue%7D%5D&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22firecrawl-mcp%22%5D%2C%22env%22%3A%7B%22FIRECRAWL_API_KEY%22%3A%22%24%7Binput%3AapiKey%7D%22%7D%7D&quality=insiders)
手動インストールの場合は、以下のJSONブロックをVS Codeのユーザー設定(JSON)ファイルに追加してください。これは、`Ctrl + Shift + P` を押して `Preferences: Open User Settings (JSON)` と入力することで行えます。```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 というファイルに追加することもできます。これにより、他のユーザーと設定を共有できます。```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キーが必要)
#### MCP OAuth(Bearerアクセストークン)
ホスト型Firecrawlは、[firecrawl.dev](https://firecrawl.dev)の認可サーバーを通じてOAuth **アクセストークン**(`fco_…`)を発行できます。このMCPサーバーは、解決された認証情報をFirecrawl APIに`Authorization: Bearer …`として転送します。
- **HTTPストリームトランスポート**(`CLOUD_SERVICE=true`、`HTTP_STREAMABLE_SERVER=true`、または`SSE_LOCAL=true`): クライアントはMCPリクエストで`Authorization: Bearer <fco_access_token>`を送信する必要があります。OAuth Bearerトークンは、両方が存在する場合、`x-firecrawl-api-key` / `x-api-key`よりも優先されます。
- **stdio:** 静的アクセストークンには`FIRECRAWL_OAUTH_TOKEN`を使用するか、APIキーには引き続き`FIRECRAWL_API_KEY`を使用します。
**アクセス**トークン(`fco_…`)のみを使用してください。リフレッシュトークン(`fcr_…`)はトークンエンドポイントで交換する必要があり、スクレイプ/検索APIに渡してはなりません。
### 設定例
クラウドAPIを使用する場合:```bash
export FIRECRAWL_API_KEY=your-api-key
自己ホスト型インスタンスの場合:```bash
export FIRECRAWL_API_URL=https://firecrawl.your-domain.com
export FIRECRAWL_API_KEY=your-api-key # If your instance requires auth
### Claude Desktopでの使用方法
これをあなたの`claude_desktop_config.json`に追加してください:```json
{
"mcpServers": {
"mcp-server-firecrawl": {
"command": "npx",
"args": ["-y", "firecrawl-mcp"],
"env": {
"FIRECRAWL_API_KEY": "YOUR_API_KEY_HERE"
}
}
}
}
このガイドを使って、タスクに適したツールを選択してください。
scrape を使用する際は、適切な形式を選択してください。
firecrawl_scrape)高度なオプションを備えた単一URLからのスクレイピング。
最適な用途:
推奨しない用途:
よくある間違い:
適切な形式の選択:
プロンプト例:
"https://example.com/product から製品詳細を取得してください。"
使用例(JSON形式 - 推奨):```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"] } } ] } }
**使用例(マークダウン形式 - 全文が必要な場合):**```json
{
"name": "firecrawl_scrape",
"arguments": {
"url": "https://example.com/article",
"formats": ["markdown"],
"onlyMainContent": true
}
}
使用例 (ブランディング形式 - ブランドアイデンティティの抽出):```json { "name": "firecrawl_scrape", "arguments": { "url": "https://example.com", "formats": ["branding"] } }
**ブランディング形式:** デザイン分析やスタイル再現のために包括的なブランドID(色、フォント、タイポグラフィ、スペーシング、ロゴ、UIコンポーネント)を抽出します。
**プライバシー:** `redactPII: true` を設定すると、個人を特定できる情報が編集されたコンテンツが返されます。
**戻り値:**
- JSON構造化データ、マークダウン、ブランディングプロファイル、または指定されたその他の形式。
### 2. マップツール (`firecrawl_map`)
ウェブサイトをマッピングして、サイト上のすべてのインデックス付きURLを検出します。
**最適な用途:**
- スクレイピングする前にウェブサイト上のURLを発見する
- ウェブサイトの特定のセクションを見つける
**推奨しない場合:**
- 必要な特定のURLがすでにわかっている場合(スクレイピングを使用)
- ページのコンテンツが必要な場合(マッピング後にスクレイピングを使用)
**よくある間違い:**
- URLの発見にクロールを使用する代わりにマップを使用する
**プロンプト例:**
> "example.com 上のすべてのURLをリスト表示してください。"
**使用例:**```json
{
"name": "firecrawl_map",
"arguments": {
"url": "https://example.com"
}
}
戻り値:
firecrawl_search)ウェブを検索し、必要に応じて検索結果からコンテンツを抽出します。
最適な用途:
推奨しない用途:
よくある間違い:
使用例:```json { "name": "firecrawl_search", "arguments": { "query": "latest AI research papers 2023", "limit": 5, "lang": "en", "country": "us", "scrapeOptions": { "formats": ["markdown"], "onlyMainContent": true, "redactPII": true } } }
**戻り値:**
- 検索結果の配列(オプションでスクレイピングされたコンテンツを含む)と、`id` フィールド。結果を使用した後、その `id` を `firecrawl_search_feedback` に渡して、1クレジットを返金し(検索コストは2)、検索品質を向上させます。
**プロンプト例:**
> "2023年に発表されたAIに関する最新の研究論文を見つけてください。"
### 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つのエントリがあります。これらはチーム間で集約され、次に何をインデックスすべきかを示します。
**毎日の返金上限(チームごと、UTC日ごと、デフォルト100クレジット)。** チームの `creditsRefundedToday` が `dailyRefundCap` に達すると、それ以降の送信はフィードバックを記録しますが、クレジットは返金されません。応答は `dailyCapReached: true` を設定します。エージェントはこのフラグを確認したら、そのUTC日の残りの間、このツールの呼び出しを停止する必要があります。
**使用例:**```json
{
"name": "firecrawl_search_feedback",
"arguments": {
"searchId": "0193f6c5-1234-7890-abcd-1234567890ab",
"rating": "good",
"valuableSources": [
{
"url": "https://docs.firecrawl.dev/features/search",
"reason": "Most up-to-date description of /search."
}
],
"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.firecrawl_feedback)完了したv2エンドポイントジョブに対して/v2/feedbackを介して構造化フィードバックを送信します。
scrape、parse、map、またはsearchジョブに対するエンドポイントレベルのフィードバックに使用します。
特に検索結果の品質については、firecrawl_search_feedbackを使用してください。検索固有のガイダンスが含まれているためです。
フィードバックは簡潔に保ってください:問題コード、タグ、短いメモ、URL、ページ番号、小さなメタデータオブジェクトを使用してください。生のスクレイプ/パース出力は含めないでください。
オプトアウト: MCPサーバーの起動時に環境でFIRECRAWL_NO_ENDPOINT_FEEDBACK=1(またはFIRECRAWL_DISABLE_ENDPOINT_FEEDBACK=1)を設定してください。firecrawl_feedbackツールは登録されないため、エージェントはそれを呼び出すことができません。
使用例:```json { "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?, alreadySubmitted?, warning? }` JSON。
### 4. クロールツール(`firecrawl_crawl`)
クロールジョブを開始し、終了状態になるまでポーリングし、最終的なクロール状態/データを返します。
**最適な用途:**
- 複数の関連ページからコンテンツを抽出する場合、包括的なカバレッジが必要なとき。
**非推奨な用途:**
- 単一ページからコンテンツを抽出する場合(スクレイプを使用)
- トークン制限が懸念される場合(より細かい制御のためにマップ + スクレイプを使用)
- 高速な結果が必要な場合(クロールは遅い可能性があります)
**警告:** クロールの応答は非常に大きくなる可能性があり、トークン制限を超える場合があります。クロールの深さとページ数を制限するか、より細かい制御のためにマップ + スクレイプを使用してください。
**よくある間違い:**
- リミットや maxDiscoveryDepth を高く設定しすぎる(トークンオーバーフローの原因)
- 単一ページに対してクロールを使用する(代わりにスクレイプを使用)
**プロンプト例:**
> "example.com/blog の最初の2階層からすべてのブログ投稿を取得する。"
**使用例:**```json
{
"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 と共に使用します。firecrawl_check_crawl_status)既存のクロールジョブのステータスと結果をIDで確認します。```json { "name": "firecrawl_check_crawl_status", "arguments": { "id": "550e8400-e29b-41d4-a716-446655440000" } }
**戻り値:**
- クロールジョブのステータスを含むレスポンス
### 6. パースツール (`firecrawl_parse`)
Firecrawlの`/v2/parse`エンドポイントを使用してローカルファイルまたはホストされたアップロード参照をパースします。
**最適な用途:** PDF、Word文書、スプレッドシート、HTMLファイル、およびマークダウンや構造化JSON出力を必要とするその他のドキュメント。ホスト型MCPは2ステップのアップロード参照フローをサポートしています。ローカルでの直接ファイル読み取りには、自己ホスト型の`FIRECRAWL_API_URL`が必要です。
**推奨しない用途:** リモートURL(scrapeを使用)、1回の呼び出しで複数のファイル(ファイルごとにparseを呼び出す)、スクリーンショットやクリックなどのブラウザのみのアクション。
**ホスト型MCPのフロー:** ホスト型MCPは呼び出し元のファイルシステムを直接読み取ることができません。`firecrawl_parse`を`filePath`付きで呼び出して、有効期限の短いアップロードコマンドと`nextToolCall`を受け取り、ローカルでファイルをアップロードしてから、返された`uploadRef`を使用して再度`firecrawl_parse`を呼び出します。ホスト型アップロードURLの発行にはFirecrawlの認証またはキーレス資格が必要です。ローカルの`npx firecrawl-mcp`モードでは、直接ファイルパースには現在自己ホスト型のFirecrawl APIを指す`FIRECRAWL_API_URL`が必要です。単なるクラウドAPIキーのみのローカルサーバーでは、このツールを介してファイルを読み取りおよびアップロードすることはできません。
**使用例:**```json
{
"name": "firecrawl_parse",
"arguments": {
"filePath": "/absolute/path/to/document.pdf",
"formats": ["markdown"],
"parsers": ["pdf"],
"zeroDataRetention": true
}
}
戻り値: 解析されたドキュメントコンテンツ、または nextToolCall を使用したホストアップロード手順。
firecrawl_extract)LLM機能を使用してウェブページから構造化情報を抽出します。クラウドAIとセルフホストLLM抽出の両方をサポートします。
最適な用途:
推奨しない用途:
引数:
urls: 情報を抽出するURLの配列prompt: LLM抽出のためのカスタムプロンプトsystemPrompt: LLMをガイドするシステムプロンプトschema: 構造化データ抽出のためのJSONスキーマallowExternalLinks: 外部リンクからの抽出を許可enableWebSearch: 追加コンテキストのためのウェブ検索を有効化includeSubdomains: 抽出にサブドメインを含めるセルフホストインスタンスを使用する場合、抽出は設定されたLLMを使用します。クラウドAPIの場合は、Firecrawlの管理LLMサービスを使用します。
プロンプト例:
これらの製品ページから製品名、価格、説明を抽出してください。
使用例:```json { "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 } }
**戻り値:**
- スキーマで定義された抽出済み構造化データ```json
{
"content": [
{
"type": "text",
"text": {
"name": "Example Product",
"price": 99.99,
"description": "This is an example product description"
}
}
],
"isError": false
}
firecrawl_agent)自律型Webリサーチエージェント。これは、あなたのクエリに基づいてインターネットを独立して閲覧し、情報を検索し、ページを移動し、構造化データを抽出する独立したAIエージェント層です。
仕組み:
エージェントはWeb検索を実行し、リンクをたどり、ページを読み込み、データを自律的に収集します。これは非同期で実行されます。即座にジョブIDを返し、完了時に firecrawl_agent_status をポーリングして結果を取得します。
非同期ワークフロー:
firecrawl_agent をプロンプト/スキーマとともに呼び出す → ジョブIDを返すfirecrawl_agent_status をポーリングして進捗を確認する最適な用途:
推奨しない用途:
引数:
prompt: 取得したいデータの自然言語による説明(必須、最大10,000文字)urls: エージェントを特定のページに集中させるためのURL配列(オプション)schema: 構造化出力のためのJSONスキーマ(オプション)プロンプト例:
"Firecrawlの創設者とその経歴を調べて"
使用例(エージェントを起動し、その後結果をポーリング):```json { "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付き - エージェントが特定のページに焦点を当てる):**```json
{
"name": "firecrawl_agent",
"arguments": {
"urls": ["https://docs.firecrawl.dev", "https://firecrawl.dev/pricing"],
"prompt": "Compare the features and pricing information from these pages"
}
}
戻り値:
firecrawl_agent_status を使用します。firecrawl_agent_status)エージェントジョブのステータスを確認し、完了したら結果を取得します。エージェントを起動した後に結果をポーリングするために使用します。
ポーリングパターン: エージェントの調査は複雑なクエリの場合、数分かかることがあります。ステータスが「completed」または「failed」になるまで、このエンドポイントを定期的(例:10~30秒ごと)にポーリングしてください。```json { "name": "firecrawl_agent_status", "arguments": { "id": "550e8400-e29b-41d4-a716-446655440000" } }
**可能なステータス:**
- `processing`: エージェントが調査中 - 後で確認してください
- `completed`: 調査完了 - レスポンスに抽出データが含まれます
- `failed`: エラーが発生しました
### 10. Interact Tool (`firecrawl_interact`)
新しいURL、または `firecrawl_scrape` で既に開かれたページと対話します。
**最適な用途:** 非推奨のブラウザツールを復元することなく、動的ページでのクリック、入力、ナビゲーション、状態の抽出。
**使用オプション:**
- `url` を渡してスクレイピングし、1回のMCP呼び出しで対話用ページを開く。
- `scrapeId` を渡して、既存のスクレイピング済みページとの対話を続ける。
- `url` または `scrapeId` のいずれか一方に加え、`prompt` または `code` のいずれかを正確に渡す。
**使用例:**```json
{
"name": "firecrawl_interact",
"arguments": {
"url": "https://example.com",
"prompt": "Click the pricing link and summarize the visible plans"
}
}
戻り値: インタラクション結果と、URLモードの場合はフォローアップまたはクリーンアップのために派生した scrapeId。
firecrawl_interact_stop)スクレイピングしたページのインタラクトセッションを、操作が完了したら停止します。```json { "name": "firecrawl_interact_stop", "arguments": { "scrapeId": "scrape-id-here" } }
### 12. 研究ツール (`firecrawl_research_*`)
研究MCPツールを通じて論文やGitHubリポジトリを検索・調査します。
**利用可能な研究ツール:**
- `firecrawl_research_search_papers`: 研究論文を検索します。
- `firecrawl_research_inspect_paper`: 1件の論文を詳しく調べます。
- `firecrawl_research_related_papers`: 関連論文を見つけます。
- `firecrawl_research_read_paper`: 論文の内容を読みます。
- `firecrawl_research_search_github`: GitHubリポジトリを検索します。
**最適な用途:** 文献レビュー、論文検索、リポジトリ発見のワークフローにおいて、エージェントが汎用的なウェブスクレイピングではなく焦点を絞った研究表面を必要とする場合。
### 13. 監視ツール (`firecrawl_monitor_*`)
定期的なページ監視を作成・管理します。監視はスケジュールされたスクレイピングまたはクロールを実行し、各結果を最後に保持したスナップショットと比較し、ウェブフックまたはメールで通知できます。
**最適な用途:**
- 1ページまたは数ページを経時的に監視する
- 平易な英語の目標(goal)を使用して意味のある変更をアラートする
- チェック履歴とページレベルの差分を追跡する
**推奨される作成パターン:**
`page` または `pages` に加えて `goal` を使用します。MCPサーバーは30分間隔のスケジュールで監視リクエストを構築し、APIが自動的に意味のある変更の判断を有効にします。
`goal` が設定されている場合、意味のある変更の判断は自動的に実行されます。ページウェブフックは `monitor.page` イベントで `isMeaningful` と `judgment` を公開します。
目標(goal)は簡潔で2~3文の監視指示として記述します。アラートをトリガーすべき内容を述べ、ユーザーが与えた範囲を保持し、リクエストから明らかな場合にのみ意図固有の除外事項を含めます。空白、書式のみの変更、リクエストID、トラッキングパラメータ、汎用的なメタデータ、無関係なページクロームなどの一般的なノイズは既に判断機能によって処理されるため、すべての目標に繰り返し記述しないでください。ユーザーが曖昧な場合は目標を広く保ちます。ユーザーが広範な監視や「どんな変更でも」を求めた場合は、それを保持します。ユーザーが何かを気にしないと言った場合は、それを明示的に含めます。```json
{
"name": "firecrawl_monitor_create",
"arguments": {
"page": "https://example.com/pricing",
"goal": "Alert when pricing, packaging, or launch messaging changes."
}
}
Webhookを使用した複数ページ:```json { "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`を渡します。```json
{
"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、を含みます。サーバーは包括的なログ記録を提供します:
ログメッセージの例:``` [INFO] Firecrawl MCP Server initialized successfully [INFO] Starting scrape for URL: https://example.com [ERROR] Rate limit exceeded
## エラーハンドリング
サーバーは堅牢なエラーハンドリングを提供します:
- APIレート制限エラーがMCPクライアントに通知されます
- 詳細なエラーメッセージ
- ネットワークの回復力
エラーレスポンスの例:```json
{
"content": [
{
"type": "text",
"text": "Error: Rate limit exceeded"
}
],
"isError": true
}
npm install
npm run build
npm test
### コントリビューション
1. リポジトリをフォークする
2. 機能ブランチを作成する
3. テストを実行する: `npm test`
4. プルリクエストを送信する
### コントリビューターへの感謝
初期実装にご協力いただいた [@vrknetha](https://github.com/vrknetha)、[@cawstudios](https://caw.tech) に感謝します!
ホスティングを提供してくれた MCP.so と Klavis AI、そしてサーバーを統合してくれた [@gstarwd](https://github.com/gstarwd)、[@xiangkaiz](https://github.com/xiangkaiz)、[@zihaolin96](https://github.com/zihaolin96) に感謝します。
## ライセンス
MIT ライセンス - 詳細は LICENSE ファイルを参照してください。
| ツール | 最適な用途 | 返り値 |
|---|
| scrape | 単一ページのコンテンツ | JSON(推奨)またはマークダウン |
| interact | URLまたはスクレイプ済みページとの対話 | 実行結果 + URLモード用のscrapeId |
| map | サイト上のURL発見 | URL[] |
| crawl | 複数ページの抽出(制限あり) | 内部ポーリング後の最終クロールステータス/データ |
| parse | ファイルおよびホスティングされたアップロード参照 | マークダウン、JSON、またはドキュメント出力 |
| extract | URLからの構造化抽出 | JSON構造化データ |
| search | 情報のウェブ検索 | results[] |
| agent | 複雑なマルチソース調査 | JSON(構造化データ) |
| monitor | 定期的なページチェック | モニター/チェックのメタデータと差分 |
| research | 論文およびGitHubリポジトリの調査 | 調査結果とリポジトリ一致 |
judgment.meaningfulChanges