Kagi Ken Mcp

Kagi Ken Mcp

🚀 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 会话令牌的方法(见安装指南),优先级如下:

  1. KAGI_SESSION_TOKEN 环境变量。
  2. 包含令牌字符串的 ~/.kagi_session_token 文件。

它具备全面的错误处理机制:

  • 连接超时(每次搜索 10 秒)。
  • 无效输入验证。
  • 环境变量验证。
  • 优雅的错误格式化。

📦 安装指南

需要 Node.js 22+ 版本。

1. 获取 Kagi 会话令牌

  1. 在浏览器中访问 Kagi 设置
  2. 复制 会话链接
  3. 从链接中提取 token 值。
  4. 将该值用作会话令牌:保存到 ~/.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

安装

  1. 克隆仓库

    git clone 
    cd kagi-ken-mcp
    
  2. 安装依赖

    npm install
    

在开发模式下运行

npm run dev

调试

使用 MCP 检查器进行调试:

npx @modelcontextprotocol/inspector node ./src/index.js

然后在 http://localhost:5173 访问检查器。如果使用环境变量,请在检查器的环境变量部分添加你的 KAGI_SESSION_TOKEN

贡献代码

  1. 分叉仓库。
  2. 创建功能分支。
  3. 进行更改。
  4. 使用 MCP 检查器进行测试。
  5. 提交拉取请求。

📄 许可证

此项目的作者是 Carlo Zottmann,邮箱 carlo@zottmann.dev,个人网站为 https://c.zottmann.dev,GitHub 主页为 https://github.com/czottmann。

本项目与 Kagi 没有关联,也未得到其认可。作者只是 Kagi 的忠实用户。

💡 使用建议

作者开发了一些与快捷指令相关的 macOS 和 iOS 生产力应用,如 Actions For ObsidianBrowser Actions(为多个主流浏览器添加快捷指令支持)和 BarCuts(一个非常实用的上下文快捷指令启动器)。欢迎试用!

相关项目

  • 0 关注
  • 0 收藏,8 浏览
  • system 提出于 2025-09-23 03:03

相似服务问题