Kagi Search

ทางการ

ค้นหาเว็บโดยใช้ API การค้นหาของ Kagi

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

  • ค้นหาเว็บ — ขอให้ผู้ช่วยค้นหาเว็บ ข่าว วิดีโอ พอดแคสต์ หรือรูปภาพผ่าน kagi_search_fetch
  • ค้นหาแบบกรอง — จำกัดผลลัพธ์ด้วยการรวมหรือตัดโดเมน ช่วงวันที่ ประเภทไฟล์ หรือเลนส์ของ Kagi ผ่าน kagi_search_fetch
  • ดึงเนื้อหาจากหน้าเว็บ — ขอให้ดึงเนื้อหาจากหน้าเว็บเพิ่มเติมควบคู่กับผลการค้นหาโดยใช้ kagi_search_fetch
  • ดึงเนื้อหาทั้งหน้า — ขอให้ผู้ช่วยดึงเนื้อหาทั้งหมดของหน้าเว็บในรูปแบบมาร์กดาวน์ด้วย kagi_extract
  • เอนด์พอยต์ที่โฮสต์ไว้ — เชื่อมต่อไคลเอนต์ MCP ที่รองรับ HTTP กับ https://mcp.kagi.com/mcp และยืนยันตัวตนด้วยคีย์ API ของ Kagi ผ่านการยืนยันตัวตนแบบ Bearer

เอกสาร

Kagi MCP Server

เซิร์ฟเวอร์ MCP ที่ขับเคลื่อนด้วย Kagi API โดยมีเครื่องมือค้นหาและดึงเนื้อหาให้ไคลเอ็นต์ที่รองรับ MCP ใช้งาน

เครื่องมือ

  • kagi_search_fetch - ค้นหาเว็บ ข่าว วิดีโอ พอดแคสต์ และรูปภาพ พร้อมตัวเลือกดึงเนื้อหาจากหน้า ตัวกรอง และ Kagi lenses
  • kagi_extract - ดึงเนื้อหาทั้งหมดของหน้าในรูปแบบ markdown

หมายเหตุ: เครื่องมือ kagi_fastgpt และ kagi_summarizer รุ่นก่อนถูกนำออกแล้ว โดยมีแผนจะนำทั้งสองกลับมาในรุ่นถัดไป

เซิร์ฟเวอร์ที่โฮสต์ไว้

เราให้บริการเซิร์ฟเวอร์ MCP ที่โฮสต์ไว้ที่ https://mcp.kagi.com/mcp — ไม่ต้องติดตั้ง เพียงกำหนดให้ไคลเอ็นต์ MCP ที่รองรับ HTTP เชื่อมต่อไปยังเซิร์ฟเวอร์นี้ แล้วตรวจสอบสิทธิ์ด้วย Kagi API key ของคุณ

ขณะนี้ยังไม่รองรับ OAuth2 (อยู่ในแผนงานของเรา) ดังนั้นในตอนนี้ ให้รับ API key จากแดชบอร์ด แล้วส่งผ่านการตรวจสอบสิทธิ์ HTTP แบบ Bearer

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

claude mcp add kagi https://mcp.kagi.com/mcp --transport http --header "Authorization: Bearer $(read -sp 'API key: ' k; echo $k)" --scope user

หากต้องการเรียกใช้ด้วยตนเอง โปรดดู การตั้งค่าไคลเอ็นต์ สำหรับการติดตั้ง uvx ในเครื่อง หรือ การโฮสต์ด้วยตนเอง เพื่อโฮสต์เซิร์ฟเวอร์ HTTP บนโครงสร้างพื้นฐานของคุณเอง

ข้อกำหนด

  • Kagi API key ใน KAGI_API_KEY
  • uv สำหรับวิธีติดตั้ง uvx ที่แนะนำ

ติดตั้ง uv:

curl -LsSf https://astral.sh/uv/install.sh | sh

Windows:

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

การตั้งค่าไคลเอ็นต์

Codex CLI

codex mcp add kagi --env KAGI_API_KEY=<YOUR_API_KEY_HERE> -- uvx kagimcp

Codex จะเขียนการกำหนดค่า MCP ลงใน ~/.codex/config.toml

Claude Desktop

ติดตั้ง uv ก่อน

MacOS/Linux:

curl -LsSf https://astral.sh/uv/install.sh | sh

Windows:

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

จากนั้นไปที่การกำหนดค่า Claude Desktop (เข้าถึงได้ผ่าน Settings -> Developer -> Edit Config):

{
  "mcpServers": {
    "kagi": {
      "command": "uvx",
      "args": ["kagimcp"],
      "env": {
        "KAGI_API_KEY": "YOUR_API_KEY_HERE"
      }
    }
  }
}

Claude Code

claude mcp add kagi -e KAGI_API_KEY="YOUR_API_KEY_HERE" -- uvx kagimcp

Smithery

npx -y @smithery/cli install kagimcp --client claude

Kiro

เพิ่มการกำหนดค่าลงในไฟล์กำหนดค่า MCP ของ Kiro (~/.kiro/settings/mcp.json สำหรับการตั้งค่าทั่วโลก หรือ .kiro/settings/mcp.json สำหรับการตั้งค่าเฉพาะโปรเจกต์) โดยใช้ JSON แบบ mcpServers เดียวกับ Claude Desktop ดูรายละเอียดเพิ่มเติมได้ที่ เอกสารประกอบ Kiro MCP

OpenCode

แก้ไขไฟล์การกำหนดค่า OpenCode ใน ~/.config/opencode/opencode.json แล้วเพิ่มรายการต่อไปนี้:

{
  "mcp": {
    "kagi": {
      "type": "local",
      "command": ["uvx", "kagimcp"],
      "enabled": true,
      "environment": {
        "KAGI_API_KEY": "<YOUR_API_KEY_HERE>"
      }
    }
  }
}

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

  • ค้นหา: Who was Time's 2024 person of the year?
  • ดึงเนื้อหา: extract the full content of https://en.wikipedia.org/wiki/Model_Context_Protocol

การกำหนดค่า

ตัวแปรสภาพแวดล้อมคำอธิบาย
KAGI_API_KEYKagi API key ที่จำเป็น
FASTMCP_LOG_LEVELระดับการบันทึกล็อก เช่น ERROR
KAGI_SEARCH_TIMEOUTระยะหมดเวลาของการค้นหาเป็นวินาที ค่าเริ่มต้นคือ 10
KAGI_EXTRACT_TIMEOUTระยะหมดเวลาของการดึงเนื้อหาเป็นวินาที ค่าเริ่มต้นคือ 30
KAGI_MAX_RETRIESจำนวนครั้งสูงสุดที่ลองใหม่หลังจากคำขอแรก ค่าเริ่มต้นคือ 2; กำหนดเป็น 0 เพื่อปิดการลองใหม่
KAGI_HIDDEN_PARAMSพารามิเตอร์การค้นหาที่คั่นด้วยจุลภาค ซึ่งจะซ่อนจากสคีมาที่ LLM มองเห็น
KAGI_SEARCH_FORMATรูปแบบผลลัพธ์การค้นหา: json (ค่าเริ่มต้น) หรือ markdown (markdown จาก Search API โดยตรง ซึ่งส่งต่อโดยไม่เปลี่ยนแปลง)

พารามิเตอร์การค้นหาที่ซ่อนได้:

workflow, extract_count, limit, include_domains, exclude_domains, time_relative, after, before, file_type, lens_id

ตัวอย่าง:

KAGI_HIDDEN_PARAMS="extract_count,after,before,time_relative,include_domains,exclude_domains"

การพัฒนาในเครื่อง

git clone https://github.com/kagisearch/kagimcp.git
cd kagimcp
uv sync

เรียกใช้ในเครื่องผ่าน stdio:

KAGI_API_KEY=<YOUR_API_KEY_HERE> uv run kagimcp

เรียกใช้ด้วยการขนส่งแบบ streamable HTTP:

KAGI_API_KEY=<YOUR_API_KEY_HERE> uv run kagimcp --http --host 0.0.0.0 --port 8000

การโฮสต์ด้วยตนเอง

โหมด HTTP รองรับผู้ใช้หลายราย โดยแต่ละคำขอจะส่ง API key ผ่านส่วนหัว Authorization: Bearer <key> แทนการใช้ตัวแปรสภาพแวดล้อมระดับเซิร์ฟเวอร์ ทำให้เซิร์ฟเวอร์ หนึ่งอินสแตนซ์ให้บริการผู้ใช้หลายรายได้ ใน repo มี Dockerfile ที่ติดตั้ง kagimcp เวอร์ชันที่กำหนดไว้จาก PyPI และเรียกใช้ในโหมด HTTP คอนเทนเนอร์รองรับ $PORT จึงทำงานได้บนทุกแพลตฟอร์มที่กำหนดค่านี้ให้ (Railway, Render, Cloud Run, Fly.io ฯลฯ)

สร้างและเรียกใช้ในเครื่อง:

docker build -t kagimcp-hosted .
docker run --rm -p 8000:8000 kagimcp-hosted

ทดสอบเบื้องต้น:

curl -sL http://127.0.0.1:8000/mcp -X POST \
  -H "authorization: Bearer $KAGI_API_KEY" \
  -H "content-type: application/json" \
  -H "accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

หากต้องการอัปเดตเวอร์ชันในระบบจริง ให้แก้ไขเวอร์ชันที่กำหนดไว้ใน Dockerfile แล้วนำไปใช้งานอีกครั้ง

การแก้ไขข้อบกพร่อง

ตรวจสอบแพ็กเกจที่เผยแพร่แล้ว:

npx @modelcontextprotocol/inspector uvx kagimcp

ตรวจสอบสำเนาในเครื่อง:

npx @modelcontextprotocol/inspector uv --directory /ABSOLUTE/PATH/TO/kagimcp run kagimcp

โดยปกติจะเข้าถึง inspector ได้ที่ http://localhost:5173

คำแนะนำสำหรับรุ่นก่อนเผยแพร่

หากใช้บิลด์รุ่นก่อนเผยแพร่ ให้ทำตามคำแนะนำการติดตั้งเดิม แต่ใช้ uvx --prerelease allow --from kagimcp==1.0.0rc2 kagimcp แทน uvx kagimcp (แทนที่ 1.0.0rc2 ด้วยเวอร์ชันที่ต้องการติดตั้ง)