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

  1. เปิดการตั้งค่า Cursor
  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
  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 ของคุณ หากคุณยังไม่มี คุณสามารถสร้างบัญชีและรับได้จาก 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

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

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 ของคุณ
    • จำเป็นเมื่อใช้ 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: พร้อมท์ที่กำหนดเองสำหรับการแยกข้อมูลด้วย LLM
  • systemPrompt: พร้อมท์ระบบเพื่อแนะนำ LLM
  • schema: 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 เพื่อตรวจสอบว่าเสร็จสิ้นเมื่อใดและดึงผลลัพธ์

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

  1. เรียก firecrawl_agent ด้วยพร้อมท์/schema ของคุณ → ส่งคืนรหัสงาน
  2. ทำงานอื่นในขณะที่เอเจนต์ค้นคว้า (อาจใช้เวลาหลายนาทีสำหรับคำค้นหาที่ซับซ้อน)
  3. สำรวจ firecrawl_agent_status ด้วยรหัสงานเพื่อตรวจสอบความคืบหน้า
  4. เมื่อสถานะเป็น "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 และ notification
  • firecrawl_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

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

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

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

ขอบคุณ @vrknetha, @cawstudios สำหรับการพัฒนาเริ่มต้น!

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

ใบอนุญาต

MIT License - ดูรายละเอียดได้ที่ไฟล์ LICENSE