Kagi Search

ทางการ

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

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

  • Search the web with Kagi — ขอผลลัพธ์จากเว็บ ข่าว วิดีโอ พอดแคสต์ หรือรูปภาพ พร้อมตัวเลือกในการดึงเนื้อหาหน้าเว็บและตัวกรองผ่าน kagi_search_fetch
  • Extract page content as markdown — รับเนื้อหาที่ทำความสะอาดแล้วแบบเต็มของ URL ใดๆ โดยใช้ kagi_extract
  • Apply Kagi lenses to searches — จำกัดผลลัพธ์ตามโดเมน ประเภทไฟล์ หรือช่วงเวลา โดยใช้พารามิเตอร์ lens และ filter บน kagi_search_fetch

เอกสาร

Kagi MCP Server

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

เครื่องมือ

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

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

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

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

ยังไม่รองรับ OAuth2 (อยู่ในแผนงานของเรา) ดังนั้นในตอนนี้ให้ไปรับ คีย์ API จากแดชบอร์ด และส่งผ่านการยืนยันตัวตนแบบ 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 ใน 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

เพิ่มลงในไฟล์การกำหนดค่า Kiro MCP ของคุณ (~/.kiro/settings/mcp.json สำหรับแบบ global หรือ .kiro/settings/mcp.json สำหรับแบบ project-scoped) โดยใช้ 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_KEYคีย์ Kagi API ที่จำเป็น
FASTMCP_LOG_LEVELระดับการบันทึกข้อมูล เช่น ERROR
KAGI_SEARCH_TIMEOUTระยะหมดเวลาการค้นหาเป็นวินาที ค่าเริ่มต้นคือ 10
KAGI_EXTRACT_TIMEOUTระยะหมดเวลาการดึงข้อมูลเป็นวินาที ค่าเริ่มต้นคือ 30
KAGI_MAX_RETRIESจำนวนครั้งสูงสุดในการลองใหม่หลังจากคำขอแรก ค่าเริ่มต้นคือ 2; ตั้งเป็น 0 เพื่อปิดการลองใหม่
KAGI_HIDDEN_PARAMSพารามิเตอร์การค้นหาที่คั่นด้วยเครื่องหมายจุลภาคเพื่อซ่อนจาก schema ที่หันหน้าเข้าหา LLM

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

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

รันด้วยการขนส่ง HTTP แบบสตรีมได้:

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

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

โหมด HTTP เป็นแบบ multi-tenant: แต่ละคำขอจะส่งคีย์ API ของตนผ่าน ส่วนหัว Authorization: Bearer <key> แทนที่จะเป็นตัวแปรสภาพแวดล้อมระดับเซิร์ฟเวอร์ ดังนั้นหนึ่ง อินสแตนซ์สามารถให้บริการผู้ใช้หลายคนได้ ที่เก็บมาพร้อมกับ 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 ด้วยเวอร์ชันใดก็ตามที่คุณต้องการติดตั้ง)