Firecrawl

ทางการ

ดึงข้อมูลเว็บด้วย Firecrawl

GitHub
7.3k
ลองใช้ MCP นี้ผู้สนับสนุน

คุณทำอะไรได้บ้างด้วย Firecrawl MCP?

  • ดึงข้อมูลจาก URL ใด ๆ เป็นข้อมูลที่สะอาด — ขอรายละเอียดสินค้า บทความ หรือ JSON ที่มีโครงสร้างจากหน้าเดียวผ่าน firecrawl_scrape พร้อมตัวเลือกสำหรับ markdown, JSON schema หรือการดึงข้อมูลแบรนด์
  • ค้นหาเว็บพร้อมบริบท — ใช้ firecrawl_search เพื่อค้นหาหน้าที่เกี่ยวข้อง และสามารถดึงเนื้อหาได้ตามต้องการ พร้อมตัวกรองไฮไลต์ ภาษา และประเทศเพื่อผลลัพธ์ที่ตรงเป้า
  • แผนผังโครงสร้าง URL ของเว็บไซต์ — ค้นหา URL ที่ถูกจัดทำดัชนีทั้งหมดบนโดเมนด้วย firecrawl_map เพื่อวางแผนว่าจะดึงข้อมูลอะไรต่อไป
  • รวบรวมข้อมูลหลายหน้าโดยอัตโนมัติ — เริ่มงาน firecrawl_crawl เพื่อดึงเนื้อหาทั่วทั้งส่วนของเว็บไซต์ จากนั้นตรวจสอบความคืบหน้าด้วย firecrawl_check_crawl_status
  • ดำเนินการวิจัยเชิงลึกแบบอัตโนมัติ — มอบหมายคำถามที่ซับซ้อนจากหลายแหล่งให้ firecrawl_agent และตรวจสอบ firecrawl_agent_status เพื่อผลลัพธ์ที่มีโครงสร้าง
  • โต้ตอบกับหน้าเว็บสด — ใช้ firecrawl_interact เพื่อคลิก พิมพ์ และนำทางบนเว็บไซต์แบบไดนามิก จากนั้นหยุดเซสชันด้วย firecrawl_interact_stop

เอกสาร

Firecrawl MCP Server

เซิร์ฟเวอร์ Model Context Protocol (MCP) ที่นำ Firecrawl มาสู่เอเจนต์ AI ที่รองรับ MCP — ค้นหา สกัดข้อมูล และโต้ตอบกับเว็บจริง เพื่อให้ได้บริบทที่สะอาดพร้อมใช้งานกับเอเจนต์

ขอบคุณอย่างยิ่ง @vrknetha, @knacklabs สำหรับการพัฒนาเวอร์ชันเริ่มต้น!

คุณสมบัติ

  • ค้นหาเว็บและรับเนื้อหาทั้งหน้า
  • ค้นหาดัชนีที่สร้างขึ้นสำหรับเอเจนต์เขียนโค้ด: GitHub issues, pull requests ที่รวมแล้ว, READMEs และเอกสาร
  • สกัดข้อมูลจาก URL ใดก็ได้ให้เป็นข้อมูลที่มีโครงสร้างสะอาด
  • โต้ตอบกับหน้าเว็บ — คลิก นำทาง และดำเนินการ
  • ค้นคว้าเชิงลึกด้วยเอเจนต์อัตโนมัติ
  • การลองใหม่และการจำกัดอัตราอัตโนมัติ
  • รองรับคลาวด์และโฮสต์เอง
  • รองรับ SSE

ลองเล่นกับ MCP Server ของเราบนสนามทดลองของ MCP.so หรือบน Klavis AI

การติดตั้ง

MCP แบบโฮสต์ (ฟรีแบบไม่ต้องใช้คีย์)

เชื่อมต่อไปยังเซิร์ฟเวอร์โฮสต์ระยะไกลโดยไม่ต้องตั้งค่าอะไร:

https://mcp.firecrawl.dev/v2/mcp

ในแบบฟรีที่ไม่ต้องใช้คีย์ scrape, search และ parse ทำงานได้โดยไม่ต้องใช้ API key (จำกัดอัตรา) เครื่องมืออื่น ๆ เช่น crawl, map และ agent ยังคงต้องใช้คีย์

ควรใช้ OAuth หรือ API key เมื่อผู้ใช้สามารถสมัครใช้งานได้ เพราะจะปลดล็อกชุดเครื่องมือทั้งหมดและขีดจำกัดที่สูงขึ้น

สำหรับการเชื่อมต่อบัญชีแบบโต้ตอบ ให้กำหนดค่า MCP client ของคุณให้ใช้ URL เซิร์ฟเวอร์นี้ นี่คือ MCP endpoint ไม่ใช่หน้าเบราว์เซอร์; ให้ใช้ขั้นตอนการเชื่อมต่อบัญชีของ client และอย่าเพิ่มรายการ Firecrawl server ที่สองเมื่อเชื่อมต่อใหม่:

https://mcp.firecrawl.dev/v2/mcp-oauth

สำหรับการเชื่อมต่อแบบ API key (เช่น การผสานรวมแบบไม่มีผู้ดูแล) ให้คง URL เซิร์ฟเวอร์ไว้ดังนี้:

https://mcp.firecrawl.dev/v2/mcp

จากนั้นกำหนดค่า header หรือการตั้งค่าลับ (secret) ของ client ด้วย:

Authorization: Bearer <FIRECRAWL_API_KEY>

ห้ามใส่ API key ใน URL เซิร์ฟเวอร์เด็ดขาด ห้ามใส่ API key ในแชทของเอเจนต์ ให้กำหนดค่าใน client หรือตัวจัดการความลับ (secret manager) โดยตรง ดู คู่มือการตั้งค่า MCP แบบโฮสต์ และ คู่มือการเริ่มต้นใช้งานสำหรับเอเจนต์ สำหรับคำแนะนำเฉพาะของแต่ละ client

Endpoint เฉพาะการค้นหา

พื้นผิวแบบอ่านอย่างเดียวและค้นหาอย่างเดียวก็ถูกโฮสต์ที่:

https://mcp.firecrawl.dev/v2/mcp-search

มีเครื่องมือแบบอ่านอย่างเดียวหกตัวที่คงที่: firecrawl_search และเครื่องมือ firecrawl_research_* ห้าตัว ไม่มีการดึงเนื้อหาหน้าเว็บและมี OAuth identity ของตัวเอง; endpoint หลักข้างต้นไม่มีการเปลี่ยนแปลง ดู docs/search-profile.md สำหรับสัญญา (contract) ฉบับเต็ม

การรันด้วย 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 servers: คู่มือการกำหนดค่า Cursor MCP Server

การกำหนดค่า Firecrawl MCP บน Cursor v0.48.6

  1. เปิด Cursor Settings
  2. ไปที่ Features > MCP Servers
  3. คลิก "+ Add new global MCP server"
  4. ป้อนโค้ดต่อไปนี้:
    {
      "mcpServers": {
        "firecrawl-mcp": {
          "command": "npx",
          "args": ["-y", "firecrawl-mcp"],
          "env": {
            "FIRECRAWL_API_KEY": "YOUR-API-KEY"
          }
        }
      }
    }
    

การกำหนดค่า Firecrawl MCP บน Cursor v0.45.6

  1. เปิด Cursor Settings
  2. ไปที่ Features > MCP Servers
  3. คลิก "+ Add New MCP Server"
  4. ป้อนข้อมูลต่อไปนี้:
    • ชื่อ: "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 key ของคุณ หากยังไม่มี คุณสามารถสร้างบัญชีและรับคีย์ได้จาก https://www.firecrawl.dev/app/api-keys

หลังจากเพิ่มแล้ว ให้รีเฟรชรายการ MCP server เพื่อดูเครื่องมือใหม่ Composer Agent จะใช้ Firecrawl MCP โดยอัตโนมัติเมื่อเหมาะสม แต่คุณสามารถเรียกใช้อย่างชัดเจนได้โดยอธิบายความต้องการสกัดข้อมูลเว็บของคุณ เข้าถึง Composer ได้ด้วย Command+L (Mac) เลือก "Agent" ข้างปุ่มส่ง (submit) แล้วพิมพ์คำถามของคุณ

การรันบน 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 (เดิม)

หากต้องการติดตั้ง Firecrawl สำหรับ Claude Desktop โดยอัตโนมัติผ่าน Smithery:

npx -y @smithery/cli install @mendableai/mcp-server-firecrawl --client claude

การรันบน VS Code

สำหรับการติดตั้งแบบคลิกเดียว ให้คลิกปุ่มติดตั้งปุ่มใดปุ่มหนึ่งด้านล่าง...

Install with NPX in VS Code Install with NPX in VS Code Insiders

สำหรับการติดตั้งด้วยตนเอง ให้เพิ่มบล็อก 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 key ของคุณ
    • จำเป็นเมื่อใช้ cloud API (ค่าเริ่มต้น)
    • ไม่จำเป็นเมื่อใช้ instance แบบโฮสต์เองกับ FIRECRAWL_API_URL
  • FIRECRAWL_API_URL (ไม่บังคับ): Endpoint API แบบกำหนดเองสำหรับ instance แบบโฮสต์เอง
    • ตัวอย่าง: https://firecrawl.your-domain.com
    • หากไม่ระบุ จะใช้ cloud API (ต้องใช้ API key)

MCP OAuth (Bearer access tokens)

Firecrawl แบบโฮสต์สามารถออก access tokens ของ OAuth (fco_…) ผ่าน authorization server บน firecrawl.dev MCP server นี้จะส่งต่อข้อมูลประจำตัวที่ resolve ได้ไปยัง Firecrawl API ในรูปแบบ Authorization: Bearer …

  • HTTP stream transports (CLOUD_SERVICE=true, HTTP_STREAMABLE_SERVER=true หรือ SSE_LOCAL=true): Client ควรส่ง 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) instance ในกระบวนการเดียวกันที่สองจะให้บริการ endpoint เฉพาะการค้นหา บริการที่รวมมาพร้อมมีการกำหนดสัญญาการใช้งานแบบตายตัว: nginx กำหนดเส้นทาง /v2/mcp-search ไปยัง instance บนพอร์ตเครื่อง 3001 และตัวระบุทรัพยากรที่ได้รับการป้องกัน OAuth คือ https://mcp.firecrawl.dev/v2/mcp-search

FIRECRAWL_MCP_SEARCH_ENABLED (ค่าเริ่มต้น true) เป็นตัวสลับการทำงานที่รองรับ; ตั้งค่าเป็น false เพื่อป้องกันไม่ให้ search instance เริ่มทำงาน กระบวนการ Node ยังรองรับ FIRECRAWL_MCP_SEARCH_PORT, FIRECRAWL_MCP_SEARCH_ENDPOINT และ FIRECRAWL_MCP_SEARCH_RESOURCE_URL สำหรับการทดสอบแบบแยกส่วน การแทนที่เหล่านั้นไม่ได้กำหนดค่าเส้นทาง nginx ที่รวมมาพร้อมหรือ allowlist ของ authorization server ใหม่ และต้องไม่ใช้แยกกันในระบบโฮสต์

search instance ต้องมีการตรวจสอบสิทธิ์สำหรับทุกคำขอ (รวมถึง tools/list) และปฏิเสธ OAuth tokens ที่มี audience ไม่ตรงกับทรัพยากรของตัวเอง

ตัวอย่างการกำหนดค่า

สำหรับการใช้งาน cloud API:

export FIRECRAWL_API_KEY=your-api-key

สำหรับ instance แบบโฮสต์เอง:

# 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 แบบกลุ่ม (bulk) เพียงครั้งเดียว ให้ใช้ Firecrawl API batch endpoint นอก MCP
  • หากคุณต้องการค้นหา URL บนเว็บไซต์: ใช้ map
  • หากคุณต้องการค้นหาเว็บเพื่อหาข้อมูล: ใช้ search
  • หากคุณมีคำถามด้านการเขียนโปรแกรม (ไลบรารี, สัญญา API, ข้อความแสดงข้อผิดพลาด, บั๊กที่ทราบ): ใช้ developer search
  • หากคุณต้องการเอกสารทางวิทยาศาสตร์ (ชีวการแพทย์ วิทยาศาสตร์ชีวภาพ คลินิก หรือเอกสาร arXiv): ใช้ research tools — ค้นหาบทคัดย่อและเนื้อหาเต็มของเอกสาร search กับ categories: ["research"] เป็นอีกสิ่งหนึ่ง: ตัวกรองเว็บไซต์เหนือผลการค้นหาเว็บทั่วไป
  • หากคุณต้องการการค้นคว้าที่ซับซ้อนข้ามหลายแหล่งที่ไม่รู้จัก: ใช้ agent
  • หากคุณต้องการวิเคราะห์ทั้งเว็บไซต์หรือส่วนใดส่วนหนึ่ง: ใช้ crawl (พร้อมขีดจำกัด!)
  • หากคุณต้องการระบบอัตโนมัติของเบราว์เซอร์แบบโต้ตอบ (คลิก พิมพ์ นำทาง): ใช้ interact พร้อม URL สำหรับหน้าใหม่ หรือ scrape + interact เมื่อคุณสกัดข้อมูลหน้าเว็บไปแล้วหรือต้องการควบคุมการสกัดที่แม่นยำยิ่งขึ้น

ตารางอ้างอิงอย่างรวดเร็ว

เครื่องมือเหมาะที่สุดสำหรับผลลัพธ์ที่ได้
scrapeเนื้อหาหน้าเดียวJSON (แนะนำ) หรือ markdown
interactโต้ตอบกับ URL หรือหน้าที่สกัดแล้วExecution result + scrapeId สำหรับโหมด URL
mapค้นหา URL บนเว็บไซต์URL[]
crawlการสกัดหลายหน้า (พร้อมขีดจำกัด)สถานะ/ข้อมูล crawl สุดท้ายหลังการ polling ภายใน
parseไฟล์และการอ้างอิงอัปโหลดแบบโฮสต์markdown, JSON หรือผลลัพธ์เอกสาร
searchค้นหาเว็บเพื่อหาข้อมูลresults[]
developerคำถามด้านการเขียนโปรแกรมเหนือแหล่งสำหรับนักพัฒนาresults[] พร้อม passages
agentการค้นคว้าข้ามหลายแหล่งที่ซับซ้อนJSON (ข้อมูลที่มีโครงสร้าง)
monitorการตรวจสอบหน้าเว็บซ้ำๆข้อมูลเมตาและความแตกต่างของ monitor/check
researchการค้นคว้าเอกสารและ GitHub repositoryผลการค้นคว้าและการจับคู่ repo

คู่มือการเลือกรูปแบบ

เมื่อใช้ scrape ให้เลือกรูปแบบที่ถูกต้อง:

  • รูปแบบ JSON (แนะนำสำหรับกรณีส่วนใหญ่): ใช้เมื่อคุณต้องการข้อมูลเฉพาะจากหน้าเว็บ กำหนด schema ตามสิ่งที่คุณต้องการสกัด ซึ่งจะช่วยให้การตอบสนองมีขนาดเล็กลงและหลีกเลี่ยง 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 เพื่อสกัดเฉพาะข้อมูลที่ต้องการ ซึ่งช่วยให้การตอบสนองมีจุดโฟกัสและป้องกัน context window ล้น
  • รูปแบบ 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 หลังจากการ map)

ข้อผิดพลาดทั่วไป:

  • ใช้ crawl เพื่อค้นหา URL แทนที่จะใช้ map

ตัวอย่างพรอมต์:

"แสดงรายการ URL ทั้งหมดบน example.com"

ตัวอย่างการใช้งาน:

{
  "name": "firecrawl_map",
  "arguments": {
    "url": "https://example.com"
  }
}

ผลลัพธ์:

  • อาร์เรย์ของ URL ที่พบในเว็บไซต์

3. เครื่องมือค้นหา (firecrawl_search)

ค้นหาเว็บและสามารถแยกเนื้อหาจากผลการค้นหาได้ตามต้องการ

เหมาะสำหรับ:

  • การค้นหาข้อมูลเฉพาะเจาะจงจากหลายเว็บไซต์ เมื่อคุณไม่รู้ว่าเว็บไซต์ใดมีข้อมูลนั้น
  • เมื่อคุณต้องการเนื้อหาที่เกี่ยวข้องมากที่สุดสำหรับคำค้น

ไม่แนะนำสำหรับ:

  • เมื่อคุณรู้แล้วว่าเว็บไซต์ใดที่จะขูดข้อมูล (ใช้ 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. เครื่องมือข้อเสนอแนะการค้นหา (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)

ส่งข้อเสนอแนะที่มีโครงสร้างสำหรับงาน endpoint v2 ที่เสร็จสมบูรณ์ผ่าน /v2/feedback ใช้สำหรับข้อเสนอแนะระดับ endpoint สำหรับงาน scrape, parse, map, หรือ search สำหรับคุณภาพผลการค้นหาโดยเฉพาะ ให้เลือกใช้ firecrawl_search_feedback เพราะมีคำแนะนำเฉพาะสำหรับการค้นหา

รักษาข้อเสนอแนะให้กระชับ: ใช้รหัสปัญหา แท็ก หมายเหตุสั้น ๆ URL หมายเลขหน้า และออบเจกต์เมตาดาต้าขนาดเล็ก อย่ารวมผลลัพธ์ scrape/parse ดิบ

เลือกไม่ใช้: ตั้งค่า 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. เครื่องมือ Crawl (firecrawl_crawl)

เริ่มงาน crawl รอจนกว่าจะถึงสถานะสุดท้าย และส่งคืนสถานะ/ข้อมูล crawl สุดท้าย

เหมาะสำหรับ:

  • การแยกเนื้อหาจากหลายหน้าที่เกี่ยวข้องกัน เมื่อคุณต้องการความครอบคลุมที่สมบูรณ์

ไม่แนะนำสำหรับ:

  • การแยกเนื้อหาจากหน้าเดียว (ใช้ scrape)
  • เมื่อข้อจำกัดของโทเค็นเป็นปัญหา (ใช้ map + scrape เพื่อควบคุมที่เข้มงวดขึ้น)
  • เมื่อคุณต้องการผลลัพธ์ที่รวดเร็ว (การ crawl อาจช้า)

คำเตือน: การตอบสนองของ crawl อาจมีขนาดใหญ่มากและอาจเกินขีดจำกัดโทเค็น จำกัดความลึกของการ crawl และจำนวนหน้า หรือใช้ map + scrape เพื่อควบคุมที่เข้มงวดขึ้น

ข้อผิดพลาดทั่วไป:

  • ตั้งค่า limit หรือ maxDiscoveryDepth สูงเกินไป (ทำให้โทเค็นล้น)
  • ใช้ 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)

ตรวจสอบสถานะและผลลัพธ์ของงาน crawl ที่มีอยู่โดยใช้ ID

{
  "name": "firecrawl_check_crawl_status",
  "arguments": {
    "id": "550e8400-e29b-41d4-a716-446655440000"
  }
}

ผลลัพธ์:

  • การตอบสนองรวมถึงสถานะของงาน crawl:

6. เครื่องมือ Parse (firecrawl_parse)

แยกไฟล์ในเครื่องหรือการอ้างอิงอัปโหลดที่โฮสต์ด้วย endpoint /v2/parse ของ Firecrawl

เหมาะสำหรับ: PDF, เอกสาร Word, สเปรดชีต, ไฟล์ HTML และเอกสารอื่น ๆ ที่ต้องการเอาต์พุต markdown หรือ JSON ที่มีโครงสร้าง MCP ที่โฮสต์รองรับโฟลว์อัปโหลด-อ้างอิงสองขั้นตอน การอ่านไฟล์โดยตรงในเครื่องต้องใช้ 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"] ใส่พรอมต์การแยกและ schema JSON ใน jsonOptions

{
  "name": "firecrawl_scrape",
  "arguments": {
    "url": "https://example.com/product",
    "formats": ["json"],
    "jsonOptions": {
      "prompt": "Extract the product name, price, and description.",
      "schema": {
        "type": "object",
        "properties": {
          "name": { "type": "string" },
          "price": { "type": "number" },
          "description": { "type": "string" }
        },
        "required": ["name", "price"]
      }
    }
  }
}

สำหรับ URL ที่ไม่รู้จักหรือการวิจัยหลายแหล่ง ใช้ firecrawl_search หรือ firecrawl_agent ก่อน Scrape

8. เครื่องมือ Agent (firecrawl_agent)

เอเจนต์วิจัยเว็บอัตโนมัติ นี่คือเลเยอร์เอเจนต์ AI แยกต่างหากที่ท่องอินเทอร์เน็ตอย่างอิสระ ค้นหาข้อมูล นำทางผ่านหน้า และแยกข้อมูลที่มีโครงสร้างตามคำค้นของคุณ

วิธีการทำงาน:

เอเจนต์ดำเนินการค้นหาเว็บ ตามลิงก์ อ่านหน้า และรวบรวมข้อมูลอย่างอิสระ สิ่งนี้ทำงาน แบบอะซิงโครนัส - มันส่งคืน job ID ทันที และคุณรอ firecrawl_agent_status เพื่อตรวจสอบว่าเสร็จสิ้นและดึงผลลัพธ์

โฟลว์แบบอะซิงโครนัส:

  1. เรียก firecrawl_agent ด้วยพรอมต์/schema ของคุณ → ส่งคืน job ID
  2. ทำงานอื่น ๆ ในขณะที่เอเจนต์วิจัย (อาจใช้เวลาหลายนาทีสำหรับคำค้นที่ซับซ้อน)
  3. รอ firecrawl_agent_status ด้วย job ID เพื่อตรวจสอบความคืบหน้า
  4. เมื่อสถานะเป็น "completed" การตอบสนองจะรวมข้อมูลที่แยกแล้ว

เหมาะสำหรับ:

  • งานวิจัยที่ซับซ้อนซึ่งคุณไม่ทราบ URL ที่แน่นอน
  • การรวบรวมข้อมูลจากหลายแหล่ง
  • การค้นหาข้อมูลที่กระจายอยู่ทั่วเว็บ
  • งานที่คุณสามารถทำงานอื่น ๆ ในขณะที่รอผลลัพธ์

ไม่แนะนำสำหรับ:

  • การขูดหน้าเดียวที่ง่ายซึ่งคุณรู้ URL (ใช้ scrape ด้วยรูปแบบ JSON - เร็วกว่าและถูกกว่า)

อาร์กิวเมนต์:

  • prompt: คำอธิบายภาษาธรรมชาติของข้อมูลที่คุณต้องการ (จำเป็น สูงสุด 10,000 ตัวอักษร)
  • urls: อาร์เรย์ URL ที่ไม่บังคับเพื่อให้เอเจนต์โฟกัสที่หน้าเฉพาะ
  • schema: schema JSON ที่ไม่บังคับสำหรับเอาต์พุตที่มีโครงสร้าง

ตัวอย่างพรอมต์:

"ค้นหาผู้ก่อตั้ง 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 โดยใช้ job ID ที่ส่งคืน

ตัวอย่างการใช้งาน (พร้อม URL - เอเจนต์โฟกัสที่หน้าเฉพาะ):

{
  "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 เพื่อรอผลลัพธ์

9. ตรวจสอบสถานะ Agent (firecrawl_agent_status)

ตรวจสอบสถานะของงาน agent และดึงผลลัพธ์เมื่อเสร็จสิ้น ใช้เพื่อรอผลลัพธ์หลังจากเริ่มเอเจนต์

รูปแบบการรอ: การวิจัยของเอเจนต์อาจใช้เวลาหลายนาทีสำหรับคำค้นที่ซับซ้อน รอ endpoint นี้เป็นระยะ (เช่น ทุก 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. เครื่องมือหยุด Interact (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_research_search_github: ค้นหาเนื้อหา GitHub issue, pull-request และ README สาธารณะที่จัดทำดัชนี

เหมาะสำหรับ: การทบทวนวรรณกรรม การค้นหาเอกสาร และโฟลว์การค้นพบที่เก็บ ซึ่งเอเจนต์ต้องการพื้นผิวการวิจัยที่โฟกัสแทนการขูดเว็บทั่วไป

firecrawl_search กับ categories: ["research"] เป็นพื้นผิวที่แตกต่าง: มันกรองผลการค้นหาเว็บทั่วไปให้เหลือเฉพาะเว็บไซต์ที่เกี่ยวข้องกับงานวิจัยและส่งคืนตัวอย่างหน้า ไม่ใช่บันทึกเอกสาร ใช้เครื่องมือเหล่านี้เมื่อคำถามเกี่ยวกับวรรณกรรมเอง และส่งกรอบคำถามเดียวกันหลายรูปแบบที่แตกต่างกัน — พวกมันแสดงเอกสารที่แตกต่างจากคำค้นเดียว

13. เครื่องมือ Monitor (firecrawl_monitor_*)

สร้างและจัดการมอนิเตอร์หน้าซ้ำ ๆ มอนิเตอร์รัน scrape หรือ crawl ตามกำหนดเวลา เปรียบเทียบแต่ละผลลัพธ์กับสแนปชอตที่เก็บไว้ล่าสุด และสามารถแจ้งเตือนผ่าน webhook หรืออีเมล

เหมาะสำหรับ:

  • การดูหน้าหนึ่งหรือสองสามหน้าเมื่อเวลาผ่านไป
  • การแจ้งเตือนการเปลี่ยนแปลงที่มีความหมายโดยใช้เป้าหมายภาษาอังกฤษธรรมดา
  • การติดตามประวัติการตรวจสอบและความแตกต่างระดับหน้า

รูปแบบการสร้างที่แนะนำ: ใช้ page หรือ pages ร่วมกับ goal เซิร์ฟเวอร์ MCP สร้างคำขอตรวจสอบด้วยกำหนดการ 30 นาที และ API เปิดใช้งานการตัดสินการเปลี่ยนแปลงที่มีความหมายโดยอัตโนมัติ

การตัดสินการเปลี่ยนแปลงที่มีความหมายจะทำงานโดยอัตโนมัติเมื่อตั้งค่า goal เว็บฮุคของเพจจะเปิดเผย 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."
  }
}

หลายเพจพร้อมเว็บฮุค:

{
  "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 และ notification
  • firecrawl_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 และสูงสุดคือ 100
  • skills: ตั้งค่าเป็น "only" เพื่อค้นหาไฟล์ทักษะเอเจนต์เพียงอย่างเดียว

ส่งคืน: ผลลัพธ์ที่จัดอันดับ แต่ละผลลัพธ์มี ID, ประเภทแหล่งที่มา (issue, pull_request, readme หรือ doc), URL, ชื่อเรื่อง และข้อความที่ตรงกันในรูปแบบ markdown

firecrawl_search ร่วมกับ categories: ["developer"] ค้นหาดัชนีเดียวกันถัดจากผลลัพธ์เว็บ ใช้เครื่องมือนี้แทนเมื่อคุณต้องการข้อความที่ตรงกันและไม่ต้องการผลลัพธ์เว็บ เอนด์พอยต์ที่ค้นหาเท่านั้นไม่เปิดเผยเครื่องมือนี้ มันคงชุดเครื่องมือหกตัวคงที่ และ firecrawl_search เข้าถึงดัชนีนักพัฒนาที่นั่น

ระบบบันทึก

เซิร์ฟเวอร์รวมการบันทึกที่ครอบคลุม:

  • สถานะการทำงานและความคืบหน้า
  • ตัวชี้วัดประสิทธิภาพ
  • การติดตามขีดจำกัดอัตรา
  • เงื่อนไขข้อผิดพลาด

ตัวอย่างข้อความบันทึก:

[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

การมีส่วนร่วม

  1. Fork ที่เก็บ
  2. สร้างสาขาฟีเจอร์ของคุณ
  3. รันการทดสอบ: npm test
  4. ส่งคำขอดึง

ขอบคุณผู้มีส่วนร่วม

ขอบคุณ @vrknetha, @cawstudios สำหรับการนำไปใช้ครั้งแรก!

ขอบคุณ MCP.so และ Klavis AI สำหรับการโฮสต์ และ @gstarwd, @xiangkaiz และ @zihaolin96 สำหรับการรวมเซิร์ฟเวอร์ของเรา

ใบอนุญาต

ใบอนุญาต MIT - ดูไฟล์ LICENSE สำหรับรายละเอียด