Kagi MCP服务器

基于kagi-cli的轻量级MCP服务器,提供搜索、翻译、摘要等多种工具功能。

  • by Microck
  • Rust
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 Microck/kagi-mcp

使用说明

弃用通知⚠

此存储库不再维护。如果你想要一个MCP服务器 kagi-cli,使用内置 kagi mcp 命令代替。请参阅以下文档 https://kagi.micr.dev/commands/mcp.

kagi mcp

kagi-mcp 是一个基于 kagi-cli.

它故意只是一个额外的回购:

  • 单独回购
  • 一个Rust二进制文件
  • 包裹 kagi CLI而不是重新实现Kagi逻辑
  • 对于结构化工具结果,默认返回TOON
  • 保持 format=json 在支持CLI格式选择的工具上可用

kagi-cli v0.5.0还附带了本机 kagi mcp 命令。当你只需要最少的内置工具时,可以使用它。当您希望将更广泛的CLI界面暴露给代理时,可以使用此存储库,包括助手、提取、新闻、翻译、丰富、帐户设置、本地历史记录、本地站点首选项、监视和通知工作流。

需求

  • kagi-cli v0.8.1或更新版本
  • A工作 kagi 二进制开启 PATH,或 KAGI_CLI_PATH 指向它
  • 通过环境变量提供的Kagi凭据
    • KAGI_SESSION_TOKEN -用户功能(搜索、快速、助手、翻译)
    • KAGI_API_KEY -对于当前 /api/v1 付费API功能(搜索、提取)
    • KAGI_API_TOKEN -为了遗产 /api/v0 付费API功能(summary、fastgpt、rich)

集 KAGI_CLI_PROFILE 当您希望每个包装好的CLI调用都使用一个命名 .kagi.toml 轮廓。环境变量仍然是建议的MCP身份验证路径,因为它们在MCP服务器配置中是显式的,不依赖于服务器进程工作目录。

kagi-mcp 将所有Kagi请求委托给已配置的 kagi 二元的。V1 API路径,包括付费的API搜索/提取 KAGI_API_KEY 当前的搜索过滤器来自 kagi-cli v0.8.1+。

构建

cargo build --release

跑

KAGI_CLI_PATH=/path/to/kagi \
KAGI_SESSION_TOKEN=... \
KAGI_API_KEY=... \
KAGI_API_TOKEN=... \
./target/release/kagi-mcp

可选环境变量:

变量 默认值 描述
KAGI_CLI_PATH kagi 上 PATH 通往 kagi 二进制
KAGI_CLI_PROFILE unset 已命名 kagi-cli 要传递为的配置文件 kagi --profile <name>
KAGI_MCP_TIMEOUT_MS 30000 子进程超时(毫秒)必须大于0

克劳德桌面

{
  "mcpServers": {
    "kagi": {
      "command": "/path/to/kagi-mcp/target/release/kagi-mcp",
      "env": {
        "KAGI_CLI_PATH": "/path/to/kagi",
        "KAGI_SESSION_TOKEN": "your-session-token",
        "KAGI_API_KEY": "your-api-key",
        "KAGI_API_TOKEN": "your-api-token"
      }
    }
  }
}

工具

搜索

工具 说明
kagi_search 使用可选的快照、镜头、区域、时间、日期、顺序、逐字记录、个性化、模板、跟踪、限制、新闻选项卡和本地缓存选项搜索Kagi
kagi_batch 并行运行多个搜索,并具有速率限制、stdin风格的查询输入、共享搜索筛选器、模板和每个查询的限制

快速回答

工具 说明
kagi_quick 使用参考文献而不是搜索结果获得直接答案,可选范围为镜头

助手

工具 说明
kagi_assistant 提示Kagi助手,可选择继续现有线程,附加本地文件,选择已保存的助手,或覆盖型号、镜头、网络访问和个性化
kagi_assistant_repl 通过stdin输入提示,然后退出,运行有界助手REPL
kagi_ask_page 向Kagi Assistant询问特定网页
kagi_assistant_thread_list 列出所有助手线程
kagi_assistant_thread_get 按ID获取特定线程
kagi_assistant_thread_export 将线程导出为markdown或JSON
kagi_assistant_thread_delete 删除线程
kagi_assistant_custom_list 列出帐户可见的自定义和内置助手
kagi_assistant_custom_get 按id或名称获取一个自定义助手
kagi_assistant_custom_create 创建自定义助手
kagi_assistant_custom_update 按id或名称更新自定义助手
kagi_assistant_custom_delete 按id或名称删除自定义助手

翻译

工具 说明
kagi_translate 使用自动检测、备选方案、单词洞察和v0.5.0文本翻译控件翻译文本

总结

工具 说明
kagi_summarize 以订阅者或API模式汇总URL或文本,或传递 filter_items 使用 kagi summarize --filter 安全地通过受控子流程stdin

提取

工具 说明
kagi_extract 通过Kagi的付费Extract API提取页面的完整内容作为降价,使用 KAGI_API_KEY 直接

新闻

工具 说明
kagi_news 按类别获取Kagi新闻故事,或应用v0.5.0内容过滤器预设和关键字
kagi_news_categories 列出可用的新闻类别
kagi_news_chaos 获取当前Kagi News混乱指数

富集

工具 说明
kagi_enrich_web 查询Kagi网页丰富索引
kagi_enrich_news 查询Kagi新闻丰富指数

其他

工具 说明
kagi_smallweb 获取Kagi Small网络订阅源
kagi_fastgpt 通过付费API提供快速的事实答案,并提供可选的本地缓存控制
kagi_auth_status 显示配置了哪些凭据
kagi_auth_check 验证配置的凭据
kagi_auth_set 使用保存API和/或会话凭据 kagi auth set
kagi_history_list 列出本地 kagi-cli 命令历史记录条目
kagi_history_stats 显示本地聚合 kagi-cli 历史统计数据
kagi_site_pref_list 列出本地域首选项
kagi_site_pref_set 设置本地域首选项: block, lower, normal, higher,或 pin
kagi_site_pref_remove 删除本地域首选项
kagi_watch 快跑 kagi watch通过一个有限 count 保持MCP请求有界
kagi_notify 运行搜索或获取新闻,并将JSON有效负载发布到webhook
kagi_generate_completion 为bash、zsh、fish或PowerShell生成shell完成脚本
kagi_agent 加载核心嵌入式kagi-cli代理使用指南
kagi_skills_list 列出嵌入式、版本匹配的kagi-cli技能
kagi_skills_get 加载嵌入式kagi-cli技能,默认为 kagi
kagi_skills_path 打印嵌入的技能根或技能定位器

账户设置

工具 说明
kagi_lens_list 列出可用镜头
kagi_lens_get 按id或确切名称获取一个镜头
kagi_lens_create 制作一个镜头
kagi_lens_update 按id或确切名称更新镜头
kagi_lens_delete 按id或确切名称删除镜头
kagi_lens_enable 按id或确切名称启用镜头
kagi_lens_disable 按id或确切名称禁用镜头
kagi_bang_custom_list 列出自定义刘海
kagi_bang_custom_get 按id、名称或触发器获取一个自定义bang
kagi_bang_custom_create 创建自定义bang
kagi_bang_custom_update 按id、名称或触发器更新自定义bang
kagi_bang_custom_delete 按id、名称或触发器删除自定义bang
kagi_redirect_list 列出重定向规则
kagi_redirect_get 按id或精确规则文本获取一个重定向规则
kagi_redirect_create 创建重定向规则
kagi_redirect_update 按id或精确规则文本更新重定向规则
kagi_redirect_delete 按id或精确规则文本删除重定向规则
kagi_redirect_enable 按id或精确规则文本启用重定向规则
kagi_redirect_disable 按id或精确规则文本禁用重定向规则

范围边界

kagi_watch 已公开奇偶校验,但如果满足以下条件,它可以运行到配置的子进程超时 count 省略或设置为 0.更喜欢有限 count 用于MCP呼叫。 kagi_assistant_repl 以有界REPL包装器的形式公开:pass prompts,服务器将这些提示提供给 kagi assistant repl 紧随其后 /exit. kagi_notify 账户设置突变工具是副作用;仅当webhook或帐户突变是故意的时才调用它们。

包装好的CLI kagi mcp 子命令未作为工具公开,因为此二进制文件已经是MCP服务器。在一个工具调用中生成另一个stdio MCP服务器不会产生正常的请求/响应结果。

身份验证模型

工具 会话令牌 API密钥 API令牌 无
kagi_search 是 是
kagi_search --lens 是的
kagi_quick 是的
kagi_ask_page 是的
kagi_assistant 是的
kagi_assistant_repl 是的
kagi_translate 是的
kagi_summarize --subscriber 是的
kagi_summarize 是
kagi_extract 是
kagi_fastgpt 是
kagi_enrich_web/news 是
kagi_lens_* 是的
kagi_bang_custom_* 是的
kagi_redirect_* 是的
kagi_assistant_custom_* 是的
kagi_watch 是 是
kagi_notify 是 是
kagi_news 是的
kagi_smallweb 是的
kagi_history_list/stats 是的
kagi_site_pref_* 是的
kagi_generate_completion 是的
kagi_agent 是的
kagi_skills_* 是的
kagi_auth_status/check/set 是的

建筑

MCP Client (Claude, Zed, etc.)
       | stdio
       v
+-----------------+     spawn      +-----------+
|   kagi-mcp      |--------------->|  kagi CLI |
|   rmcp + tokio  |                |           |
+-----------------+                +-----------+

服务器是一个生成的Rust二进制文件 kagi 每个工具调用的CLI子流程。默认情况下,解析结构化JSON输出并将其转换为TOON;显式文本输出按原样传递。

错误处理: CLI子进程失败、非零退出、超时和无效JSON作为MCP错误结果返回。超时可通过以下方式配置 KAGI_MCP_TIMEOUT_MS.

测试

cargo test
cargo clippy --all-targets --all-features -- -D warnings

测试套件使用夹具脚本作为本地脚本 kagi 二进制文件,用于验证参数构建、JSON解析、TOON转换、stdin处理、配置文件传递和错误显示,而不需要真正的Kagi连接。

许可证

麻省理工学院