Firecrawl MCP
ทางการเพิ่มความสามารถในการขูดข้อมูลเว็บและการค้นหาอันทรงพลังให้กับไคลเอนต์ LLM เช่น Cursor และ Claude
คุณทำอะไรได้บ้างด้วย Firecrawl MCP?
- Scrape any URL — ใช้
firecrawl_scrapeเพื่อดึงเนื้อหาของหน้าเว็บเป็น markdown หรือ JSON ที่มีโครงสร้างตรงตาม schema ที่คุณระบุ - Search the web — ใช้
firecrawl_searchเพื่อรับผลลัพธ์ที่จัดอันดับจากคำค้นหา โดยสามารถดึงเนื้อหาของหน้าเว็บได้ในคำขอเดียวกัน - Discover site URLs — ใช้
firecrawl_mapเพื่อแสดงรายการ URL ทั้งหมดที่ถูกจัดทำดัชนีบนเว็บไซต์โดยไม่ต้องดึงเนื้อหา - Crawl multiple pages — ใช้
firecrawl_crawlเพื่อดึงเนื้อหาจากหลายหน้าในเว็บไซต์ โดยจำกัดด้วยlimitและmaxDiscoveryDepth - Interact with pages — ใช้
firecrawl_interactเพื่อคลิก พิมพ์ หรือนำทางบนหน้าเว็บก่อนอ่านเนื้อหา จากนั้นดำเนินการต่อผ่านscrapeId - Run autonomous research — ใช้
firecrawl_agentเพื่อรวบรวมข้อมูลที่มีโครงสร้างจากหลายแหล่งเมื่อคุณไม่ทราบ URL ที่แน่นอน
เอกสาร
Firecrawl MCP Server
เซิร์ฟเวอร์ Model Context Protocol (MCP) ที่นำ Firecrawl มาสู่เอเจนต์ AI ที่รองรับ MCP — ค้นหา, ขูดข้อมูล, และโต้ตอบกับเว็บสดเพื่อให้ได้บริบทที่สะอาดและพร้อมใช้งานสำหรับเอเจนต์
ขอขอบคุณ @vrknetha, @knacklabs สำหรับการนำไปใช้งานครั้งแรก!
คุณสมบัติ
- ค้นหาเว็บและรับเนื้อหาทั้งหน้าของหน้าเว็บ
- ค้นหาดัชนีที่สร้างขึ้นสำหรับเอเจนต์เขียนโค้ด: GitHub issues, pull requests ที่รวมแล้ว, READMEs, และเอกสาร
- ขูดข้อมูล URL ใด ๆ ให้เป็นข้อมูลที่มีโครงสร้างที่สะอาด
- โต้ตอบกับหน้าเว็บ — คลิก, นำทาง, และดำเนินการ
- ค้นคว้าเชิงลึกด้วยเอเจนต์อัตโนมัติ
- การลองใหม่และการจำกัดอัตราอัตโนมัติ
- รองรับคลาวด์และโฮสต์ด้วยตนเอง
- รองรับ SSE
ทดลองเล่นกับ MCP Server ของเราบน playground ของ MCP.so หรือบน Klavis AI
เมื่อใดควรใช้เซิร์ฟเวอร์นี้
- ใช้
firecrawl_scrapeเมื่อคุณมี URL ที่รู้จักและต้องการเนื้อหาเป็น markdown หรือเป็น JSON ที่ตรงกับ schema ที่คุณระบุ - ใช้
firecrawl_mapเมื่อคุณต้องการค้นหา URL บนเว็บไซต์โดยไม่ต้องดึงเนื้อหา - ใช้
firecrawl_crawlเมื่อคุณต้องการเนื้อหาจากหลายหน้าภายใต้เว็บไซต์; ตั้งค่าlimit,includePaths/excludePaths, หรือmaxDiscoveryDepthเพื่อจำกัดขอบเขต - ใช้
firecrawl_searchเมื่อคุณเริ่มจากคำค้นหาแทนที่จะเป็น URL และต้องการผลการค้นหาที่จัดอันดับ; เพิ่มscrapeOptionsหากคุณต้องการให้ดึงเนื้อหาหน้าเว็บในการเรียกเดียวกันด้วย (endpoint ที่ค้นหาเท่านั้นจะไม่ดึงเนื้อหา) - ใช้
firecrawl_interactเมื่อหน้าเว็บต้องการการคลิก, พิมพ์, หรือนำทางก่อนที่คุณจะอ่านได้ — ส่งurlสำหรับหน้าใหม่หรือscrapeIdเพื่อดำเนินการต่อจากหน้าที่คุณขูดข้อมูลแล้ว - ใช้เครื่องมือ
firecrawl_monitor_*เมื่อหน้าเดียวกันต้องถูกตรวจสอบตามกำหนดเวลาซ้ำ ๆ พร้อม diff และการแจ้งเตือนการเปลี่ยนแปลง แทนที่จะดึงข้อมูลครั้งเดียว - พิจารณาสิ่งอื่นเมื่อคุณต้องเปิดเซสชันเบราว์เซอร์ค้างไว้ข้ามหลายขั้นตอนของคุณเองพร้อมตรรกะการลองใหม่และการยุติของคุณเอง: การเรียก
firecrawl_interactแต่ละครั้งจะรันหนึ่งเทิร์นของpromptหรือcodeจนเสร็จและคืนการควบคุม — เซสชันสามารถคงอยู่ข้ามการเรียกผ่านscrapeIdและสิ้นสุดด้วยfirecrawl_interact_stop, แต่คุณไม่สามารถขับเคลื่อนแบบโต้ตอบทีละขั้นตอนจากฝั่งไคลเอนต์ภายในครั้งเดียวได้
เซิร์ฟเวอร์นี้แสดงรายการ 25 เครื่องมือเมื่อโปรไฟล์เต็มลงทะเบียนด้วยการตั้งค่าเริ่มต้น (รวมเครื่องมือ feedback, ไม่ได้รันในโหมด local-keyless) การตั้งค่า FIRECRAWL_NO_SEARCH_FEEDBACK=1 และ/หรือ FIRECRAWL_NO_ENDPOINT_FEEDBACK=1 จะลบเครื่องมือ feedback ที่เกี่ยวข้องและลดจำนวนนี้ เช่นเดียวกับการเริ่มต้นแบบ keyless ในเครื่อง สำหรับไคลเอนต์ที่มีขีดจำกัดช่องเครื่องมือ: endpoint แบบ keyless ที่โฮสต์ (https://mcp.firecrawl.dev/v2/mcp, ไม่มี API key) เปิดเผยเพียง 3 — firecrawl_scrape, firecrawl_search, firecrawl_parse — และ endpoint ที่ค้นหาเท่านั้นโดยเฉพาะ (https://mcp.firecrawl.dev/v2/mcp-search) เปิดเผยเครื่องมือแบบอ่านอย่างเดียว 6 รายการคงที่
การติดตั้ง
MCP ที่โฮสต์ (ฟรี tier แบบไม่ต้องใช้คีย์)
เชื่อมต่อกับเซิร์ฟเวอร์ที่โฮสต์ระยะไกลโดยไม่ต้องตั้งค่า:
https://mcp.firecrawl.dev/v2/mcp
บน tier ฟรีแบบไม่ต้องใช้คีย์, scrape, search, และ parse ทำงานได้โดยไม่ต้องใช้ API key (มีการจำกัดอัตรา) เครื่องมืออื่น ๆ เช่น crawl, map, และ agent ยังต้องใช้คีย์
ควรใช้ OAuth หรือ API key เมื่อใดก็ตามที่มนุษย์สามารถสมัครได้ มันปลดล็อกชุดเครื่องมือเต็มรูปแบบและขีดจำกัดที่สูงขึ้น
สำหรับการเชื่อมต่อบัญชีแบบโต้ตอบ กำหนดค่าไคลเอนต์ MCP ของคุณให้ใช้ URL เซิร์ฟเวอร์นี้ นี่คือ endpoint MCP, ไม่ใช่หน้าต่างเบราว์เซอร์; ใช้ขั้นตอนการเชื่อมต่อบัญชีของไคลเอนต์และอย่าเพิ่มรายการเซิร์ฟเวอร์ Firecrawl ที่สองเมื่อเชื่อมต่อใหม่:
https://mcp.firecrawl.dev/v2/mcp-oauth
สำหรับการเชื่อมต่อด้วย API key (ตัวอย่างเช่น การรวมระบบที่ไม่มีการดูแล), เก็บ URL เซิร์ฟเวอร์เป็น:
https://mcp.firecrawl.dev/v2/mcp
จากนั้นกำหนดค่าการตั้งค่า header หรือ secret ที่ปลอดภัยของไคลเอนต์ด้วย:
Authorization: Bearer <FIRECRAWL_API_KEY>
อย่าใส่ API key ใน URL เซิร์ฟเวอร์ อย่าใส่ API key ในแชทของเอเจนต์ กำหนดค่าโดยตรงในไคลเอนต์หรือตัวจัดการ secret ดู คู่มือการตั้งค่า MCP ที่โฮสต์ และ คู่มือการเริ่มต้นใช้งานเอเจนต์ สำหรับคำแนะนำเฉพาะไคลเอนต์
Endpoint ที่ค้นหาเท่านั้น
พื้นผิวแบบอ่านอย่างเดียวและค้นหาเท่านั้นยังโฮสต์ที่:
https://mcp.firecrawl.dev/v2/mcp-search
มันเปิดเผยชุดเครื่องมือแบบอ่านอย่างเดียวหกรายการคงที่: firecrawl_search, firecrawl_developer_search, และเครื่องมือ firecrawl_research_* สี่รายการ มันไม่ดำเนินการดึงเนื้อหาหน้าเว็บและมีเอกลักษณ์ OAuth ของตัวเอง; endpoint เต็มด้านบนไม่เปลี่ยนแปลง ดู 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
เพื่อกำหนดค่า Firecrawl MCP ใน Cursor v0.48.6
- เปิด Cursor Settings
- ไปที่ Features > MCP Servers
- คลิก "+ Add new global MCP server"
- ป้อนโค้ดต่อไปนี้:
{ "mcpServers": { "firecrawl-mcp": { "command": "npx", "args": ["-y", "firecrawl-mcp"], "env": { "FIRECRAWL_API_KEY": "YOUR-API-KEY" } } } }
เพื่อกำหนดค่า Firecrawl MCP ใน Cursor v0.45.6
- เปิด Cursor Settings
- ไปที่ 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 ด้วย API key Firecrawl ของคุณ หากคุณยังไม่มี คุณสามารถสร้างบัญชีและรับได้จาก https://www.firecrawl.dev/app/api-keys
หลังจากเพิ่มแล้ว รีเฟรชรายการเซิร์ฟเวอร์ MCP เพื่อดูเครื่องมือใหม่ Composer Agent จะใช้ Firecrawl MCP โดยอัตโนมัติเมื่อเหมาะสม แต่คุณสามารถขอได้อย่างชัดเจนโดยอธิบายความต้องการขูดข้อมูลเว็บของคุณ เข้าถึง Composer ผ่าน Command+L (Mac), เลือก "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 Local Mode
เพื่อรันเซิร์ฟเวอร์โดยใช้ 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 (Legacy)
เพื่อติดตั้ง Firecrawl สำหรับ Claude Desktop โดยอัตโนมัติผ่าน Smithery:
npx -y @smithery/cli install @mendableai/mcp-server-firecrawl --client claude
การรันบน VS Code
สำหรับการติดตั้งด้วยคลิกเดียว คลิกที่ปุ่มติดตั้งใดปุ่มหนึ่งด้านล่าง...
สำหรับการติดตั้งด้วยตนเอง เพิ่มบล็อก JSON ต่อไปนี้ในไฟล์ User Settings (JSON) ของคุณใน VS Code คุณสามารถทำได้โดยกด 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 ใน workspace ของคุณได้ตามตัวเลือก สิ่งนี้จะช่วยให้คุณแชร์การกำหนดค่ากับผู้อื่น:
{
"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}"
}
}
}
}
การกำหนดค่า
ตัวแปรสภาพแวดล้อม
จำเป็นสำหรับ Cloud API
FIRECRAWL_API_KEY: API key Firecrawl ของคุณ- จำเป็นเมื่อใช้ cloud API (ค่าเริ่มต้น)
- ไม่จำเป็นเมื่อใช้อินสแตนซ์ที่โฮสต์ด้วยตนเองกับ
FIRECRAWL_API_URL
FIRECRAWL_API_URL(ไม่บังคับ): endpoint API ที่กำหนดเองสำหรับอินสแตนซ์ที่โฮสต์ด้วยตนเอง- ตัวอย่าง:
https://firecrawl.your-domain.com - หากไม่ได้ระบุ จะใช้ cloud API (ต้องใช้ API key)
- ตัวอย่าง:
MCP OAuth (Bearer access tokens)
Firecrawl ที่โฮสต์สามารถออก access tokens ของ OAuth (fco_…) ผ่านเซิร์ฟเวอร์อนุญาตบน firecrawl.dev เซิร์ฟเวอร์ MCP นี้ส่งต่อข้อมูลประจำตัวที่แก้ไขได้ไปยัง Firecrawl API เป็น Authorization: Bearer …
- การขนส่งสตรีม HTTP (
CLOUD_SERVICE=true,HTTP_STREAMABLE_SERVER=true, หรือSSE_LOCAL=true): ไคลเอนต์ควรส่งAuthorization: Bearer <fco_access_token>ในคำขอ MCP OAuth bearer token มีลำดับความสำคัญเหนือx-firecrawl-api-key/x-api-keyเมื่อทั้งสองมีอยู่ - stdio: ใช้
FIRECRAWL_OAUTH_TOKENสำหรับ access token แบบคงที่ หรือใช้FIRECRAWL_API_KEYต่อไปสำหรับ API key
ใช้ access tokens (fco_…) เท่านั้น Refresh tokens (fcr_…) ต้องแลกเปลี่ยนที่ token endpoint ไม่ใช่ส่งไปยัง scrape/search API
พื้นผิวที่ค้นหาเท่านั้น (โฮสต์)
ในโหมดโฮสต์ (CLOUD_SERVICE=true) อินสแตนซ์ในกระบวนการที่สองให้บริการ endpoint ที่ค้นหาเท่านั้น บริการที่รวมมีสัญญาการปรับใช้คงที่: 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) และปฏิเสธ OAuth tokens ที่ผู้ชมไม่ตรงกับทรัพยากรของตัวเอง
ตัวอย่างการกำหนดค่า
สำหรับการใช้งาน cloud 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 ที่รู้จัก: เรียก scrape สำหรับแต่ละ URL หากคุณต้องการการดำเนินการ API แบบกลุ่มเดียวโดยเฉพาะ ให้ใช้ batch endpoint ของ Firecrawl API นอก MCP
- หากคุณต้องการค้นหา URL บนเว็บไซต์: ใช้ map
- หากคุณต้องการค้นหาเว็บสำหรับข้อมูล: ใช้ search
- หากคุณมีคำถามการเขียนโปรแกรม (ไลบรารี, สัญญา API, ข้อความข้อผิดพลาด, บั๊กที่รู้จัก): ใช้ developer search
- หากคุณต้องการเอกสารทางวิทยาศาสตร์ (วรรณกรรมชีวการแพทย์, วิทยาศาสตร์ชีวภาพ, คลินิก, หรือ arXiv): ใช้ research tools — พวกเขาค้นหาบทคัดย่อและข้อความเต็มของเอกสาร
searchกับcategories: ["research"]เป็นสิ่งที่แตกต่าง: ตัวกรองเว็บไซต์เหนือผลการค้นหาเว็บทั่วไป - หากคุณต้องการการวิจัยหลายแหล่งที่ส่งคืนข้อมูลที่มีโครงสร้าง, ไม่รู้ URL, หรือคำตอบครอบคลุมหลายเว็บไซต์ (เอนทิตีพร้อมฟิลด์, รายการ, ชุดข้อมูล): ใช้ agent
- หากคุณต้องการวิเคราะห์ทั้งเว็บไซต์หรือส่วน: ใช้ crawl (พร้อมขีดจำกัด!)
- หากคุณต้องการระบบอัตโนมัติเบราว์เซอร์แบบโต้ตอบ (คลิก, พิมพ์, นำทาง): ใช้ interact พร้อม URL สำหรับหน้าใหม่ หรือ scrape + interact เมื่อคุณขูดข้อมูลหน้าแล้วหรือต้องการการควบคุมการขูดที่เข้มงวดขึ้น
ตารางอ้างอิงด่วน
| เครื่องมือ | เหมาะที่สุดสำหรับ | ผลลัพธ์ |
|---|---|---|
| scrape | เนื้อหาหน้าเดียว | JSON (แนะนำ) หรือ markdown |
| interact | โต้ตอบกับ URL หรือหน้าที่ขูดแล้ว | ผลการดำเนินการ + scrapeId สำหรับโหมด URL |
| map | การค้นหา URL บนเว็บไซต์ | URL[] |
| crawl | การแยกข้อมูลหลายหน้า (พร้อมขีดจำกัด) | สถานะ/ข้อมูล crawl สุดท้ายหลังการโพลภายใน |
| parse | ไฟล์และการอ้างอิงอัปโหลดที่โฮสต์ | markdown, JSON, หรือผลลัพธ์เอกสาร |
| search | การค้นหาเว็บสำหรับข้อมูล | results[] |
| developer | คำถามการเขียนโปรแกรมเหนือแหล่งนักพัฒนา | results[] พร้อม passages |
| agent | การวิจัยหลายแหล่ง, ไม่รู้จักหรือหลายเว็บไซต์ | JSON (ข้อมูลที่มีโครงสร้าง) |
| monitor | การตรวจสอบหน้าเว็บซ้ำ ๆ | ข้อมูลเมตาและ diff ของ monitor/check |
| research | การวิจัยเอกสารและที่เก็บ GitHub | ผลการวิจัยและการจับคู่ที่เก็บ |
คู่มือการเลือกรูปแบบ
เมื่อใช้ scrape, เลือกรูปแบบที่เหมาะสม:
- รูปแบบ JSON (แนะนำสำหรับกรณีส่วนใหญ่): ใช้เมื่อคุณต้องการข้อมูลเฉพาะจากหน้าเว็บ กำหนด schema ตามสิ่งที่คุณต้องการดึงข้อมูล ซึ่งจะช่วยให้ response มีขนาดเล็กและหลีกเลี่ยงปัญหา context window ล้น
- รูปแบบ Markdown (ใช้เท่าที่จำเป็น): ใช้เฉพาะเมื่อคุณต้องการเนื้อหาทั้งหน้าจริงๆ เช่น การอ่านบทความทั้งฉบับเพื่อสรุป หรือการวิเคราะห์โครงสร้างหน้า
เครื่องมือที่มีให้ใช้งาน
1. เครื่องมือ Scrape (firecrawl_scrape)
ดึงเนื้อหาจาก URL เดียวพร้อมตัวเลือกขั้นสูง
เหมาะสำหรับ:
- การดึงเนื้อหาจากหน้าเดียว เมื่อคุณรู้แน่ชัดว่าหน้าใดมีข้อมูลที่ต้องการ
ไม่แนะนำสำหรับ:
- การดึงเนื้อหาจากหลายหน้า (ใช้การเรียก scrape ซ้ำสำหรับ URL ที่รู้จัก หรือใช้ map + scrape เพื่อค้นหา URL ก่อน หรือใช้ crawl สำหรับเนื้อหาทั้งหน้า)
- เมื่อคุณไม่แน่ใจว่าหน้าใดมีข้อมูลที่ต้องการ (ใช้ search)
ข้อผิดพลาดที่พบบ่อย:
- การส่งรายการ URL หลายรายการในการเรียก scrape ครั้งเดียว ควรเรียก scrape หนึ่งครั้งต่อหนึ่ง URL ใน MCP หากคุณต้องการดำเนินการ API แบบกลุ่มโดยเฉพาะ ให้ใช้ Firecrawl API batch endpoint นอก MCP
- การใช้รูปแบบ markdown เป็นค่าเริ่มต้น (ใช้รูปแบบ JSON เพื่อดึงเฉพาะสิ่งที่คุณต้องการ)
การเลือกรูปแบบที่เหมาะสม:
- รูปแบบ JSON (แนะนำ): สำหรับกรณีการใช้งานส่วนใหญ่ ใช้รูปแบบ JSON พร้อม schema เพื่อดึงเฉพาะข้อมูลที่ต้องการ ซึ่งช่วยให้ response กระชับและป้องกัน context window ล้น
- รูปแบบ Markdown: ใช้เฉพาะเมื่องานต้องการเนื้อหาทั้งหน้าจริงๆ (เช่น การสรุปบทความทั้งฉบับ การวิเคราะห์โครงสร้างหน้า)
ตัวอย่าง Prompt:
"ดึงรายละเอียดสินค้าจาก 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
}
}
ตัวอย่างการใช้งาน (รูปแบบ branding - ดึงข้อมูลเอกลักษณ์แบรนด์):
{
"name": "firecrawl_scrape",
"arguments": {
"url": "https://example.com",
"formats": ["branding"]
}
}
รูปแบบ Branding: ดึงข้อมูลเอกลักษณ์แบรนด์ที่ครอบคลุม (สี ฟอนต์ การพิมพ์ ระยะห่าง โลโก้ ส่วนประกอบ UI) สำหรับการวิเคราะห์การออกแบบหรือการเลียนแบบสไตล์
ความเป็นส่วนตัว: ตั้งค่า redactPII: true เพื่อให้เนื้อหาที่ส่งกลับมีการปกปิดข้อมูลที่ระบุตัวตนได้
ส่งคืน:
- ข้อมูลที่มีโครงสร้างแบบ JSON, markdown, โปรไฟล์ branding หรือรูปแบบอื่นๆ ตามที่ระบุ
2. เครื่องมือ Map (firecrawl_map)
ทำแผนที่เว็บไซต์เพื่อค้นหา URL ทั้งหมดที่ถูกจัดทำดัชนีบนเว็บไซต์
เหมาะสำหรับ:
- การค้นหา URL บนเว็บไซต์ก่อนตัดสินใจว่าจะ scrape อะไร
- การค้นหาส่วนเฉพาะของเว็บไซต์
ไม่แนะนำสำหรับ:
- เมื่อคุณรู้แล้วว่า URL เฉพาะใดที่ต้องการ (ใช้ scrape)
- เมื่อคุณต้องการเนื้อหาของหน้า (ใช้ scrape หลังจาก map)
ข้อผิดพลาดที่พบบ่อย:
- การใช้ crawl เพื่อค้นหา URL แทนที่จะใช้ map
ตัวอย่าง Prompt:
"แสดงรายการ URL ทั้งหมดบน example.com"
ตัวอย่างการใช้งาน:
{
"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 เพื่อเก็บ snippet การค้นหาต้นฉบับ ละเว้นเพื่อใช้พฤติกรรมเริ่มต้นของ API
สำหรับเอกสารทางวิทยาศาสตร์ ดู เครื่องมือวิจัย: เครื่องมือเหล่านั้นค้นหาบทคัดย่อและข้อความเต็มของเอกสาร ในขณะที่ categories: ["research"] ที่นี่กรองผลการค้นหาเว็บทั่วไปให้เหลือเฉพาะเว็บไซต์ที่เกี่ยวข้องกับงานวิจัย
ส่งคืน:
- อาร์เรย์ของผลการค้นหา (พร้อมเนื้อหาที่ scrape ได้ตามตัวเลือก) พร้อมฟิลด์
idส่งidนั้นไปยังfirecrawl_search_feedbackหลังจากใช้ผลลัพธ์เพื่อรับเครดิตคืน 1 เครดิต (การค้นหามีค่าใช้จ่าย 2) และปรับปรุงคุณภาพการค้นหา
ตัวอย่าง Prompt:
"เปรียบเทียบนโยบายค่าเบี้ยเลี้ยงทำงานระยะไกลของบริษัทเทคโนโลยี"
3b. เครื่องมือ Search Feedback (firecrawl_search_feedback)
ส่งความคิดเห็นที่มีโครงสร้างเกี่ยวกับผลลัพธ์ firecrawl_search ก่อนหน้า ความคิดเห็นแรกต่อ search id จะได้รับเครดิตคืน 1 เครดิตและปรับปรุงคุณภาพการค้นหาของ Firecrawl เป็นแบบ idempotent ต่อ search id
เรียกใช้หลังจากทุกการค้นหาที่คุณใช้จริง (หรือที่ไม่ช่วยเหลือ) ความคิดเห็นที่ไม่ดี/บางส่วนด้วย missingContent มีคุณค่าเท่ากับความคิดเห็นที่ดี
เลือกไม่ใช้: ตั้งค่า FIRECRAWL_NO_SEARCH_FEEDBACK=1 (หรือ FIRECRAWL_DISABLE_SEARCH_FEEDBACK=1) ในสภาพแวดล้อมเมื่อเริ่มต้น MCP server เครื่องมือ firecrawl_search_feedback จะไม่ถูกลงทะเบียน ดังนั้น agent จึงไม่สามารถเรียกใช้ได้ ผู้ดูแลทีมยังสามารถปิดใช้งานความคิดเห็นฝั่งเซิร์ฟเวอร์ได้ ในกรณีนั้นเครื่องมือจะถูกลงทะเบียนแต่จะส่งคืน feedbackErrorCode: "TEAM_OPTED_OUT" เสมอ
ฟิลด์ที่สำคัญที่สุด: missingContent เป็นอาร์เรย์ของเนื้อหาส่วนเฉพาะที่ agent คาดว่าจะพบแต่ไม่พบ หนึ่งรายการต่อหัวข้อที่ขาดหายไป — สิ่งเหล่านี้จะถูกรวบรวมข้ามทีมและบอกเราว่าควรจัดทำดัชนีอะไรต่อไป
วงเงินคืนเครดิตรายวัน (ต่อทีม ต่อวัน UTC ค่าเริ่มต้น 100 เครดิต) เมื่อ creditsRefundedToday ของทีมถึง dailyRefundCap การส่งเพิ่มเติมยังคงบันทึกความคิดเห็นแต่ไม่ได้รับเครดิตคืนอีกต่อไป response จะตั้งค่า dailyCapReached: true Agent ควรหยุดเรียกใช้เครื่องมือนี้ในช่วงที่เหลือของวัน UTC เมื่อเห็น flag นั้น
ตัวอย่างการใช้งาน:
{
"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'"
}
}
ส่งคืน:
- JSON
{ success, feedbackId, creditsRefunded, alreadySubmitted? }
3c. เครื่องมือ Generic Feedback (firecrawl_feedback)
ส่งความคิดเห็นที่มีโครงสร้างสำหรับงาน endpoint v2 ที่เสร็จสมบูรณ์ผ่าน /v2/feedback
ใช้สำหรับความคิดเห็นระดับ endpoint บนงาน scrape, parse, map หรือ search
สำหรับคุณภาพผลการค้นหาโดยเฉพาะ ควรใช้
firecrawl_search_feedback เพราะมีคำแนะนำเฉพาะการค้นหา
เก็บความคิดเห็นให้กระชับ: ใช้รหัสปัญหา แท็ก หมายเหตุสั้นๆ URL หมายเลขหน้า และออบเจกต์ metadata ขนาดเล็ก อย่ารวมผลลัพธ์ scrape/parse ดิบ
เลือกไม่ใช้: ตั้งค่า FIRECRAWL_NO_ENDPOINT_FEEDBACK=1 (หรือ FIRECRAWL_DISABLE_ENDPOINT_FEEDBACK=1) ในสภาพแวดล้อมเมื่อเริ่มต้น MCP server เครื่องมือ firecrawl_feedback จะไม่ถูกลงทะเบียน ดังนั้น agent จึงไม่สามารถเรียกใช้ได้
ตัวอย่างการใช้งาน:
{
"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"
}
}
}
ส่งคืน:
- JSON
{ success, feedbackId, creditsRefunded, creditsRefundedToday?, dailyRefundCap?, dailyCapReached?, alreadySubmitted?, warning? }
4. เครื่องมือ Crawl (firecrawl_crawl)
เริ่มงาน crawl รอจนกว่าจะถึงสถานะสิ้นสุด และส่งคืนสถานะ/ข้อมูล crawl สุดท้าย
เหมาะสำหรับ:
- การดึงเนื้อหาจากหลายหน้าที่เกี่ยวข้องกัน เมื่อคุณต้องการความครอบคลุมที่ครอบคลุม
ไม่แนะนำสำหรับ:
- การดึงเนื้อหาจากหน้าเดียว (ใช้ scrape)
- เมื่อข้อจำกัดของ token เป็นปัญหา (ใช้ map + scrape เพื่อควบคุมที่เข้มงวดขึ้น)
- เมื่อคุณต้องการผลลัพธ์ที่รวดเร็ว (การ crawl อาจช้า)
คำเตือน: response ของ Crawl อาจมีขนาดใหญ่มากและอาจเกินขีดจำกัด token จำกัดความลึกของการ crawl และจำนวนหน้า หรือใช้ map + scrape เพื่อควบคุมที่เข้มงวดขึ้น
ข้อผิดพลาดที่พบบ่อย:
- การตั้งค่า limit หรือ maxDiscoveryDepth สูงเกินไป (ทำให้ token ล้น)
- การใช้ crawl สำหรับหน้าเดียว (ใช้ scrape แทน)
ตัวอย่าง Prompt:
"ดึงบทความบล็อกทั้งหมดจากสองระดับแรกของ example.com/blog"
ตัวอย่างการใช้งาน:
{
"name": "firecrawl_crawl",
"arguments": {
"url": "https://example.com/blog/*",
"maxDiscoveryDepth": 2,
"limit": 100,
"allowExternalLinks": false,
"deduplicateSimilarURLs": true
}
}
ส่งคืน:
- สถานะและข้อมูล crawl สุดท้ายหลังการ poll ภายใน รวมถึง
id,status,completed,total,creditsUsed,expiresAt,nextและdataใช้idที่ส่งกลับกับfirecrawl_check_crawl_statusหากคุณต้องการตรวจสอบงานอีกครั้งในภายหลัง
5. ตรวจสอบสถานะ Crawl (firecrawl_check_crawl_status)
ตรวจสอบสถานะและผลลัพธ์ของงาน crawl ที่มีอยู่โดยใช้ ID
{
"name": "firecrawl_check_crawl_status",
"arguments": {
"id": "550e8400-e29b-41d4-a716-446655440000"
}
}
ส่งคืน:
- response รวมถึงสถานะของงาน crawl:
6. เครื่องมือ Parse (firecrawl_parse)
แยกวิเคราะห์ไฟล์ในเครื่องหรือการอ้างอิงอัปโหลดที่โฮสต์ด้วย endpoint /v2/parse ของ Firecrawl
เหมาะสำหรับ: ไฟล์ PDF, เอกสาร Word, สเปรดชีต, ไฟล์ HTML และเอกสารอื่นๆ ที่ต้องการผลลัพธ์ markdown หรือ JSON ที่มีโครงสร้าง MCP ที่โฮสต์รองรับขั้นตอน upload-ref สองขั้นตอน การอ่านไฟล์โดยตรงในเครื่องต้องใช้ FIRECRAWL_API_URL ที่โฮสต์เอง
ไม่แนะนำสำหรับ: URL ระยะไกล (ใช้ scrape), หลายไฟล์ในการเรียกครั้งเดียว (เรียก parse หนึ่งครั้งต่อไฟล์) หรือการดำเนินการเฉพาะเบราว์เซอร์ เช่น ภาพหน้าจอและการคลิก
ขั้นตอน MCP ที่โฮสต์: MCP ที่โฮสต์ไม่สามารถอ่านระบบไฟล์ของผู้เรียกได้โดยตรง เรียก firecrawl_parse ด้วย filePath เพื่อรับคำสั่งอัปโหลดระยะสั้นและ nextToolCall, อัปโหลดไฟล์ในเครื่อง จากนั้นเรียก firecrawl_parse อีกครั้งด้วย uploadRef ที่ส่งกลับ การสร้าง 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
สำหรับข้อมูลที่มีโครงสร้างจากหน้าที่รู้จัก เรียก firecrawl_scrape หนึ่งครั้งต่อ URL ด้วย formats: ["json"] ใส่ prompt การดึงข้อมูลและ 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)
Agent วิจัยเว็บอัตโนมัติที่ส่งคืนข้อมูลที่มีโครงสร้างเมื่อคุณไม่ทราบ URL หรือคำตอบครอบคลุมหลายเว็บไซต์ อธิบายฟิลด์ที่คุณต้องการ ระบุ JSON schema และ URL เริ่มต้นได้ตามตัวเลือก จากนั้น agent จะค้นหา นำทาง อ่านหน้า และส่งคืน JSON ที่รวบรวมจากหลายแหล่ง ใช้สำหรับเอนทิตีพร้อมฟิลด์ รายการและชุดข้อมูล และหน้าที่ต้องนำทางเพื่อเข้าถึงข้อมูล สำหรับ URL ที่รู้จักหนึ่งรายการ ให้ใช้ firecrawl_scrape พร้อมรูปแบบ JSON แทน
วิธีการทำงาน:
Agent ดำเนินการค้นหาเว็บ ตามลิงก์ อ่านหน้า และรวบรวมข้อมูลโดยอัตโนมัติ ทำงานแบบ asynchronous — ส่งคืน job ID ทันที และคุณ poll firecrawl_agent_status เพื่อตรวจสอบเมื่อเสร็จสมบูรณ์และดึงผลลัพธ์
ขั้นตอน Async:
- เรียก
firecrawl_agentพร้อม prompt/schema ของคุณ → ส่งคืน job ID - ทำงานอื่นในขณะที่ agent วิจัย (อาจใช้เวลาหลายนาทีสำหรับคำถามที่ซับซ้อน)
- Poll
firecrawl_agent_statusด้วย job ID เพื่อตรวจสอบความคืบหน้า - เมื่อสถานะเป็น "completed" response จะรวมข้อมูลที่ดึงมา
เหมาะสำหรับ:
- งานวิจัยที่ซับซ้อนเมื่อคุณไม่ทราบ URL ที่แน่นอน
- การรวบรวมข้อมูลจากหลายแหล่ง
- การค้นหาข้อมูลที่กระจายอยู่ทั่วเว็บ
- งานที่คุณสามารถทำงานอื่นได้ในขณะที่รอผลลัพธ์
ไม่แนะนำสำหรับ:
- การ scrape หน้าเดียวที่ง่ายเมื่อคุณรู้ URL (ใช้ scrape พร้อมรูปแบบ JSON - เร็วกว่าและถูกกว่า)
อาร์กิวเมนต์:
prompt: คำอธิบายภาษาธรรมชาติของข้อมูลที่คุณต้องการ (จำเป็น สูงสุด 10,000 ตัวอักษร)urls: อาร์เรย์ URL ตามตัวเลือกเพื่อให้ agent โฟกัสที่หน้าเฉพาะschema: JSON schema ตามตัวเลือกสำหรับผลลัพธ์ที่มีโครงสร้าง
ตัวอย่าง Prompt:
"ค้นหาผู้ก่อตั้ง Firecrawl และภูมิหลังของพวกเขา"
ตัวอย่างการใช้งาน (เริ่ม agent จากนั้น poll เพื่อผลลัพธ์):
{
"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" }
}
}
}
}
}
}
}
จากนั้น poll ด้วย firecrawl_agent_status โดยใช้ job ID ที่ส่งกลับ
ตัวอย่างการใช้งาน (พร้อม URL - agent โฟกัสที่หน้าเฉพาะ):
{
"name": "firecrawl_agent",
"arguments": {
"urls": ["https://docs.firecrawl.dev", "https://firecrawl.dev/pricing"],
"prompt": "Compare the features and pricing information from these pages"
}
}
ส่งคืน:
- Job ID สำหรับการตรวจสอบสถานะ ใช้
firecrawl_agent_statusเพื่อ poll ผลลัพธ์
9. ตรวจสอบสถานะ Agent (firecrawl_agent_status)
ตรวจสอบสถานะของงาน agent และดึงผลลัพธ์เมื่อเสร็จสมบูรณ์ ใช้เพื่อ poll ผลลัพธ์หลังจากเริ่ม agent
รูปแบบการ Poll: การวิจัยของ agent อาจใช้เวลาหลายนาทีสำหรับคำถามที่ซับซ้อน Poll endpoint นี้เป็นระยะ (เช่น ทุก 10-30 วินาที) จนกว่าสถานะจะเป็น "completed" หรือ "failed"
{
"name": "firecrawl_agent_status",
"arguments": {
"id": "550e8400-e29b-41d4-a716-446655440000"
}
}
สถานะที่เป็นไปได้:
processing: Agent ยังคงวิจัยอยู่ - กลับมาตรวจสอบในภายหลังcompleted: การวิจัยเสร็จสิ้น - response รวมข้อมูลที่ดึงมา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_*)
ค้นหาและตรวจสอบบทความและที่เก็บ GitHub ผ่านเครื่องมือ MCP สำหรับการวิจัย
ครอบคลุม: บทคัดย่อและเนื้อหาเต็มของบทความในสาขาชีวการแพทย์ วิทยาศาสตร์ชีวภาพ และวรรณกรรมทางคลินิก (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_*)
สร้างและจัดการการติดตามหน้าเว็บที่เกิดขึ้นซ้ำ การติดตามจะรันการขูดข้อมูลหรือการรวบรวมข้อมูลตามกำหนดเวลา เปรียบเทียบแต่ละผลลัพธ์กับสแนปชอตที่เก็บไว้ล่าสุด และสามารถแจ้งเตือนผ่านเว็บฮุคหรืออีเมล
เหมาะสำหรับ:
- เฝ้าดูหน้าเว็บเดียวหรือสองสามหน้าตามช่วงเวลา
- แจ้งเตือนการเปลี่ยนแปลงที่มีความหมายโดยใช้เป้าหมายภาษาธรรมดา
- ติดตามประวัติการตรวจสอบและความแตกต่างระดับหน้า
รูปแบบการสร้างที่แนะนำ:
ใช้ page หรือ pages พร้อมกับ goal เซิร์ฟเวอร์ MCP จะสร้างคำขอติดตามด้วยกำหนดการ 30 นาที และ API จะเปิดใช้งานการตัดสินการเปลี่ยนแปลงที่มีความหมายโดยอัตโนมัติ
การตัดสินการเปลี่ยนแปลงที่มีความหมายจะทำงานอัตโนมัติเมื่อตั้งค่า goal เว็บฮุคของหน้าเว็บจะแสดง isMeaningful และ judgment ในเหตุการณ์ monitor.page
เขียนเป้าหมายเป็นคำแนะนำการติดตามที่กระชับ 2-3 ประโยค ระบุสิ่งที่ควรกระตุ้นการแจ้งเตือน รักษาขอบเขตที่ผู้ใช้ให้ไว้ และรวมข้อยกเว้นเฉพาะเจตนาเมื่อชัดเจนจากคำขอเท่านั้น เสียงรบกวนทั่วไปเช่นช่องว่าง การเปลี่ยนแปลงเฉพาะรูปแบบ ID คำขอ พารามิเตอร์ติดตาม ข้อมูลเมตาทั่วไป และส่วนประกอบหน้าเว็บที่ไม่เกี่ยวข้องได้รับการจัดการโดยผู้ตัดสินแล้ว ดังนั้นอย่าทำซ้ำในทุกเป้าหมาย หากผู้ใช้คลุมเครือ ให้รักษาเป้าหมายให้กว้าง หากพวกเขาขอการติดตามแบบกว้างหรือ "การเปลี่ยนแปลงใดๆ" ให้รักษาไว้ หากผู้ใช้บอกว่าไม่สนใจบางสิ่ง ให้รวมไว้อย่างชัดเจน
{
"name": "firecrawl_monitor_create",
"arguments": {
"page": "https://example.com/pricing",
"goal": "Alert when pricing, packaging, or launch messaging changes."
}
}
หลายหน้าพร้อมเว็บฮุค:
{
"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"
}
}
คำขอสร้างขั้นสูง:
ส่ง body เมื่อคุณต้องการเป้าหมายการรวบรวมข้อมูล การติดตามการเปลี่ยนแปลง JSON การเก็บรักษาแบบกำหนดเอง หรือการควบคุม judgeEnabled ที่ชัดเจน
{
"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และnotificationfirecrawl_monitor_run: เรียกใช้การตรวจสอบทันทีfirecrawl_monitor_delete: ลบการติดตาม (ทำลายล้าง เรียกเฉพาะเมื่อผู้ใช้ตั้งใจจะลบ)firecrawl_monitor_checks: รายการการตรวจสอบ กรองตามสถานะได้firecrawl_monitor_check: รับผลลัพธ์ระดับหน้า รวมถึงdiff,snapshot,judgment.meaningfulและjudgment.meaningfulChanges
14. เครื่องมือค้นหาสำหรับนักพัฒนา (firecrawl_developer_search)
ค้นหาดัชนีที่สร้างขึ้นสำหรับเอเจนต์เขียนโค้ด ดัชนีครอบคลุมปัญหา GitHub คำขอดึงที่รวมแล้ว README ของที่เก็บ และเว็บไซต์เอกสารที่คัดสรร
เหมาะสำหรับ: คำถามเกี่ยวกับการเขียนโปรแกรม — พฤติกรรมโค้ด ไลบรารีหรือเฟรมเวิร์ก สัญญา API ข้อความแสดงข้อผิดพลาด หรือบั๊กที่รู้จัก
อาร์กิวเมนต์:
{
"name": "firecrawl_developer_search",
"arguments": {
"query": "how do I configure retries",
"k": 10,
"skills": "only"
}
}
query(จำเป็น): คำถามหรือวลีค้นหาสำหรับนักพัฒนาk: จำนวนผลลัพธ์ที่จัดอันดับ ค่าเริ่มต้นคือ 10 และสูงสุดคือ 100skills: ตั้งค่าเป็น"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 - ส่งคำขอดึง
ขอบคุณผู้มีส่วนร่วม
ขอบคุณ @vrknetha, @cawstudios สำหรับการนำไปใช้ครั้งแรก!
ขอบคุณ MCP.so และ Klavis AI สำหรับการโฮสต์ และ @gstarwd, @xiangkaiz และ @zihaolin96 สำหรับการรวมเซิร์ฟเวอร์ของเรา
สัญญาอนุญาต
สัญญาอนุญาต MIT - ดูไฟล์ LICENSE สำหรับรายละเอียด