🚀 kagi-ken-mcp
kagi-ken-mcp 是一個輕量級的 Node MCP 服務器,圍繞 kagi-ken 包 構建,可使用 Kagi 會話令牌訪問 Kagi.com 的服務:
- 搜索:在 Kagi 上進行搜索。
- 摘要生成:使用 Kagi 的摘要生成器,根據 URL 或文本內容創建摘要。
與需要 API 訪問權限的官方 Kagi API 不同,此 MCP 服務器使用你現有的 Kagi 會話來訪問搜索和摘要生成功能。
“Kagi-ken” 是 “Kagi”(服務名稱)和 “token”(令牌)的組合詞。
🚀 快速開始
如果你已經擁有 Kagi 訂閱但沒有 API 訪問權限,卻想通過大型語言模型(LLMs)或像 Claude 這樣的智能代理以編程方式訪問 Kagi 的服務,那麼這個 MCP 服務器將為你提供一個替代方案。
✨ 主要特性
- 搜索:使用 Kagi 搜索獲取網頁結果,並支持併發查詢處理。
- 摘要生成:對來自 URL 的內容進行摘要生成,支持自定義輸出類型和語言。
服務器支持兩種使用 Kagi 會話令牌的方法(見安裝指南),優先級如下:
KAGI_SESSION_TOKEN 環境變量。
- 包含令牌字符串的
~/.kagi_session_token 文件。
它具備全面的錯誤處理機制:
- 連接超時(每次搜索 10 秒)。
- 無效輸入驗證。
- 環境變量驗證。
- 優雅的錯誤格式化。
📦 安裝指南
需要 Node.js 22+ 版本。
1. 獲取 Kagi 會話令牌
- 在瀏覽器中訪問 Kagi 設置。
- 複製 會話鏈接。
- 從鏈接中提取
token 值。
- 將該值用作會話令牌:保存到
~/.kagi_session_token(推薦),或者作為 KAGI_SESSION_TOKEN 環境變量傳遞。
服務器將自動優先嚐試使用環境變量,然後再嘗試使用令牌文件。
⚠️ 重要提示
請妥善保管你的會話令牌。它可以訪問你的 Kagi 賬戶。
2.a. 將 MCP 服務器添加到 Claude Desktop
將 kagi-ken-mcp 添加到你的 claude_desktop_config.json 文件中,你可以通過 Claude Desktop 應用的設置 → 開發者 → 本地 MCP 服務器 → 編輯配置來打開該文件。
選項 1:使用令牌文件(推薦)
{
"mcpServers": {
"kagi-ken-mcp": {
"command": "npx",
"args": ["-y", "github:czottmann/kagi-ken-mcp"]
}
}
}
選項 2:使用環境變量
{
"mcpServers": {
"kagi-ken-mcp": {
"command": "npx",
"args": ["-y", "github:czottmann/kagi-ken-mcp"],
"env": {
"KAGI_SESSION_TOKEN": "YOUR_SESSION_TOKEN_HERE"
}
}
}
}
安裝後操作
禁用 Claude Desktop 的內置網絡搜索,以便它使用此 MCP 服務器。你還可以在設置的“個人偏好”(即系統提示)中添加以下內容:
進行網絡搜索時,使用 kagi-ken-mcp MCP 服務器的 `kagi_search_fetch` 工具。
對 URL 內容進行摘要生成時,使用 kagi-ken-mcp MCP 服務器的 `kagi_summarizer` 工具。
2.b. 將 MCP 服務器添加到 Claude Code
選項 1:使用令牌文件(推薦)
claude mcp add kagi-ken-mcp --scope user -- npx -y github:czottmann/kagi-ken-mcp
選項 2:使用環境變量
claude mcp add kagi-ken-mcp \
--scope user \
--env KAGI_SESSION_TOKEN="YOUR_SESSION_TOKEN_HERE" -- \
npx -y github:czottmann/kagi-ken-mcp
安裝後操作
可選擇在相關的 .claude/settings*.json 文件中設置權限,以禁用 Claude Code 的內置網絡搜索:
{
"permissions": {
"deny": [
"WebSearch"
],
"allow": [
"mcp__kagi-ken-mcp__kagi_search_fetch",
"mcp__kagi-ken-mcp__kagi_summarizer"
]
}
}
💻 使用示例
例如,提出需要使用工具的查詢,如 “2024 年《時代》週刊的年度人物是誰?” 用於搜索,或 “總結這個視頻:https://www.youtube.com/watch?v=sczwaYyaevY” 用於摘要生成。
工具說明
kagi_search_fetch
使用 Kagi 搜索 API 根據一個或多個查詢獲取網頁結果。結果會連續編號,方便參考。
參數:
queries(字符串數組):一個或多個搜索查詢。
kagi_summarizer
使用 Kagi 摘要生成 API 對來自 URL 的內容進行摘要生成。支持包括網頁、視頻和音頻在內的各種文檔類型。
參數:
url(字符串):要進行摘要生成的 URL。
summary_type(枚舉):"summary" 表示段落形式的摘要,"takeaway" 表示要點形式的摘要(默認:"summary")。
target_language(字符串,可選):語言代碼(例如,"EN" 表示英語,默認:"EN")。
🔧 技術細節
項目結構
kagi-ken-mcp/
├── src/
│ ├── index.js # 主服務器入口點
│ ├── tools/
│ │ ├── search.js # 搜索工具實現
│ │ └── summarizer.js # 摘要生成工具實現
│ └── utils/
│ └── formatting.js # 實用函數
├── package.json
└── README.md
安裝
-
克隆倉庫:
git clone <repository-url>
cd kagi-ken-mcp
-
安裝依賴:
npm install
在開發模式下運行
npm run dev
調試
使用 MCP 檢查器進行調試:
npx @modelcontextprotocol/inspector node ./src/index.js
然後在 http://localhost:5173 訪問檢查器。如果使用環境變量,請在檢查器的環境變量部分添加你的 KAGI_SESSION_TOKEN。
貢獻代碼
- 分叉倉庫。
- 創建功能分支。
- 進行更改。
- 使用 MCP 檢查器進行測試。
- 提交拉取請求。
📄 許可證
此項目的作者是 Carlo Zottmann,郵箱 carlo@zottmann.dev,個人網站為 https://c.zottmann.dev,GitHub 主頁為 https://github.com/czottmann。
本項目與 Kagi 沒有關聯,也未得到其認可。作者只是 Kagi 的忠實用戶。
💡 使用建議
作者開發了一些與快捷指令相關的 macOS 和 iOS 生產力應用,如 Actions For Obsidian、Browser Actions(為多個主流瀏覽器添加快捷指令支持)和 BarCuts(一個非常實用的上下文快捷指令啟動器)。歡迎試用!
相關項目