Firecrawl
官方使用 Firecrawl 提取網頁資料
你可以用 Firecrawl MCP 做什麼?
- 抓取單一 URL — 透過
firecrawl_scrape從任何已知 URL 取得乾淨的 Markdown 或結構化 JSON,可選擇搭配自訂擷取架構。 - 搜尋網路 — 使用
firecrawl_search從查詢中取得排名結果,可選擇在相同呼叫中一併擷取頁面內容。 - 探索網站 URL — 在決定要抓取哪些內容前,先呼叫
firecrawl_map列出網站上所有已索引的 URL。 - 爬取多個頁面 — 使用
firecrawl_crawl從網站下的多個頁面擷取內容,並以limit和maxDiscoveryDepth限制範圍。 - 與頁面互動 — 使用
firecrawl_interact在即時頁面上驅動點擊、輸入文字與導覽,透過scrapeId繼續操作,並以firecrawl_interact_stop停止。 - 執行自主研究 — 啟動
firecrawl_agent進行多來源研究,回傳結構化 JSON,接著輪詢firecrawl_agent_status取得結果。
文件
Firecrawl MCP Server
一個模型上下文協定(MCP)伺服器,將 Firecrawl 帶入相容於 MCP 的 AI 代理——搜尋、抓取並與即時網路互動,以取得乾淨、可供代理使用的上下文。
特別感謝 @vrknetha、@knacklabs 的初始實作!
功能特色
- 搜尋網路並取得完整頁面內容
- 搜尋專為程式設計代理建立的索引:GitHub issues、已合併的 pull requests、README 與文件
- 將任何 URL 抓取為乾淨、結構化的資料
- 與頁面互動——點擊、導覽與操作
- 透過自主代理進行深度研究
- 自動重試與速率限制
- 支援雲端與自架部署
- 支援 SSE
可以在 MCP.so 的遊樂場 或 Klavis AI 上試用我們的 MCP Server。
何時使用此伺服器
- 當您有已知的 URL 並希望將其內容轉換為 Markdown 或符合您提供之 schema 的 JSON 時,請使用
firecrawl_scrape。 - 當您需要在網站上探索 URL 而不需擷取其內容時,請使用
firecrawl_map。 - 當您需要網站下許多頁面的內容時,請使用
firecrawl_crawl;請設定limit、includePaths/excludePaths或maxDiscoveryDepth來限制範圍。 - 當您從查詢而非 URL 開始,並希望取得排序的網路結果時,請使用
firecrawl_search;如果您也希望在同一次呼叫中取得頁面內容,請加上scrapeOptions(僅搜尋的端點絕不會擷取內容)。 - 當頁面需要點擊、輸入或導覽動作後才能讀取時,請使用
firecrawl_interact——傳入url以開啟新頁面,或傳入scrapeId以繼續您已抓取的頁面。 - 當同一頁面需要依排程定期檢查並產生差異與變更警示,而非僅擷取一次時,請使用
firecrawl_monitor_*工具。 - 當您需要在許多自己的步驟中保持瀏覽器工作階段開啟,並使用自己的重試與終止邏輯時,請考慮其他方案:每次
firecrawl_interact呼叫會執行一個prompt或code回合至完成並回傳控制權——工作階段可透過scrapeId跨呼叫持續存在,並以firecrawl_interact_stop結束,但您無法在單一呼叫中從用戶端逐步互動式驅動它。
當完整設定檔以預設設定註冊時(包含回饋工具,且非以本機無金鑰模式執行),此伺服器會列出 25 個工具。設定 FIRECRAWL_NO_SEARCH_FEEDBACK=1 和/或 FIRECRAWL_NO_ENDPOINT_FEEDBACK=1 會移除對應的回饋工具並減少此數量,本機無金鑰啟動也是如此。對於有工具槽位限制的用戶端:託管無金鑰端點(https://mcp.firecrawl.dev/v2/mcp,無 API 金鑰)僅暴露 3 個——firecrawl_scrape、firecrawl_search、firecrawl_parse——而專用的僅搜尋端點(https://mcp.firecrawl.dev/v2/mcp-search)暴露固定的 6 個唯讀工具。
安裝
託管 MCP(無金鑰免費方案)
無需任何設定即可連線至遠端託管伺服器:
https://mcp.firecrawl.dev/v2/mcp
在無金鑰免費方案中,scrape、search 與 parse 無需 API 金鑰即可運作(有速率限制)。其他工具如 crawl、map 與 agent 仍需要金鑰。
只要使用者可以註冊,請優先使用 OAuth 或 API 金鑰。這將解鎖完整的工具集與更高的限制。
若要進行互動式帳戶連線,請將您的 MCP 用戶端設定為使用此伺服器 URL。這是一個 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 設定指南與代理入門指南以取得用戶端專屬的指示。
僅搜尋端點
一個唯讀、僅搜尋的介面也託管於:
https://mcp.firecrawl.dev/v2/mcp-search
它暴露一組固定的六個唯讀工具:firecrawl_search、firecrawl_developer_search 與四個 firecrawl_research_* 工具。它不會執行任何頁面內容擷取,並擁有自己的 OAuth 身分;上述完整端點保持不變。請參閱 docs/search-profile.md 以取得完整契約。
使用 npx 執行
env FIRECRAWL_API_KEY=fc-YOUR_API_KEY npx -y firecrawl-mcp
手動安裝
npm install -g firecrawl-mcp
在 Cursor 上執行
設定 Cursor 🖥️ 注意:需要 Cursor 0.45.6 以上版本 如需最新的設定指示,請參閱官方 Cursor 文件中有關設定 MCP 伺服器的說明: Cursor MCP Server 設定指南
在 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」
- 輸入以下內容:
- 名稱:「firecrawl-mcp」(或您偏好的名稱)
- 類型:「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 本機模式執行
若要在本機使用 Streamable HTTP 而非預設的 stdio 傳輸來執行伺服器:
env HTTP_STREAMABLE_SERVER=true FIRECRAWL_API_KEY=fc-YOUR_API_KEY npx -y firecrawl-mcp
使用 URL:http://localhost:3000/mcp
透過 Smithery 安裝(舊版)
若要透過 Smithery 自動為 Claude Desktop 安裝 Firecrawl:
npx -y @smithery/cli install @mendableai/mcp-server-firecrawl --client claude
在 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 金鑰)
- 範例:
MCP OAuth(Bearer 存取權杖)
託管的 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 bearer 權杖優先於x-firecrawl-api-key/x-api-key。 - stdio: 使用
FIRECRAWL_OAUTH_TOKEN作為靜態存取權杖,或繼續使用FIRECRAWL_API_KEY作為 API 金鑰。
僅使用存取權杖(fco_…)。重新整理權杖(fcr_…)必須在權杖端點交換,不能傳遞給抓取/搜尋 API。
僅搜尋介面(託管)
在託管模式(CLOUD_SERVICE=true)下,第二個程序內執行個體會服務僅搜尋端點。此隨附服務具有固定的部署契約:nginx 將 /v2/mcp-search 路由至本機連接埠 3001 上的執行個體,而 OAuth 受保護資源識別碼為 https://mcp.firecrawl.dev/v2/mcp-search。
FIRECRAWL_MCP_SEARCH_ENABLED(預設 true)是受支援的營運切換;將其設定為 false 以防止搜尋執行個體啟動。Node 程序也接受 FIRECRAWL_MCP_SEARCH_PORT、FIRECRAWL_MCP_SEARCH_ENDPOINT 與 FIRECRAWL_MCP_SEARCH_RESOURCE_URL 以進行隔離測試。這些覆寫不會重新設定隨附的 nginx 路由或授權伺服器允許清單,且不得在託管部署中獨立使用。
搜尋執行個體要求每個請求(包括 tools/list)都需通過驗證,並拒絕其 audience 與自身資源不符的 OAuth 權杖。
設定範例
雲端 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
- 如果您需要科學論文(生物醫學、生命科學、臨床或 arXiv 文獻):使用 research 工具——它們會搜尋論文摘要與全文。
search搭配categories: ["research"]是不同的東西:那是對一般網路結果的網站篩選器。 - 如果您需要回傳結構化資料的多來源研究、不知道 URL,或答案橫跨多個網站(一個實體及其欄位、一個清單、一個資料集):使用 agent
- 如果您想分析整個網站或區段: 使用 crawl(務必設定限制!)
- 如果您需要互動式瀏覽器自動化(點擊、輸入、導覽):使用 interact 搭配 URL 以開啟新頁面,或當您已抓取頁面或需要更精確的抓取控制時,使用 scrape + interact
快速參考表
| 工具 | 最適合 | 回傳內容 |
|---|---|---|
| scrape | 單一頁面內容 | JSON(建議)或 markdown |
| interact | 與 URL 或已抓取頁面互動 | 執行結果 + URL 模式的 scrapeId |
| map | 探索網站上的 URL | URL[] |
| crawl | 多頁面擷取(有限制) | 內部輪詢後的最終爬取狀態/資料 |
| parse | 檔案與託管上傳參照 | markdown、JSON 或文件輸出 |
| search | 搜尋網路以取得資訊 | results[] |
| developer | 開發者來源的程式設計問題 | 帶有段落的 results[] |
| agent | 多來源研究、未知或眾多網站 | JSON(結構化資料) |
| monitor | 定期頁面檢查 | monitor/check 中繼資料與差異 |
| research | 論文與 GitHub 儲存庫研究 | 研究結果與儲存庫相符項 |
格式選擇指南
使用 scrape 時,請選擇正確的格式:
- JSON 格式(多數情況建議使用): 當你需要頁面中的特定資料時使用。根據你需要擷取的內容定義 schema。這能保持回應精簡,避免上下文視窗溢出。
- Markdown 格式(謹慎使用): 僅在你確實需要完整頁面內容時使用,例如閱讀整篇文章以進行摘要,或分析頁面結構。
可用工具
1. Scrape 工具(firecrawl_scrape)
從單一 URL 擷取內容,並提供進階選項。
最適合用於:
- 單一頁面內容擷取,當你確切知道哪個頁面包含所需資訊時。
不建議用於:
- 從多個頁面擷取內容(對於已知 URL 請重複呼叫 scrape,或使用 map + scrape 先發現 URL,或使用 crawl 取得完整頁面內容)
- 當你不確定哪個頁面包含所需資訊時(請使用 search)
常見錯誤:
- 將 URL 清單傳遞給單一 scrape 呼叫。在 MCP 中每個 URL 應呼叫一次 scrape。如果你特別需要單一批次 API 操作,請在 MCP 之外使用 Firecrawl API 的批次端點。
- 預設使用 markdown 格式(請使用 JSON 格式僅擷取你需要的內容)。
選擇正確的格式:
- JSON 格式(建議優先): 在大多數使用情境下,使用 JSON 格式搭配 schema 僅擷取所需的特定資料。這能保持回應聚焦,並防止上下文視窗溢出。
- 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 以回傳已遮罩個人身分識別資訊的內容。
回傳值:
- 依指定格式回傳 JSON 結構化資料、markdown、品牌資料或其他格式。
2. Map 工具(firecrawl_map)
對網站進行對映,以發現網站上所有已索引的 URL。
最適合用於:
- 在決定要 scrape 哪些內容之前,先發現網站上的 URL
- 尋找網站的特定區塊
不建議用於:
- 當你已經知道需要的特定 URL 時(請使用 scrape)
- 當你需要頁面內容時(請在對映後使用 scrape)
常見錯誤:
- 使用 crawl 來發現 URL,而非使用 map
提示範例:
「列出 example.com 上的所有 URL。」
使用範例:
{
"name": "firecrawl_map",
"arguments": {
"url": "https://example.com"
}
}
回傳值:
- 網站上找到的 URL 陣列
3. Search 工具(firecrawl_search)
搜尋網路,並可選擇從搜尋結果中擷取內容。
最適合用於:
- 在多個網站間尋找特定資訊,當你不知道哪個網站包含所需資訊時。
- 當你需要某個查詢最相關的內容時
不建議用於:
- 當你已經知道要 scrape 哪個網站時(請使用 scrape)
- 當你需要單一網站的全面涵蓋時(請使用 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,
"redactPII": true
}
}
}
設定 highlights 為 true 以要求與查詢相關的重點摘要,或設定為 false 以保留原始搜尋片段。省略此參數則使用 API 的預設行為。
關於科學論文,請參閱 研究工具:它們會搜尋論文摘要和全文,而此處的 categories: ["research"] 則是將一般網路結果篩選為研究相關網站。
回傳值:
- 搜尋結果陣列(可包含已擷取內容),以及一個
id欄位。在使用結果後,將該id傳遞給firecrawl_search_feedback可退還 1 點額度(搜尋花費 2 點)並提升搜尋品質。
提示範例:
「比較各科技公司的遠端工作津貼政策。」
3b. Search 回饋工具(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。這是一個陣列,包含代理程式預期找到但未找到的特定內容片段。每個遺漏主題一個條目——這些會在團隊間彙總,並告訴我們接下來應索引什麼。
每日退還上限(每個團隊、每個 UTC 日,預設 100 點額度)。 一旦團隊的 creditsRefundedToday 達到 dailyRefundCap,後續提交仍會記錄回饋,但不再退還額度。回應會設定 dailyCapReached: true。當代理程式看到該旗標時,應在當日剩餘的 UTC 時間內停止呼叫此工具。
使用範例:
{
"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。
3c. 一般回饋工具(firecrawl_feedback)
透過 /v2/feedback 為已完成的 v2 端點任務傳送結構化回饋。
請用於對 scrape、parse、map 或 search 任務的端點層級回饋。若特別針對搜尋結果品質,建議優先使用 firecrawl_search_feedback,因為它包含搜尋專屬的指引。
請保持回饋簡潔:使用問題代碼、標籤、簡短註記、URL、頁碼和小型中繼資料物件。請勿包含原始 scrape/parse 輸出。
退出機制: 在啟動 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?, alreadySubmitted?, warning? }JSON。
4. Crawl 工具(firecrawl_crawl)
啟動一個 crawl 任務,輪詢直到達到終止狀態,並回傳最終的 crawl 狀態/資料。
最適合用於:
- 從多個相關頁面擷取內容,當你需要全面涵蓋時。
不建議用於:
- 從單一頁面擷取內容(請使用 scrape)
- 當 token 限制是考量因素時(請使用 map + scrape 以更精確控制)
- 當你需要快速結果時(crawling 可能較慢)
警告: Crawl 回應可能非常龐大,並可能超過 token 限制。請限制 crawl 深度和頁面數量,或使用 map + scrape 以更精確控制。
常見錯誤:
- 將 limit 或 maxDiscoveryDepth 設定過高(導致 token 溢出)
- 對單一頁面使用 crawl(請改用 scrape)
提示範例:
「取得 example.com/blog 前兩層的所有部落格文章。」
使用範例:
{
"name": "firecrawl_crawl",
"arguments": {
"url": "https://example.com/blog/*",
"maxDiscoveryDepth": 2,
"limit": 100,
"allowExternalLinks": false,
"deduplicateSimilarURLs": true
}
}
回傳值:
- 內部輪詢後的最終 crawl 狀態和資料,包括
id、status、completed、total、creditsUsed、expiresAt、next和data。若之後需要重新檢查任務,請將回傳的id搭配firecrawl_check_crawl_status使用。
5. 檢查 Crawl 狀態(firecrawl_check_crawl_status)
依 ID 檢查現有 crawl 任務的狀態和結果。
{
"name": "firecrawl_check_crawl_status",
"arguments": {
"id": "550e8400-e29b-41d4-a716-446655440000"
}
}
回傳值:
- 回應包含 crawl 任務的狀態:
6. Parse 工具(firecrawl_parse)
使用 Firecrawl 的 /v2/parse 端點解析本機檔案或託管的上傳參考。
最適合用於: PDF、Word 文件、試算表、HTML 檔案,以及其他需要 markdown 或結構化 JSON 輸出的文件。託管 MCP 支援兩步驟的上傳參考流程;本機直接讀取檔案則需要自架的 FIRECRAWL_API_URL。
不建議用於: 遠端 URL(請使用 scrape)、單一呼叫處理多個檔案(每個檔案請呼叫一次 parse)、或僅限瀏覽器的操作(如截圖和點擊)。
託管 MCP 流程: 託管 MCP 無法直接讀取呼叫端的檔案系統。請以 filePath 呼叫 firecrawl_parse 以取得短期有效的上傳指令和 nextToolCall,在本機上傳檔案,然後以回傳的 uploadRef 再次呼叫 firecrawl_parse。鑄造託管上傳 URL 需要 Firecrawl 驗證或免金鑰資格。在本機 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 的結構化資料
若要從已知頁面取得結構化資料,請對每個 URL 呼叫一次 firecrawl_scrape,並搭配 formats: ["json"]。將擷取提示和 JSON schema 放在 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. Agent 工具(firecrawl_agent)
自主網路研究代理程式,當你不知道 URL 或答案橫跨多個網站時,可回傳結構化資料。描述你需要的欄位,可選擇傳遞 JSON schema 和種子 URL,代理程式會搜尋、導覽、閱讀頁面,並回傳跨來源彙整的 JSON。適用於實體及其欄位、清單和資料集,以及需要導覽才能到達資料的頁面。若為單一已知 URL,請改用搭配 JSON 格式的 firecrawl_scrape。
運作方式:
代理程式會自主執行網路搜尋、跟隨連結、閱讀頁面並收集資料。此操作為非同步執行——它會立即回傳任務 ID,你輪詢 firecrawl_agent_status 以檢查完成狀態並取得結果。
非同步工作流程:
- 以你的提示/schema 呼叫
firecrawl_agent→ 回傳任務 ID - 在代理程式研究期間執行其他工作(複雜查詢可能需要數分鐘)
- 以任務 ID 輪詢
firecrawl_agent_status以檢查進度 - 當狀態為「completed」時,回應包含已擷取的資料
最適合用於:
- 你不知道確切 URL 的複雜研究任務
- 多來源資料收集
- 尋找分散在網路各處的資訊
- 你可以在等待結果時執行其他工作的任務
不建議用於:
- 你知道 URL 的簡單單頁擷取(請使用 JSON 格式的 scrape——更快且更便宜)
參數:
prompt:你所需資料的自然語言描述(必填,最多 10,000 個字元)urls:可選的 URL 陣列,用於將代理程式聚焦在特定頁面schema:可選的 JSON schema,用於結構化輸出
提示範例:
「找出 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"
}
}
回傳值:
- 用於狀態檢查的任務 ID。使用
firecrawl_agent_status輪詢結果。
9. 檢查 Agent 狀態(firecrawl_agent_status)
檢查代理程式任務的狀態,並在完成時取得結果。啟動代理程式後,請使用此工具輪詢結果。
輪詢模式: 複雜查詢的代理程式研究可能需要數分鐘。請定期輪詢此端點(例如每 10-30 秒),直到狀態為「completed」或「failed」。
{
"name": "firecrawl_agent_status",
"arguments": {
"id": "550e8400-e29b-41d4-a716-446655440000"
}
}
可能的狀態:
processing:代理程式仍在研究中——請稍後再檢查completed:研究已完成——回應包含已擷取的資料failed:發生錯誤
10. Interact 工具(firecrawl_interact)
與新的 URL 互動,或與已由 firecrawl_scrape 開啟的頁面互動。
最適合: 點擊、輸入、導覽,以及從動態頁面提取狀態,無需還原已棄用的瀏覽器工具。
使用選項:
- 傳入
url以在一次 MCP 呼叫中抓取並開啟頁面進行互動。 - 傳入
scrapeId以繼續與已抓取的頁面互動。 - 僅傳入
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. 停止互動工具(firecrawl_interact_stop)
當您完成互動後,停止已抓取頁面的互動工作階段。
{
"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:擷取單一論文 ID(arXiv、PMC、PMID 或 DOI)的標準元資料。firecrawl_research_related_papers:透過引用圖譜從一或多篇錨點論文進行擴展。firecrawl_research_read_paper:閱讀特定論文的全文段落。
最適合: 文獻回顧、論文查詢和儲存庫探索工作流程,當代理程式需要聚焦的研究表面而非一般網頁抓取時。
firecrawl_search 搭配 categories: ["research"] 是不同面向:它將一般網頁結果篩選為研究相關網站,並回傳頁面片段而非論文記錄。當問題本身關於文獻時請使用這些工具,並傳入同一問題的多個不同表述方式——它們會呈現出與單一查詢不同的論文。
13. 監控工具(firecrawl_monitor_*)
建立和管理定期頁面監控。監控器會執行排定的抓取或爬蟲,將每次結果與上次保留的快照進行比對,並可透過 Webhook 或電子郵件通知。
最適合:
- 長期觀察單一頁面或少數頁面
- 使用平實英文的目標來提醒有意義的變更
- 追蹤檢查歷史和頁面層級的差異
建議的建立模式:
使用 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:取得單一監控器。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 issues、已合併的 pull requests、儲存庫 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 格式的相符段落。
firecrawl_search 搭配 categories: ["developer"] 會在網頁結果旁搜尋相同索引。當您想要相符段落、skills 篩選條件,或回應中不含網頁結果時,請改用此工具。僅搜尋端點同時公開兩種工具,且相同的選擇也適用於該處。
日誌系統
伺服器包含全面的日誌記錄:
- 操作狀態與進度
- 效能指標
- 速率限制追蹤
- 錯誤狀況
日誌訊息範例:
[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
貢獻
- Fork 儲存庫
- 建立您的功能分支
- 執行測試:
npm test - 提交 pull request
感謝貢獻者
感謝 @vrknetha、@cawstudios 的初始實作!
感謝 MCP.so 和 Klavis AI 的託管,以及 @gstarwd、@xiangkaiz 和 @zihaolin96 整合我們的伺服器。
授權
MIT 授權條款——詳情請參閱 LICENSE 檔案