Firecrawl MCP

ทางการ

เพิ่มความสามารถในการขูดข้อมูลเว็บและการค้นหาอันทรงพลังให้กับไคลเอนต์ LLM เช่น Cursor และ Claude

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

  • Scrape any URL — ใช้ firecrawl_scrape เพื่อดึงเนื้อหาของหน้าเว็บเป็น markdown หรือ JSON ที่มีโครงสร้างตรงตาม schema ที่คุณระบุ
  • Search the web — ใช้ firecrawl_search เพื่อรับผลลัพธ์ที่จัดอันดับจากคำค้นหา โดยสามารถดึงเนื้อหาของหน้าเว็บได้ในคำขอเดียวกัน
  • Discover site URLs — ใช้ firecrawl_map เพื่อแสดงรายการ URL ทั้งหมดที่ถูกจัดทำดัชนีบนเว็บไซต์โดยไม่ต้องดึงเนื้อหา
  • Crawl multiple pages — ใช้ firecrawl_crawl เพื่อดึงเนื้อหาจากหลายหน้าในเว็บไซต์ โดยจำกัดด้วย limit และ maxDiscoveryDepth
  • Interact with pages — ใช้ firecrawl_interact เพื่อคลิก พิมพ์ หรือนำทางบนหน้าเว็บก่อนอ่านเนื้อหา จากนั้นดำเนินการต่อผ่าน scrapeId
  • Run autonomous research — ใช้ firecrawl_agent เพื่อรวบรวมข้อมูลที่มีโครงสร้างจากหลายแหล่งเมื่อคุณไม่ทราบ URL ที่แน่นอน

เอกสาร

Firecrawl MCP Server

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

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

คุณสมบัติ

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

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

เมื่อใดควรใช้เซิร์ฟเวอร์นี้

  • ใช้ firecrawl_scrape เมื่อคุณมี URL ที่รู้จักและต้องการเนื้อหาเป็น markdown หรือเป็น JSON ที่ตรงกับ schema ที่คุณระบุ
  • ใช้ firecrawl_map เมื่อคุณต้องการค้นหา URL บนเว็บไซต์โดยไม่ต้องดึงเนื้อหา
  • ใช้ firecrawl_crawl เมื่อคุณต้องการเนื้อหาจากหลายหน้าภายใต้เว็บไซต์; ตั้งค่า limit, includePaths/excludePaths, หรือ maxDiscoveryDepth เพื่อจำกัดขอบเขต
  • ใช้ firecrawl_search เมื่อคุณเริ่มจากคำค้นหาแทนที่จะเป็น URL และต้องการผลการค้นหาที่จัดอันดับ; เพิ่ม scrapeOptions หากคุณต้องการให้ดึงเนื้อหาหน้าเว็บในการเรียกเดียวกันด้วย (endpoint ที่ค้นหาเท่านั้นจะไม่ดึงเนื้อหา)
  • ใช้ firecrawl_interact เมื่อหน้าเว็บต้องการการคลิก, พิมพ์, หรือนำทางก่อนที่คุณจะอ่านได้ — ส่ง url สำหรับหน้าใหม่หรือ scrapeId เพื่อดำเนินการต่อจากหน้าที่คุณขูดข้อมูลแล้ว
  • ใช้เครื่องมือ firecrawl_monitor_* เมื่อหน้าเดียวกันต้องถูกตรวจสอบตามกำหนดเวลาซ้ำ ๆ พร้อม diff และการแจ้งเตือนการเปลี่ยนแปลง แทนที่จะดึงข้อมูลครั้งเดียว
  • พิจารณาสิ่งอื่นเมื่อคุณต้องเปิดเซสชันเบราว์เซอร์ค้างไว้ข้ามหลายขั้นตอนของคุณเองพร้อมตรรกะการลองใหม่และการยุติของคุณเอง: การเรียก firecrawl_interact แต่ละครั้งจะรันหนึ่งเทิร์นของ prompt หรือ code จนเสร็จและคืนการควบคุม — เซสชันสามารถคงอยู่ข้ามการเรียกผ่าน scrapeId และสิ้นสุดด้วย firecrawl_interact_stop, แต่คุณไม่สามารถขับเคลื่อนแบบโต้ตอบทีละขั้นตอนจากฝั่งไคลเอนต์ภายในครั้งเดียวได้

เซิร์ฟเวอร์นี้แสดงรายการ 25 เครื่องมือเมื่อโปรไฟล์เต็มลงทะเบียนด้วยการตั้งค่าเริ่มต้น (รวมเครื่องมือ feedback, ไม่ได้รันในโหมด local-keyless) การตั้งค่า FIRECRAWL_NO_SEARCH_FEEDBACK=1 และ/หรือ FIRECRAWL_NO_ENDPOINT_FEEDBACK=1 จะลบเครื่องมือ feedback ที่เกี่ยวข้องและลดจำนวนนี้ เช่นเดียวกับการเริ่มต้นแบบ keyless ในเครื่อง สำหรับไคลเอนต์ที่มีขีดจำกัดช่องเครื่องมือ: endpoint แบบ keyless ที่โฮสต์ (https://mcp.firecrawl.dev/v2/mcp, ไม่มี API key) เปิดเผยเพียง 3 — firecrawl_scrape, firecrawl_search, firecrawl_parse — และ endpoint ที่ค้นหาเท่านั้นโดยเฉพาะ (https://mcp.firecrawl.dev/v2/mcp-search) เปิดเผยเครื่องมือแบบอ่านอย่างเดียว 6 รายการคงที่

การติดตั้ง

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

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

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

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

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

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

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

สำหรับการเชื่อมต่อด้วย API key (ตัวอย่างเช่น การรวมระบบที่ไม่มีการดูแล), เก็บ URL เซิร์ฟเวอร์เป็น:

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

จากนั้นกำหนดค่าการตั้งค่า header หรือ secret ที่ปลอดภัยของไคลเอนต์ด้วย:

Authorization: Bearer <FIRECRAWL_API_KEY>

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

Endpoint ที่ค้นหาเท่านั้น

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

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

มันเปิดเผยชุดเครื่องมือแบบอ่านอย่างเดียวหกรายการคงที่: firecrawl_search, firecrawl_developer_search, และเครื่องมือ firecrawl_research_* สี่รายการ มันไม่ดำเนินการดึงเนื้อหาหน้าเว็บและมีเอกลักษณ์ OAuth ของตัวเอง; endpoint เต็มด้านบนไม่เปลี่ยนแปลง ดู docs/search-profile.md สำหรับสัญญาเต็มรูปแบบ

การรันด้วย npx

env FIRECRAWL_API_KEY=fc-YOUR_API_KEY npx -y firecrawl-mcp

การติดตั้งด้วยตนเอง

npm install -g firecrawl-mcp

การรันบน Cursor

การกำหนดค่า Cursor 🖥️ หมายเหตุ: ต้องใช้ Cursor เวอร์ชัน 0.45.6+ สำหรับคำแนะนำการกำหนดค่าที่เป็นปัจจุบันที่สุด โปรดอ้างอิงเอกสารอย่างเป็นทางการของ Cursor เกี่ยวกับการกำหนดค่าเซิร์ฟเวอร์ MCP: คู่มือการกำหนดค่า Cursor MCP Server

เพื่อกำหนดค่า Firecrawl MCP ใน Cursor v0.48.6

  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 ด้วย API key Firecrawl ของคุณ หากคุณยังไม่มี คุณสามารถสร้างบัญชีและรับได้จาก https://www.firecrawl.dev/app/api-keys

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

การรันบน Windsurf

เพิ่มสิ่งนี้ใน ./codeium/windsurf/model_config.json ของคุณ:

{
  "mcpServers": {
    "mcp-server-firecrawl": {
      "command": "npx",
      "args": ["-y", "firecrawl-mcp"],
      "env": {
        "FIRECRAWL_API_KEY": "YOUR_API_KEY"
      }
    }
  }
}

การรันด้วย Streamable HTTP Local Mode

เพื่อรันเซิร์ฟเวอร์โดยใช้ Streamable HTTP ในเครื่องแทนการขนส่ง stdio เริ่มต้น:

env HTTP_STREAMABLE_SERVER=true FIRECRAWL_API_KEY=fc-YOUR_API_KEY npx -y firecrawl-mcp

ใช้ url: http://localhost:3000/mcp

การติดตั้งผ่าน Smithery (Legacy)

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

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

การรันบน VS Code

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

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 ใน workspace ของคุณได้ตามตัวเลือก สิ่งนี้จะช่วยให้คุณแชร์การกำหนดค่ากับผู้อื่น:

{
  "inputs": [
    {
      "type": "promptString",
      "id": "apiKey",
      "description": "Firecrawl API Key",
      "password": true
    }
  ],
  "servers": {
    "firecrawl": {
      "command": "npx",
      "args": ["-y", "firecrawl-mcp"],
      "env": {
        "FIRECRAWL_API_KEY": "${input:apiKey}"
      }
    }
  }
}

การกำหนดค่า

ตัวแปรสภาพแวดล้อม

จำเป็นสำหรับ Cloud API

  • FIRECRAWL_API_KEY: API key Firecrawl ของคุณ
    • จำเป็นเมื่อใช้ cloud API (ค่าเริ่มต้น)
    • ไม่จำเป็นเมื่อใช้อินสแตนซ์ที่โฮสต์ด้วยตนเองกับ FIRECRAWL_API_URL
  • FIRECRAWL_API_URL (ไม่บังคับ): endpoint API ที่กำหนดเองสำหรับอินสแตนซ์ที่โฮสต์ด้วยตนเอง
    • ตัวอย่าง: https://firecrawl.your-domain.com
    • หากไม่ได้ระบุ จะใช้ cloud API (ต้องใช้ API key)

MCP OAuth (Bearer access tokens)

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

  • การขนส่งสตรีม HTTP (CLOUD_SERVICE=true, HTTP_STREAMABLE_SERVER=true, หรือ SSE_LOCAL=true): ไคลเอนต์ควรส่ง Authorization: Bearer <fco_access_token> ในคำขอ MCP OAuth bearer token มีลำดับความสำคัญเหนือ x-firecrawl-api-key / x-api-key เมื่อทั้งสองมีอยู่
  • stdio: ใช้ FIRECRAWL_OAUTH_TOKEN สำหรับ access token แบบคงที่ หรือใช้ FIRECRAWL_API_KEY ต่อไปสำหรับ API key

ใช้ access tokens (fco_…) เท่านั้น Refresh tokens (fcr_…) ต้องแลกเปลี่ยนที่ token endpoint ไม่ใช่ส่งไปยัง scrape/search API

พื้นผิวที่ค้นหาเท่านั้น (โฮสต์)

ในโหมดโฮสต์ (CLOUD_SERVICE=true) อินสแตนซ์ในกระบวนการที่สองให้บริการ endpoint ที่ค้นหาเท่านั้น บริการที่รวมมีสัญญาการปรับใช้คงที่: nginx กำหนดเส้นทาง /v2/mcp-search ไปยังอินสแตนซ์บนพอร์ตท้องถิ่น 3001, และตัวระบุทรัพยากรที่ป้องกันด้วย OAuth คือ https://mcp.firecrawl.dev/v2/mcp-search

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

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

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

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

export FIRECRAWL_API_KEY=your-api-key

สำหรับอินสแตนซ์ที่โฮสต์ด้วยตนเอง:

# Required for self-hosted
export FIRECRAWL_API_URL=https://firecrawl.your-domain.com

# Optional authentication for self-hosted
export FIRECRAWL_API_KEY=your-api-key  # If your instance requires auth

การใช้งานกับ Claude Desktop

เพิ่มสิ่งนี้ใน claude_desktop_config.json ของคุณ:

{
  "mcpServers": {
    "mcp-server-firecrawl": {
      "command": "npx",
      "args": ["-y", "firecrawl-mcp"],
      "env": {
        "FIRECRAWL_API_KEY": "YOUR_API_KEY_HERE"
      }
    }
  }
}

วิธีเลือกเครื่องมือ

ใช้คู่มือนี้เพื่อเลือกเครื่องมือที่เหมาะสมสำหรับงานของคุณ:

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

ตารางอ้างอิงด่วน

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

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

เมื่อใช้ scrape, เลือกรูปแบบที่เหมาะสม:

  • รูปแบบ JSON (แนะนำสำหรับกรณีส่วนใหญ่): ใช้เมื่อคุณต้องการข้อมูลเฉพาะจากหน้าเว็บ กำหนด schema ตามสิ่งที่คุณต้องการดึงข้อมูล ซึ่งจะช่วยให้ response มีขนาดเล็กและหลีกเลี่ยงปัญหา context window ล้น
  • รูปแบบ Markdown (ใช้เท่าที่จำเป็น): ใช้เฉพาะเมื่อคุณต้องการเนื้อหาทั้งหน้าจริงๆ เช่น การอ่านบทความทั้งฉบับเพื่อสรุป หรือการวิเคราะห์โครงสร้างหน้า

เครื่องมือที่มีให้ใช้งาน

1. เครื่องมือ Scrape (firecrawl_scrape)

ดึงเนื้อหาจาก URL เดียวพร้อมตัวเลือกขั้นสูง

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

  • การดึงเนื้อหาจากหน้าเดียว เมื่อคุณรู้แน่ชัดว่าหน้าใดมีข้อมูลที่ต้องการ

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

  • การดึงเนื้อหาจากหลายหน้า (ใช้การเรียก scrape ซ้ำสำหรับ URL ที่รู้จัก หรือใช้ map + scrape เพื่อค้นหา URL ก่อน หรือใช้ crawl สำหรับเนื้อหาทั้งหน้า)
  • เมื่อคุณไม่แน่ใจว่าหน้าใดมีข้อมูลที่ต้องการ (ใช้ search)

ข้อผิดพลาดที่พบบ่อย:

  • การส่งรายการ URL หลายรายการในการเรียก scrape ครั้งเดียว ควรเรียก scrape หนึ่งครั้งต่อหนึ่ง URL ใน MCP หากคุณต้องการดำเนินการ API แบบกลุ่มโดยเฉพาะ ให้ใช้ Firecrawl API batch endpoint นอก MCP
  • การใช้รูปแบบ markdown เป็นค่าเริ่มต้น (ใช้รูปแบบ JSON เพื่อดึงเฉพาะสิ่งที่คุณต้องการ)

การเลือกรูปแบบที่เหมาะสม:

  • รูปแบบ JSON (แนะนำ): สำหรับกรณีการใช้งานส่วนใหญ่ ใช้รูปแบบ JSON พร้อม schema เพื่อดึงเฉพาะข้อมูลที่ต้องการ ซึ่งช่วยให้ response กระชับและป้องกัน context window ล้น
  • รูปแบบ Markdown: ใช้เฉพาะเมื่องานต้องการเนื้อหาทั้งหน้าจริงๆ (เช่น การสรุปบทความทั้งฉบับ การวิเคราะห์โครงสร้างหน้า)

ตัวอย่าง Prompt:

"ดึงรายละเอียดสินค้าจาก https://example.com/product."

ตัวอย่างการใช้งาน (รูปแบบ JSON - แนะนำ):

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

ตัวอย่างการใช้งาน (รูปแบบ markdown - เมื่อต้องการเนื้อหาทั้งหมด):

{
  "name": "firecrawl_scrape",
  "arguments": {
    "url": "https://example.com/article",
    "formats": ["markdown"],
    "onlyMainContent": true
  }
}

ตัวอย่างการใช้งาน (รูปแบบ branding - ดึงข้อมูลเอกลักษณ์แบรนด์):

{
  "name": "firecrawl_scrape",
  "arguments": {
    "url": "https://example.com",
    "formats": ["branding"]
  }
}

รูปแบบ Branding: ดึงข้อมูลเอกลักษณ์แบรนด์ที่ครอบคลุม (สี ฟอนต์ การพิมพ์ ระยะห่าง โลโก้ ส่วนประกอบ UI) สำหรับการวิเคราะห์การออกแบบหรือการเลียนแบบสไตล์ ความเป็นส่วนตัว: ตั้งค่า redactPII: true เพื่อให้เนื้อหาที่ส่งกลับมีการปกปิดข้อมูลที่ระบุตัวตนได้

ส่งคืน:

  • ข้อมูลที่มีโครงสร้างแบบ JSON, markdown, โปรไฟล์ branding หรือรูปแบบอื่นๆ ตามที่ระบุ

2. เครื่องมือ Map (firecrawl_map)

ทำแผนที่เว็บไซต์เพื่อค้นหา URL ทั้งหมดที่ถูกจัดทำดัชนีบนเว็บไซต์

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

  • การค้นหา URL บนเว็บไซต์ก่อนตัดสินใจว่าจะ scrape อะไร
  • การค้นหาส่วนเฉพาะของเว็บไซต์

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

  • เมื่อคุณรู้แล้วว่า URL เฉพาะใดที่ต้องการ (ใช้ scrape)
  • เมื่อคุณต้องการเนื้อหาของหน้า (ใช้ scrape หลังจาก map)

ข้อผิดพลาดที่พบบ่อย:

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

ตัวอย่าง Prompt:

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

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

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

ส่งคืน:

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

3. เครื่องมือ Search (firecrawl_search)

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

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

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

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

  • เมื่อคุณรู้แล้วว่าเว็บไซต์ใดที่จะ scrape (ใช้ scrape)
  • เมื่อคุณต้องการความครอบคลุมที่ครอบคลุมของเว็บไซต์เดียว (ใช้ map หรือ crawl)

ข้อผิดพลาดที่พบบ่อย:

  • การใช้ crawl หรือ map สำหรับคำถามปลายเปิด (ใช้ search แทน)

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

{
  "name": "firecrawl_search",
  "arguments": {
    "query": "remote work stipend policies at tech companies",
    "highlights": true,
    "limit": 5,
    "lang": "en",
    "country": "us",
    "scrapeOptions": {
      "formats": ["markdown"],
      "onlyMainContent": true,
      "redactPII": true
    }
  }
}

ตั้งค่า highlights เป็น true เพื่อขอไฮไลต์ที่เกี่ยวข้องกับคำค้นหา หรือ false เพื่อเก็บ snippet การค้นหาต้นฉบับ ละเว้นเพื่อใช้พฤติกรรมเริ่มต้นของ API

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

ส่งคืน:

  • อาร์เรย์ของผลการค้นหา (พร้อมเนื้อหาที่ scrape ได้ตามตัวเลือก) พร้อมฟิลด์ id ส่ง id นั้นไปยัง firecrawl_search_feedback หลังจากใช้ผลลัพธ์เพื่อรับเครดิตคืน 1 เครดิต (การค้นหามีค่าใช้จ่าย 2) และปรับปรุงคุณภาพการค้นหา

ตัวอย่าง Prompt:

"เปรียบเทียบนโยบายค่าเบี้ยเลี้ยงทำงานระยะไกลของบริษัทเทคโนโลยี"

3b. เครื่องมือ Search Feedback (firecrawl_search_feedback)

ส่งความคิดเห็นที่มีโครงสร้างเกี่ยวกับผลลัพธ์ firecrawl_search ก่อนหน้า ความคิดเห็นแรกต่อ search id จะได้รับเครดิตคืน 1 เครดิตและปรับปรุงคุณภาพการค้นหาของ Firecrawl เป็นแบบ idempotent ต่อ search id

เรียกใช้หลังจากทุกการค้นหาที่คุณใช้จริง (หรือที่ไม่ช่วยเหลือ) ความคิดเห็นที่ไม่ดี/บางส่วนด้วย missingContent มีคุณค่าเท่ากับความคิดเห็นที่ดี

เลือกไม่ใช้: ตั้งค่า FIRECRAWL_NO_SEARCH_FEEDBACK=1 (หรือ FIRECRAWL_DISABLE_SEARCH_FEEDBACK=1) ในสภาพแวดล้อมเมื่อเริ่มต้น MCP server เครื่องมือ firecrawl_search_feedback จะไม่ถูกลงทะเบียน ดังนั้น agent จึงไม่สามารถเรียกใช้ได้ ผู้ดูแลทีมยังสามารถปิดใช้งานความคิดเห็นฝั่งเซิร์ฟเวอร์ได้ ในกรณีนั้นเครื่องมือจะถูกลงทะเบียนแต่จะส่งคืน feedbackErrorCode: "TEAM_OPTED_OUT" เสมอ

ฟิลด์ที่สำคัญที่สุด: missingContent เป็นอาร์เรย์ของเนื้อหาส่วนเฉพาะที่ agent คาดว่าจะพบแต่ไม่พบ หนึ่งรายการต่อหัวข้อที่ขาดหายไป — สิ่งเหล่านี้จะถูกรวบรวมข้ามทีมและบอกเราว่าควรจัดทำดัชนีอะไรต่อไป

วงเงินคืนเครดิตรายวัน (ต่อทีม ต่อวัน UTC ค่าเริ่มต้น 100 เครดิต) เมื่อ creditsRefundedToday ของทีมถึง dailyRefundCap การส่งเพิ่มเติมยังคงบันทึกความคิดเห็นแต่ไม่ได้รับเครดิตคืนอีกต่อไป response จะตั้งค่า dailyCapReached: true Agent ควรหยุดเรียกใช้เครื่องมือนี้ในช่วงที่เหลือของวัน UTC เมื่อเห็น flag นั้น

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

{
  "name": "firecrawl_search_feedback",
  "arguments": {
    "searchId": "0193f6c5-1234-7890-abcd-1234567890ab",
    "rating": "good",
    "valuableSources": [
      {
        "url": "https://docs.firecrawl.dev/features/search",
        "reason": "Most up-to-date description of /search."
      }
    ],
    "missingContent": [
      {
        "topic": "Pricing for the search endpoint",
        "description": "No pricing tier table for /search specifically."
      },
      { "topic": "Per-team rate limits" }
    ],
    "querySuggestions": "Boost docs.firecrawl.dev for queries that mention 'firecrawl'"
  }
}

ส่งคืน:

  • JSON { success, feedbackId, creditsRefunded, alreadySubmitted? }

3c. เครื่องมือ Generic Feedback (firecrawl_feedback)

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

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

เลือกไม่ใช้: ตั้งค่า FIRECRAWL_NO_ENDPOINT_FEEDBACK=1 (หรือ FIRECRAWL_DISABLE_ENDPOINT_FEEDBACK=1) ในสภาพแวดล้อมเมื่อเริ่มต้น MCP server เครื่องมือ firecrawl_feedback จะไม่ถูกลงทะเบียน ดังนั้น agent จึงไม่สามารถเรียกใช้ได้

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

{
  "name": "firecrawl_feedback",
  "arguments": {
    "endpoint": "scrape",
    "jobId": "0193f6c5-1234-7890-abcd-1234567890ab",
    "rating": "partial",
    "issues": ["missing_markdown"],
    "tags": ["docs"],
    "note": "The pricing table was missing from the markdown output.",
    "url": "https://example.com/pricing",
    "pageNumbers": [1],
    "metadata": {
      "format": "markdown"
    }
  }
}

ส่งคืน:

  • JSON { success, feedbackId, creditsRefunded, creditsRefundedToday?, dailyRefundCap?, dailyCapReached?, alreadySubmitted?, warning? }

4. เครื่องมือ Crawl (firecrawl_crawl)

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

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

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

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

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

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

ข้อผิดพลาดที่พบบ่อย:

  • การตั้งค่า limit หรือ maxDiscoveryDepth สูงเกินไป (ทำให้ token ล้น)
  • การใช้ crawl สำหรับหน้าเดียว (ใช้ scrape แทน)

ตัวอย่าง Prompt:

"ดึงบทความบล็อกทั้งหมดจากสองระดับแรกของ example.com/blog"

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

{
  "name": "firecrawl_crawl",
  "arguments": {
    "url": "https://example.com/blog/*",
    "maxDiscoveryDepth": 2,
    "limit": 100,
    "allowExternalLinks": false,
    "deduplicateSimilarURLs": true
  }
}

ส่งคืน:

  • สถานะและข้อมูล crawl สุดท้ายหลังการ poll ภายใน รวมถึง id, status, completed, total, creditsUsed, expiresAt, next และ data ใช้ id ที่ส่งกลับกับ firecrawl_check_crawl_status หากคุณต้องการตรวจสอบงานอีกครั้งในภายหลัง

5. ตรวจสอบสถานะ Crawl (firecrawl_check_crawl_status)

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

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

ส่งคืน:

  • response รวมถึงสถานะของงาน crawl:

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

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

เหมาะสำหรับ: ไฟล์ PDF, เอกสาร Word, สเปรดชีต, ไฟล์ HTML และเอกสารอื่นๆ ที่ต้องการผลลัพธ์ markdown หรือ JSON ที่มีโครงสร้าง MCP ที่โฮสต์รองรับขั้นตอน upload-ref สองขั้นตอน การอ่านไฟล์โดยตรงในเครื่องต้องใช้ FIRECRAWL_API_URL ที่โฮสต์เอง

ไม่แนะนำสำหรับ: URL ระยะไกล (ใช้ scrape), หลายไฟล์ในการเรียกครั้งเดียว (เรียก parse หนึ่งครั้งต่อไฟล์) หรือการดำเนินการเฉพาะเบราว์เซอร์ เช่น ภาพหน้าจอและการคลิก

ขั้นตอน MCP ที่โฮสต์: MCP ที่โฮสต์ไม่สามารถอ่านระบบไฟล์ของผู้เรียกได้โดยตรง เรียก firecrawl_parse ด้วย filePath เพื่อรับคำสั่งอัปโหลดระยะสั้นและ nextToolCall, อัปโหลดไฟล์ในเครื่อง จากนั้นเรียก firecrawl_parse อีกครั้งด้วย uploadRef ที่ส่งกลับ การสร้าง URL อัปโหลดที่โฮสต์ต้องมีการรับรองความถูกต้องของ Firecrawl หรือสิทธิ์แบบไม่ต้องใช้คีย์ ในโหมด npx firecrawl-mcp ในเครื่อง การแยกวิเคราะห์ไฟล์โดยตรงในปัจจุบันต้องใช้ FIRECRAWL_API_URL ที่ชี้ไปยัง Firecrawl API ที่โฮสต์เอง เซิร์ฟเวอร์ในเครื่องที่ใช้เฉพาะคีย์ API คลาวด์ธรรมดาไม่สามารถอ่านและอัปโหลดไฟล์ผ่านเครื่องมือนี้ได้

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

{
  "name": "firecrawl_parse",
  "arguments": {
    "filePath": "/absolute/path/to/document.pdf",
    "formats": ["markdown"],
    "parsers": ["pdf"],
    "zeroDataRetention": true
  }
}

ส่งคืน: เนื้อหาเอกสารที่แยกวิเคราะห์หรือคำแนะนำการอัปโหลดที่โฮสต์พร้อม nextToolCall

7. ข้อมูลที่มีโครงสร้างด้วย Scrape JSON

สำหรับข้อมูลที่มีโครงสร้างจากหน้าที่รู้จัก เรียก firecrawl_scrape หนึ่งครั้งต่อ URL ด้วย formats: ["json"] ใส่ prompt การดึงข้อมูลและ JSON schema ใน jsonOptions

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

เมื่อไม่ทราบ URL หรือข้อมูลครอบคลุมหลายเว็บไซต์ ใช้ firecrawl_agent สำหรับการวิจัยหลายแหล่ง

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

Agent วิจัยเว็บอัตโนมัติที่ส่งคืนข้อมูลที่มีโครงสร้างเมื่อคุณไม่ทราบ URL หรือคำตอบครอบคลุมหลายเว็บไซต์ อธิบายฟิลด์ที่คุณต้องการ ระบุ JSON schema และ URL เริ่มต้นได้ตามตัวเลือก จากนั้น agent จะค้นหา นำทาง อ่านหน้า และส่งคืน JSON ที่รวบรวมจากหลายแหล่ง ใช้สำหรับเอนทิตีพร้อมฟิลด์ รายการและชุดข้อมูล และหน้าที่ต้องนำทางเพื่อเข้าถึงข้อมูล สำหรับ URL ที่รู้จักหนึ่งรายการ ให้ใช้ firecrawl_scrape พร้อมรูปแบบ JSON แทน

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

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

ขั้นตอน Async:

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

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

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

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

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

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

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

ตัวอย่าง Prompt:

"ค้นหาผู้ก่อตั้ง Firecrawl และภูมิหลังของพวกเขา"

ตัวอย่างการใช้งาน (เริ่ม agent จากนั้น poll เพื่อผลลัพธ์):

{
  "name": "firecrawl_agent",
  "arguments": {
    "prompt": "Find the top 5 AI startups founded in 2024 and their funding amounts",
    "schema": {
      "type": "object",
      "properties": {
        "startups": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": { "type": "string" },
              "funding": { "type": "string" },
              "founded": { "type": "string" }
            }
          }
        }
      }
    }
  }
}

จากนั้น poll ด้วย firecrawl_agent_status โดยใช้ job ID ที่ส่งกลับ

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

{
  "name": "firecrawl_agent",
  "arguments": {
    "urls": ["https://docs.firecrawl.dev", "https://firecrawl.dev/pricing"],
    "prompt": "Compare the features and pricing information from these pages"
  }
}

ส่งคืน:

  • Job ID สำหรับการตรวจสอบสถานะ ใช้ firecrawl_agent_status เพื่อ poll ผลลัพธ์

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

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

รูปแบบการ Poll: การวิจัยของ agent อาจใช้เวลาหลายนาทีสำหรับคำถามที่ซับซ้อน Poll endpoint นี้เป็นระยะ (เช่น ทุก 10-30 วินาที) จนกว่าสถานะจะเป็น "completed" หรือ "failed"

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

สถานะที่เป็นไปได้:

  • processing: Agent ยังคงวิจัยอยู่ - กลับมาตรวจสอบในภายหลัง
  • completed: การวิจัยเสร็จสิ้น - response รวมข้อมูลที่ดึงมา
  • failed: เกิดข้อผิดพลาด

10. เครื่องมือ Interact (firecrawl_interact)

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

ตัวเลือกการใช้งาน:

  • ส่ง url เพื่อดึงข้อมูลและเปิดหน้าเว็บสำหรับการโต้ตอบในการเรียก MCP ครั้งเดียว
  • ส่ง scrapeId เพื่อโต้ตอบกับหน้าที่ดึงข้อมูลแล้วต่อไป
  • ส่งอย่างใดอย่างหนึ่งระหว่าง url หรือ scrapeId พร้อมกับ prompt หรือ code

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

{
  "name": "firecrawl_interact",
  "arguments": {
    "url": "https://example.com",
    "prompt": "Click the pricing link and summarize the visible plans"
  }
}

ผลลัพธ์: ผลการโต้ตอบ และสำหรับโหมด URL จะได้ scrapeId ที่ได้มาเพื่อติดตามผลหรือทำความสะอาด

11. เครื่องมือหยุดการโต้ตอบ (firecrawl_interact_stop)

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

{
  "name": "firecrawl_interact_stop",
  "arguments": {
    "scrapeId": "scrape-id-here"
  }
}

12. เครื่องมือวิจัย (firecrawl_research_*)

ค้นหาและตรวจสอบบทความและที่เก็บ GitHub ผ่านเครื่องมือ MCP สำหรับการวิจัย

ครอบคลุม: บทคัดย่อและเนื้อหาเต็มของบทความในสาขาชีวการแพทย์ วิทยาศาสตร์ชีวภาพ และวรรณกรรมทางคลินิก (PubMed, bioRxiv, medRxiv) รวมถึง arXiv และแหล่งข้อมูลทางวิทยาศาสตร์อื่นๆ

เครื่องมือวิจัยที่มีให้:

  • firecrawl_research_search_papers: ค้นหาข้อมูลเมตาของบทความและบทคัดย่อด้วยคำค้นหาภาษาธรรมชาติ พร้อมตัวกรองผู้เขียน หมวดหมู่ และวันที่เพิ่มเติม
  • firecrawl_research_inspect_paper: ดึงข้อมูลเมตาหลักสำหรับ ID บทความหนึ่งรายการ (arXiv, PMC, PMID หรือ DOI)
  • firecrawl_research_related_papers: ขยายจากบทความหลักหนึ่งบทความขึ้นไปผ่านกราฟการอ้างอิง
  • firecrawl_research_read_paper: อ่านข้อความเต็มจากบทความเฉพาะ

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

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

13. เครื่องมือติดตาม (firecrawl_monitor_*)

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

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

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

รูปแบบการสร้างที่แนะนำ:

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

การตัดสินการเปลี่ยนแปลงที่มีความหมายจะทำงานอัตโนมัติเมื่อตั้งค่า goal เว็บฮุคของหน้าเว็บจะแสดง isMeaningful และ judgment ในเหตุการณ์ monitor.page

เขียนเป้าหมายเป็นคำแนะนำการติดตามที่กระชับ 2-3 ประโยค ระบุสิ่งที่ควรกระตุ้นการแจ้งเตือน รักษาขอบเขตที่ผู้ใช้ให้ไว้ และรวมข้อยกเว้นเฉพาะเจตนาเมื่อชัดเจนจากคำขอเท่านั้น เสียงรบกวนทั่วไปเช่นช่องว่าง การเปลี่ยนแปลงเฉพาะรูปแบบ ID คำขอ พารามิเตอร์ติดตาม ข้อมูลเมตาทั่วไป และส่วนประกอบหน้าเว็บที่ไม่เกี่ยวข้องได้รับการจัดการโดยผู้ตัดสินแล้ว ดังนั้นอย่าทำซ้ำในทุกเป้าหมาย หากผู้ใช้คลุมเครือ ให้รักษาเป้าหมายให้กว้าง หากพวกเขาขอการติดตามแบบกว้างหรือ "การเปลี่ยนแปลงใดๆ" ให้รักษาไว้ หากผู้ใช้บอกว่าไม่สนใจบางสิ่ง ให้รวมไว้อย่างชัดเจน

{
  "name": "firecrawl_monitor_create",
  "arguments": {
    "page": "https://example.com/pricing",
    "goal": "Alert when pricing, packaging, or launch messaging changes."
  }
}

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

{
  "name": "firecrawl_monitor_create",
  "arguments": {
    "pages": ["https://example.com/pricing", "https://example.com/changelog"],
    "goal": "Alert when pricing, packaging, or launch messaging changes.",
    "webhookUrl": "https://example.com/webhooks/firecrawl"
  }
}

คำขอสร้างขั้นสูง:

ส่ง body เมื่อคุณต้องการเป้าหมายการรวบรวมข้อมูล การติดตามการเปลี่ยนแปลง JSON การเก็บรักษาแบบกำหนดเอง หรือการควบคุม judgeEnabled ที่ชัดเจน

{
  "name": "firecrawl_monitor_create",
  "arguments": {
    "body": {
      "name": "Docs monitor",
      "schedule": { "text": "hourly", "timezone": "UTC" },
      "goal": "Alert when docs pages add, remove, or materially change API behavior.",
      "targets": [{ "type": "crawl", "url": "https://example.com/docs" }]
    }
  }
}

เครื่องมือติดตามอื่นๆ:

  • firecrawl_monitor_list: รายการการติดตาม
  • firecrawl_monitor_get: รับการติดตามหนึ่งรายการ
  • firecrawl_monitor_update: อัปเดตฟิลด์รวมถึง goal, judgeEnabled, webhook และ 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"] ค้นหาดัชนีเดียวกันควบคู่กับผลลัพธ์เว็บ ใช้เครื่องมือนี้แทนเมื่อคุณต้องการข้อความที่ตรงกัน ตัวกรอง skills หรือไม่มีผลลัพธ์เว็บในการตอบกลับ เอนด์พอยต์เฉพาะการค้นหาเปิดเผยเครื่องมือทั้งสอง และตัวเลือกเดียวกันใช้ที่นั่น

ระบบบันทึก

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

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

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

[INFO] Firecrawl MCP Server initialized successfully
[INFO] Starting scrape for URL: https://example.com
[ERROR] Rate limit exceeded

การจัดการข้อผิดพลาด

เซิร์ฟเวอร์ให้การจัดการข้อผิดพลาดที่แข็งแกร่ง:

  • ข้อผิดพลาดขีดจำกัดอัตรา API แสดงต่อไคลเอนต์ MCP
  • ข้อความแสดงข้อผิดพลาดโดยละเอียด
  • ความยืดหยุ่นของเครือข่าย

ตัวอย่างการตอบสนองข้อผิดพลาด:

{
  "content": [
    {
      "type": "text",
      "text": "Error: Rate limit exceeded"
    }
  ],
  "isError": true
}

การพัฒนา

# Install dependencies
npm install

# Build
npm run build

# Run tests
npm test

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

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

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

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

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

สัญญาอนุญาต

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