使用说明
弃用通知⚠
此存储库不再维护。如果你想要一个MCP服务器
kagi-cli,使用内置kagi mcp命令代替。请参阅以下文档 https://kagi.micr.dev/commands/mcp.
kagi mcp
kagi-mcp 是一个基于 kagi-cli.
它故意只是一个额外的回购:
- 单独回购
- 一个Rust二进制文件
- 包裹
kagiCLI而不是重新实现Kagi逻辑 - 对于结构化工具结果,默认返回TOON
- 保持
format=json在支持CLI格式选择的工具上可用
kagi-cli v0.5.0还附带了本机 kagi mcp 命令。当你只需要最少的内置工具时,可以使用它。当您希望将更广泛的CLI界面暴露给代理时,可以使用此存储库,包括助手、提取、新闻、翻译、丰富、帐户设置、本地历史记录、本地站点首选项、监视和通知工作流。
需求
kagi-cliv0.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连接。
许可证
麻省理工学院