Firecrawl MCP
ทางการเพิ่มความสามารถในการขูดข้อมูลเว็บและการค้นหาอันทรงพลังให้กับไคลเอนต์ LLM เช่น Cursor และ Claude
คุณทำอะไรได้บ้างด้วย Firecrawl MCP?
- ค้นหาข้อมูลบนเว็บ — ใช้
firecrawl_searchเพื่อค้นหาหน้าที่เกี่ยวข้องทั่วทั้งเว็บเมื่อคุณไม่ทราบว่าเว็บไซต์ใดมีคำตอบ - ดึงข้อมูลจาก URL ที่รู้จักเป็นข้อมูลที่มีโครงสร้าง — เรียกใช้
firecrawl_scrapeพร้อมกับ JSON schema เพื่อแยกเฉพาะฟิลด์ที่คุณต้องการจากหน้าเดียว - ค้นพบ URL ทั้งหมดบนเว็บไซต์ — เรียกใช้
firecrawl_mapเพื่อแสดงรายการหน้าที่ถูกจัดทำดัชนีก่อนตัดสินใจว่าจะดึงข้อมูลใด - ดำเนินการวิจัยหลายแหล่งแบบอัตโนมัติ — เริ่มงาน
firecrawl_agentและตรวจสอบfirecrawl_agent_statusสำหรับการรวบรวมข้อมูลที่ซับซ้อนข้ามเว็บไซต์ - โต้ตอบกับหน้าแบบไดนามิก — ใช้
firecrawl_interactเพื่อคลิก พิมพ์ หรือนำทางบนหน้า และส่งคืนสถานะผลลัพธ์ - แยกวิเคราะห์เอกสารในเครื่อง — ส่งไฟล์ PDF, ไฟล์ Word หรือสเปรดชีตผ่าน
firecrawl_parseเพื่อรับเอาต์พุต markdown ที่สะอาดหรือข้อมูลที่มีโครงสร้าง
เอกสาร
Firecrawl MCP Server
เซิร์ฟเวอร์ Model Context Protocol (MCP) ที่นำ Firecrawl มาสู่เอเจนต์ AI ที่เข้ากันได้กับ MCP — ค้นหา, ดึงข้อมูล, และโต้ตอบกับเว็บสดเพื่อบริบทที่สะอาดและพร้อมใช้งานสำหรับเอเจนต์
ขอบคุณมากสำหรับ @vrknetha, @knacklabs สำหรับการพัฒนาเริ่มต้น!
คุณสมบัติ
- ค้นหาเว็บและรับเนื้อหาทั้งหน้า
- ดึงข้อมูล URL ใดๆ ให้เป็นข้อมูลที่มีโครงสร้างและสะอาด
- โต้ตอบกับหน้าเว็บ — คลิก, นำทาง, และดำเนินการ
- การวิจัยเชิงลึกด้วยเอเจนต์อัตโนมัติ
- การลองใหม่และจำกัดอัตราอัตโนมัติ
- รองรับคลาวด์และโฮสต์เอง
- รองรับ SSE
ลองเล่นกับ MCP Server ของเราบน MCP.so's playground หรือบน 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 server และ คู่มือการเริ่มต้นใช้งานเอเจนต์ สำหรับรายละเอียดการตั้งค่า
ปลายทางสำหรับการค้นหาเท่านั้น
พื้นผิวแบบอ่านอย่างเดียวสำหรับการค้นหาเท่านั้นยังโฮสต์อยู่ที่:
https://mcp.firecrawl.dev/v2/mcp-search
มันเปิดเผยชุดเครื่องมืออ่านอย่างเดียวหกตัวที่ตายตัว: firecrawl_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
เพื่อกำหนดค่า Firecrawl MCP ใน Cursor v0.48.6
- เปิดการตั้งค่า 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" } } } }
เพื่อกำหนดค่า Firecrawl MCP ใน Cursor v0.45.6
- เปิดการตั้งค่า 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 โดยอัตโนมัติเมื่อเหมาะสม แต่คุณสามารถร้องขออย่างชัดเจนได้โดยอธิบายความต้องการในการดึงข้อมูลเว็บของคุณ เข้าถึง 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
เพื่อรันเซิร์ฟเวอร์โดยใช้ 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 (ดั้งเดิม)
เพื่อติดตั้ง 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 ในพื้นที่ทำงานของคุณ ซึ่งจะช่วยให้คุณแชร์การกำหนดค่ากับผู้อื่นได้:
{
"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: คีย์ Firecrawl API ของคุณ- จำเป็นเมื่อใช้ cloud API (ค่าเริ่มต้น)
- ไม่จำเป็นเมื่อใช้อินสแตนซ์ที่โฮสต์เองด้วย
FIRECRAWL_API_URL
FIRECRAWL_API_URL(ไม่จำเป็น): ปลายทาง API ที่กำหนดเองสำหรับอินสแตนซ์ที่โฮสต์เอง- ตัวอย่าง:
https://firecrawl.your-domain.com - หากไม่ระบุ จะใช้ cloud API (ต้องใช้คีย์ API)
- ตัวอย่าง:
MCP OAuth (โทเค็นการเข้าถึง Bearer)
Firecrawl ที่โฮสต์สามารถออกโทเค็นการเข้าถึง OAuth (fco_…) ผ่านเซิร์ฟเวอร์การอนุญาตบน firecrawl.dev เซิร์ฟเวอร์ MCP นี้จะส่งต่อข้อมูลประจำตัวใดๆ ที่แก้ไขได้ไปยัง Firecrawl API เป็น Authorization: Bearer …
- การขนส่ง HTTP stream (
CLOUD_SERVICE=true,HTTP_STREAMABLE_SERVER=true, หรือSSE_LOCAL=true): ไคลเอนต์ควรส่งAuthorization: Bearer <fco_access_token>ในคำขอ MCP โทเค็น bearer OAuth มีความสำคัญเหนือx-firecrawl-api-key/x-api-keyเมื่อมีทั้งสองอย่าง - stdio: ใช้
FIRECRAWL_OAUTH_TOKENสำหรับโทเค็นการเข้าถึงแบบคงที่ หรือใช้FIRECRAWL_API_KEYต่อไปสำหรับคีย์ API
ใช้โทเค็น การเข้าถึง (fco_…) เท่านั้น โทเค็นรีเฟรช (fcr_…) ต้องแลกเปลี่ยนที่ปลายทางโทเค็น ไม่ใช่ส่งผ่านไปยัง API scrape/search
พื้นผิวการค้นหาเท่านั้น (โฮสต์)
ในโหมดโฮสต์ (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) และปฏิเสธโทเค็น OAuth ที่ผู้ชมไม่ตรงกับทรัพยากรของตัวเอง
ตัวอย่างการกำหนดค่า
สำหรับการใช้ 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 ของ Firecrawl API นอก MCP
- หากคุณต้องการค้นพบ URL บนไซต์: ใช้ map
- หากคุณต้องการค้นหาเว็บเพื่อหาข้อมูล: ใช้ search
- หากคุณต้องการการวิจัยที่ซับซ้อนจากแหล่งที่ไม่รู้จักหลายแห่ง: ใช้ agent
- หากคุณต้องการวิเคราะห์ทั้งไซต์หรือส่วน: ใช้ crawl (พร้อมข้อจำกัด!)
- หากคุณต้องการการทำงานอัตโนมัติของเบราว์เซอร์แบบโต้ตอบ (คลิก, พิมพ์, นำทาง): ใช้ interact กับ URL สำหรับหน้าใหม่ หรือ scrape + interact เมื่อคุณดึงข้อมูลหน้าแล้วหรือต้องการควบคุมการดึงข้อมูลที่เข้มงวดขึ้น
ตารางอ้างอิงด่วน
| เครื่องมือ | เหมาะที่สุดสำหรับ | ส่งคืน |
|---|---|---|
| scrape | เนื้อหาหน้าเดียว | JSON (แนะนำ) หรือ markdown |
| interact | โต้ตอบกับ URL หรือหน้าที่ดึงข้อมูลแล้ว | ผลการดำเนินการ + scrapeId สำหรับโหมด URL |
| map | การค้นพบ URL บนไซต์ | URL[] |
| crawl | การดึงข้อมูลหลายหน้า (พร้อมข้อจำกัด) | สถานะ/ข้อมูลการ crawl สุดท้ายหลังการสำรวจภายใน |
| parse | ไฟล์และการอัปโหลดที่โฮสต์ | markdown, JSON, หรือผลลัพธ์เอกสาร |
| extract | การดึงข้อมูลที่มีโครงสร้างจาก URL | ข้อมูลที่มีโครงสร้าง JSON |
| search | การค้นหาเว็บเพื่อหาข้อมูล | results[] |
| agent | การวิจัยหลายแหล่งที่ซับซ้อน | JSON (ข้อมูลที่มีโครงสร้าง) |
| monitor | การตรวจสอบหน้าซ้ำ | ข้อมูลเมตาและความแตกต่างของ monitor/check |
| research | การวิจัยเอกสารและที่เก็บ GitHub | ผลการวิจัยและการจับคู่ที่เก็บ |
คู่มือการเลือกรูปแบบ
เมื่อใช้ scrape ให้เลือกรูปแบบที่เหมาะสม:
- รูปแบบ JSON (แนะนำสำหรับกรณีส่วนใหญ่): ใช้เมื่อคุณต้องการข้อมูลเฉพาะจากหน้า กำหนด schema ตามสิ่งที่คุณต้องการดึงข้อมูล ซึ่งจะทำให้การตอบกลับมีขนาดเล็กและป้องกันการล้นของหน้าต่างบริบท
- รูปแบบ Markdown (ใช้เท่าที่จำเป็น): เฉพาะเมื่อคุณต้องการเนื้อหาทั้งหน้าจริงๆ เช่น การอ่านบทความทั้งหมดเพื่อสรุปหรือวิเคราะห์โครงสร้างหน้า
เครื่องมือที่มีอยู่
1. เครื่องมือ Scrape (firecrawl_scrape)
ดึงเนื้อหาจาก URL เดียวพร้อมตัวเลือกขั้นสูง
เหมาะที่สุดสำหรับ:
- การดึงเนื้อหาหน้าเดียว เมื่อคุณทราบแน่ชัดว่าหน้าใดมีข้อมูล
ไม่แนะนำสำหรับ:
- การดึงเนื้อหาจากหลายหน้า (ใช้การเรียก scrape ซ้ำสำหรับ URL ที่รู้จัก หรือ map + scrape เพื่อค้นพบ URL ก่อน หรือ crawl สำหรับเนื้อหาทั้งหน้า)
- เมื่อคุณไม่แน่ใจว่าหน้าใดมีข้อมูล (ใช้ search)
ข้อผิดพลาดทั่วไป:
- การส่งรายการ URL ไปยังการเรียก scrape ครั้งเดียว เรียก scrape หนึ่งครั้งต่อ URL ใน MCP หากคุณต้องการการดำเนินการ API แบบกลุ่มเดียวโดยเฉพาะ ให้ใช้ปลายทาง batch ของ Firecrawl API นอก MCP
- การใช้รูปแบบ 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
}
}
ตัวอย่างการใช้งาน (รูปแบบ branding - ดึงเอกลักษณ์แบรนด์):
{
"name": "firecrawl_scrape",
"arguments": {
"url": "https://example.com",
"formats": ["branding"]
}
}
รูปแบบ Branding: ดึงเอกลักษณ์แบรนด์ที่ครอบคลุม (สี, แบบอักษร, การพิมพ์, ระยะห่าง, โลโก้, ส่วนประกอบ UI) สำหรับการวิเคราะห์การออกแบบหรือการจำลองสไตล์
ความเป็นส่วนตัว: ตั้งค่า redactPII: true เพื่อส่งคืนเนื้อหาที่มีการปกปิดข้อมูลที่ระบุตัวบุคคลได้
ส่งคืน:
- ข้อมูลที่มีโครงสร้าง JSON, markdown, โปรไฟล์ branding, หรือรูปแบบอื่นๆ ตามที่ระบุ
2. เครื่องมือ Map (firecrawl_map)
ทำแผนที่เว็บไซต์เพื่อค้นพบ URL ที่จัดทำดัชนีทั้งหมดบนไซต์
เหมาะที่สุดสำหรับ:
- การค้นพบ URL บนเว็บไซต์ก่อนตัดสินใจว่าจะดึงข้อมูลอะไร
- การค้นหาส่วนเฉพาะของเว็บไซต์
ไม่แนะนำสำหรับ:
- เมื่อคุณทราบแล้วว่า URL ใดที่คุณต้องการ (ใช้ scrape)
- เมื่อคุณต้องการเนื้อหาของหน้า (ใช้ scrape หลังจากการทำแผนที่)
ข้อผิดพลาดทั่วไป:
- การใช้ crawl เพื่อค้นพบ URL แทน map
ตัวอย่างพร้อมท์:
"แสดงรายการ URL ทั้งหมดบน example.com"
ตัวอย่างการใช้งาน:
{
"name": "firecrawl_map",
"arguments": {
"url": "https://example.com"
}
}
ส่งคืน:
- อาร์เรย์ของ URL ที่พบบนไซต์
3. เครื่องมือ Search (firecrawl_search)
ค้นหาเว็บและเลือกดึงเนื้อหาจากผลการค้นหาได้
เหมาะที่สุดสำหรับ:
- การค้นหาข้อมูลเฉพาะจากหลายเว็บไซต์ เมื่อคุณไม่ทราบว่าเว็บไซต์ใดมีข้อมูล
- เมื่อคุณต้องการเนื้อหาที่เกี่ยวข้องมากที่สุดสำหรับคำถาม
ไม่แนะนำสำหรับ:
- เมื่อคุณทราบแล้วว่าจะดึงข้อมูลจากเว็บไซต์ใด (ใช้ scrape)
- เมื่อคุณต้องการความครอบคลุมที่ครอบคลุมของเว็บไซต์เดียว (ใช้ map หรือ crawl)
ข้อผิดพลาดทั่วไป:
- การใช้ crawl หรือ map สำหรับคำถามปลายเปิด (ใช้ search แทน)
ตัวอย่างการใช้งาน:
{
"name": "firecrawl_search",
"arguments": {
"query": "latest AI research papers 2023",
"highlights": true,
"limit": 5,
"lang": "en",
"country": "us",
"scrapeOptions": {
"formats": ["markdown"],
"onlyMainContent": true,
"redactPII": true
}
}
}
ตั้งค่า highlights เป็น true เพื่อขอข้อความเน้นที่เกี่ยวข้องกับคำค้นหา หรือ false เพื่อเก็บตัวอย่างข้อความค้นหาเดิมไว้ ละเว้นเพื่อใช้พฤติกรรมเริ่มต้นของ API
ส่งคืน:
- อาร์เรย์ของผลลัพธ์การค้นหา (พร้อมเนื้อหาที่คัดลอกมาเพิ่มเติม หากเลือก) รวมถึงฟิลด์
idส่งidนั้นไปยังfirecrawl_search_feedbackหลังจากที่คุณใช้ผลลัพธ์แล้ว เพื่อขอคืนเครดิต 1 หน่วย (การค้นหามีค่าใช้จ่าย 2 หน่วย) และปรับปรุงคุณภาพการค้นหา
ตัวอย่างพร้อมท์:
"ค้นหางานวิจัยล่าสุดเกี่ยวกับ AI ที่ตีพิมพ์ในปี 2023"
3b. เครื่องมือส่งข้อเสนอแนะการค้นหา (firecrawl_search_feedback)
ส่งข้อเสนอแนะแบบมีโครงสร้างเกี่ยวกับผลลัพธ์ firecrawl_search ก่อนหน้า ข้อเสนอแนะครั้งแรกต่อรหัสการค้นหาจะคืนเครดิต 1 หน่วยและปรับปรุงคุณภาพการค้นหาของ Firecrawl มีคุณสมบัติ idempotent ต่อรหัสการค้นหา
เรียกใช้สิ่งนี้หลังจากการค้นหาทุกครั้งที่คุณใช้งานจริง (หรือที่ไม่ได้ช่วยอะไร) ข้อเสนอแนะที่ไม่ดี/บางส่วนด้วย missingContent มีค่าเท่ากับข้อเสนอแนะที่ดี
การยกเลิก: ตั้งค่า FIRECRAWL_NO_SEARCH_FEEDBACK=1 (หรือ FIRECRAWL_DISABLE_SEARCH_FEEDBACK=1) ในสภาพแวดล้อมเมื่อเริ่มต้นเซิร์ฟเวอร์ MCP เครื่องมือ 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'"
}
}
ส่งคืน:
- JSON
{ success, feedbackId, creditsRefunded, alreadySubmitted? }
3c. เครื่องมือข้อเสนอแนะทั่วไป (firecrawl_feedback)
ส่งข้อเสนอแนะแบบมีโครงสร้างสำหรับงานเอนด์พอยต์ v2 ที่เสร็จสมบูรณ์ผ่าน /v2/feedback
ใช้สิ่งนี้สำหรับข้อเสนอแนะระดับเอนด์พอยต์ในงาน scrape, parse, map หรือ search
สำหรับคุณภาพผลลัพธ์การค้นหาโดยเฉพาะ ควรเลือกใช้
firecrawl_search_feedback เนื่องจากมีคำแนะนำเฉพาะสำหรับการค้นหา
ให้ข้อเสนอแนะกระชับ: ใช้รหัสปัญหา แท็ก บันทึกย่อ URL หมายเลขหน้า และออบเจกต์ข้อมูลเมตาขนาดเล็ก อย่ารวมเอาต์พุตดิบจากการคัดลอก/แยกวิเคราะห์
การยกเลิก: ตั้งค่า FIRECRAWL_NO_ENDPOINT_FEEDBACK=1 (หรือ FIRECRAWL_DISABLE_ENDPOINT_FEEDBACK=1) ในสภาพแวดล้อมเมื่อเริ่มต้นเซิร์ฟเวอร์ MCP เครื่องมือ 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"
}
}
}
ส่งคืน:
- JSON
{ success, feedbackId, creditsRefunded, creditsRefundedToday?, dailyRefundCap?, dailyCapReached?, alreadySubmitted?, warning? }
4. เครื่องมือรวบรวมข้อมูล (firecrawl_crawl)
เริ่มงานรวบรวมข้อมูล สำรวจสถานะจนกว่าจะถึงสถานะสิ้นสุด และส่งคืนสถานะ/ข้อมูลการรวบรวมข้อมูลขั้นสุดท้าย
เหมาะที่สุดสำหรับ:
- การดึงเนื้อหาจากหลายหน้าที่เกี่ยวข้อง เมื่อคุณต้องการความครอบคลุมที่ครอบคลุม
ไม่แนะนำสำหรับ:
- การดึงเนื้อหาจากหน้าเดียว (ใช้การคัดลอก)
- เมื่อกังวลเกี่ยวกับขีดจำกัดของโทเค็น (ใช้ map + scrape เพื่อการควบคุมที่เข้มงวดยิ่งขึ้น)
- เมื่อคุณต้องการผลลัพธ์ที่รวดเร็ว (การรวบรวมข้อมูลอาจช้า)
คำเตือน: การตอบกลับการรวบรวมข้อมูลอาจมีขนาดใหญ่มากและอาจเกินขีดจำกัดของโทเค็น จำกัดความลึกของการรวบรวมข้อมูลและจำนวนหน้า หรือใช้ map + scrape เพื่อการควบคุมที่เข้มงวดยิ่งขึ้น
ข้อผิดพลาดทั่วไป:
- การตั้งค่า limit หรือ maxDiscoveryDepth สูงเกินไป (ทำให้โทเค็นล้น)
- ใช้การรวบรวมข้อมูลสำหรับหน้าเดียว (ใช้การคัดลอกแทน)
ตัวอย่างพร้อมท์:
"รับโพสต์บล็อกทั้งหมดจากสองระดับแรกของ example.com/blog"
ตัวอย่างการใช้งาน:
{
"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)
ตรวจสอบสถานะและผลลัพธ์ของงานรวบรวมข้อมูลที่มีอยู่ตามรหัส
{
"name": "firecrawl_check_crawl_status",
"arguments": {
"id": "550e8400-e29b-41d4-a716-446655440000"
}
}
ส่งคืน:
- การตอบกลับรวมถึงสถานะของงานรวบรวมข้อมูล:
6. เครื่องมือแยกวิเคราะห์ (firecrawl_parse)
แยกวิเคราะห์ไฟล์ในเครื่องหรือการอ้างอิงการอัปโหลดที่โฮสต์ด้วยเอนด์พอยต์ /v2/parse ของ Firecrawl
เหมาะที่สุดสำหรับ: PDF, เอกสาร Word, สเปรดชีต, ไฟล์ HTML และเอกสารอื่นๆ ที่ต้องการเอาต์พุต markdown หรือ JSON แบบมีโครงสร้าง MCP ที่โฮสต์รองรับโฟลว์การอัปโหลด-อ้างอิงสองขั้นตอน การอ่านไฟล์โดยตรงในเครื่องต้องใช้ FIRECRAWL_API_URL แบบโฮสต์เอง
ไม่แนะนำสำหรับ: URL ระยะไกล (ใช้การคัดลอก), หลายไฟล์ในการเรียกครั้งเดียว (เรียก 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. เครื่องมือแยกข้อมูล (firecrawl_extract)
แยกข้อมูลที่มีโครงสร้างจากหน้าเว็บโดยใช้ความสามารถของ LLM รองรับทั้ง AI บนคลาวด์และการแยกข้อมูลด้วย LLM แบบโฮสต์เอง
เหมาะที่สุดสำหรับ:
- การแยกข้อมูลที่มีโครงสร้างเฉพาะ เช่น ราคา ชื่อ รายละเอียด
ไม่แนะนำสำหรับ:
- เมื่อคุณต้องการเนื้อหาทั้งหมดของหน้า (ใช้การคัดลอก)
- เมื่อคุณไม่ได้มองหาข้อมูลที่มีโครงสร้างเฉพาะ
อาร์กิวเมนต์:
urls: อาร์เรย์ของ URL ที่จะแยกข้อมูลprompt: พร้อมท์ที่กำหนดเองสำหรับการแยกข้อมูลด้วย LLMsystemPrompt: พร้อมท์ระบบเพื่อแนะนำ LLMschema: JSON schema สำหรับการแยกข้อมูลที่มีโครงสร้างallowExternalLinks: อนุญาตการแยกข้อมูลจากลิงก์ภายนอกenableWebSearch: เปิดใช้งานการค้นหาเว็บเพื่อบริบทเพิ่มเติมincludeSubdomains: รวมโดเมนย่อยในการแยกข้อมูล
เมื่อใช้อินสแตนซ์แบบโฮสต์เอง การแยกข้อมูลจะใช้ LLM ที่คุณกำหนดค่าไว้ สำหรับ API บนคลาวด์ จะใช้บริการ LLM ที่จัดการโดย Firecrawl ตัวอย่างพร้อมท์:
"แยกชื่อผลิตภัณฑ์ ราคา และคำอธิบายจากหน้าผลิตภัณฑ์เหล่านี้"
ตัวอย่างการใช้งาน:
{
"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
}
}
ส่งคืน:
- ข้อมูลที่มีโครงสร้างที่แยกออกมาตามที่กำหนดโดย schema ของคุณ
{
"content": [
{
"type": "text",
"text": {
"name": "Example Product",
"price": 99.99,
"description": "This is an example product description"
}
}
],
"isError": false
}
8. เครื่องมือเอเจนต์ (firecrawl_agent)
เอเจนต์วิจัยเว็บอัตโนมัติ นี่คือเลเยอร์เอเจนต์ AI แยกต่างหากที่เรียกดูอินเทอร์เน็ต ค้นหาข้อมูล นำทางผ่านหน้าต่างๆ และแยกข้อมูลที่มีโครงสร้างตามคำค้นหาของคุณอย่างอิสระ
วิธีการทำงาน:
เอเจนต์ทำการค้นหาเว็บ ติดตามลิงก์ อ่านหน้า และรวบรวมข้อมูลโดยอัตโนมัติ สิ่งนี้ทำงานแบบ อะซิงโครนัส - มันจะส่งคืนรหัสงานทันที และคุณสำรวจ firecrawl_agent_status เพื่อตรวจสอบว่าเสร็จสิ้นเมื่อใดและดึงผลลัพธ์
เวิร์กโฟลว์อะซิงโครนัส:
- เรียก
firecrawl_agentด้วยพร้อมท์/schema ของคุณ → ส่งคืนรหัสงาน - ทำงานอื่นในขณะที่เอเจนต์ค้นคว้า (อาจใช้เวลาหลายนาทีสำหรับคำค้นหาที่ซับซ้อน)
- สำรวจ
firecrawl_agent_statusด้วยรหัสงานเพื่อตรวจสอบความคืบหน้า - เมื่อสถานะเป็น "completed" การตอบกลับจะรวมข้อมูลที่แยกออกมา
เหมาะที่สุดสำหรับ:
- งานวิจัยที่ซับซ้อนซึ่งคุณไม่ทราบ URL ที่แน่นอน
- การรวบรวมข้อมูลจากหลายแหล่ง
- การค้นหาข้อมูลที่กระจัดกระจายอยู่ทั่วเว็บ
- งานที่คุณสามารถทำงานอื่นได้ในขณะที่รอผลลัพธ์
ไม่แนะนำสำหรับ:
- การคัดลอกหน้าเดียวอย่างง่ายที่คุณทราบ URL (ใช้ scrape กับรูปแบบ JSON - เร็วกว่าและถูกกว่า)
อาร์กิวเมนต์:
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" }
}
}
}
}
}
}
}
จากนั้นสำรวจด้วย 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"
}
}
ส่งคืน:
- รหัสงานสำหรับการตรวจสอบสถานะ ใช้
firecrawl_agent_statusเพื่อสำรวจผลลัพธ์
9. ตรวจสอบสถานะเอเจนต์ (firecrawl_agent_status)
ตรวจสอบสถานะของงานเอเจนต์และดึงผลลัพธ์เมื่อเสร็จสมบูรณ์ ใช้สิ่งนี้เพื่อสำรวจผลลัพธ์หลังจากเริ่มเอเจนต์
รูปแบบการสำรวจ: การวิจัยของเอเจนต์อาจใช้เวลาหลายนาทีสำหรับคำค้นหาที่ซับซ้อน สำรวจเอนด์พอยต์นี้เป็นระยะ (เช่น ทุก 10-30 วินาที) จนกว่าสถานะจะเป็น "completed" หรือ "failed"
{
"name": "firecrawl_agent_status",
"arguments": {
"id": "550e8400-e29b-41d4-a716-446655440000"
}
}
สถานะที่เป็นไปได้:
processing: เอเจนต์กำลังค้นคว้าอยู่ - ตรวจสอบอีกครั้งในภายหลังcompleted: การวิจัยเสร็จสิ้น - การตอบกลับรวมข้อมูลที่แยกออกมาfailed: เกิดข้อผิดพลาด
10. เครื่องมือโต้ตอบ (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 วิจัย
เครื่องมือวิจัยที่มีให้:
firecrawl_research_search_papers: ค้นหาเอกสารงานวิจัยfirecrawl_research_inspect_paper: ตรวจสอบเอกสารหนึ่งฉบับfirecrawl_research_related_papers: ค้นหาเอกสารที่เกี่ยวข้องfirecrawl_research_read_paper: อ่านเนื้อหาเอกสารfirecrawl_research_search_github: ค้นหาที่เก็บ GitHub
เหมาะที่สุดสำหรับ: เวิร์กโฟลว์การทบทวนวรรณกรรม การค้นหาเอกสาร และการค้นพบที่เก็บ ซึ่งเอเจนต์ต้องการพื้นผิวการวิจัยที่โฟกัสแทนการคัดลอกเว็บทั่วไป
13. เครื่องมือตรวจสอบ (firecrawl_monitor_*)
สร้างและจัดการตัวตรวจสอบหน้าแบบเกิดซ้ำ ตัวตรวจสอบจะรันการคัดลอกหรือรวบรวมข้อมูลตามกำหนดเวลา เปรียบเทียบผลลัพธ์แต่ละรายการกับสแนปช็อตที่เก็บไว้ล่าสุด และสามารถแจ้งเตือนผ่าน webhook หรืออีเมล
เหมาะที่สุดสำหรับ:
- การเฝ้าดูหนึ่งหน้าหรือไม่กี่หน้าเมื่อเวลาผ่านไป
- การแจ้งเตือนเมื่อมีการเปลี่ยนแปลงที่มีความหมายโดยใช้เป้าหมายภาษาอังกฤษแบบธรรมดา
- การติดตามประวัติการตรวจสอบและการเปลี่ยนแปลงระดับหน้า
รูปแบบการสร้างที่แนะนำ:
ใช้ page หรือ pages พร้อมกับ goal เซิร์ฟเวอร์ MCP จะสร้างคำขอตัวตรวจสอบด้วยกำหนดการ 30 นาที และ API จะเปิดใช้งานการตัดสินการเปลี่ยนแปลงที่มีความหมายโดยอัตโนมัติ
การตัดสินการเปลี่ยนแปลงที่มีความหมายจะทำงานโดยอัตโนมัติเมื่อตั้งค่า goal webhook ของหน้าจะเปิดเผย isMeaningful และ judgment ในเหตุการณ์ monitor.page
เขียนเป้าหมายเป็นคำแนะนำตัวตรวจสอบที่กระชับ 2-3 ประโยค ระบุสิ่งที่ควรเรียกการแจ้งเตือน รักษาขอบเขตใดๆ ที่ผู้ใช้ให้ไว้ และรวมการยกเว้นเฉพาะเจตนาเมื่อเห็นได้ชัดจากคำขอเท่านั้น สัญญาณรบกวนทั่วไป เช่น ช่องว่าง การเปลี่ยนแปลงเฉพาะการจัดรูปแบบ รหัสคำขอ พารามิเตอร์การติดตาม ข้อมูลเมตาทั่วไป และโครมของหน้าที่ไม่เกี่ยวข้อง ได้รับการจัดการโดยตัวตัดสินแล้ว ดังนั้นอย่าทำซ้ำในทุกเป้าหมาย หากผู้ใช้คลุมเครือ ให้รักษาเป้าหมายให้กว้าง หากพวกเขาขอการตรวจสอบแบบกว้างหรือ "การเปลี่ยนแปลงใดๆ" ให้รักษาสิ่งนั้นไว้ หากผู้ใช้บอกว่าพวกเขาไม่สนใจบางสิ่ง ให้รวมสิ่งนั้นไว้อย่างชัดเจน
{
"name": "firecrawl_monitor_create",
"arguments": {
"page": "https://example.com/pricing",
"goal": "Alert when pricing, packaging, or launch messaging changes."
}
}
หลายหน้าพร้อม webhooks:
{
"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
ระบบบันทึกข้อมูล
เซิร์ฟเวอร์มีการบันทึกข้อมูลที่ครอบคลุม:
- สถานะและความคืบหน้าของการดำเนินการ
- ตัวชี้วัดประสิทธิภาพ
- การติดตามขีดจำกัดอัตราการเรียก
- สภาวะข้อผิดพลาด
ตัวอย่างข้อความบันทึก:
[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 repository
- สร้าง branch ฟีเจอร์ของคุณ
- รันการทดสอบ:
npm test - ส่ง pull request
ขอบคุณผู้มีส่วนร่วม
ขอบคุณ @vrknetha, @cawstudios สำหรับการพัฒนาเริ่มต้น!
ขอบคุณ MCP.so และ Klavis AI สำหรับการโฮสต์ และ @gstarwd, @xiangkaiz และ @zihaolin96 สำหรับการรวมเซิร์ฟเวอร์ของเรา
ใบอนุญาต
MIT License - ดูรายละเอียดได้ที่ไฟล์ LICENSE