关于 Kagi MCP server
基于 Kagi API 的 MCP 服务,向兼容 MCP 的客户端提供网页搜索和页面内容提取工具。它可以本地通过 uvx 运行,也提供托管远程服务,并支持自托管的 HTTP 模式。
主要功能
- 01网页、新闻、视频、播客和图片搜索
- 02可选的页面摘录与搜索过滤条件
- 03将页面完整内容提取为 Markdown
- 04可通过环境变量设置超时与重试
- 05可隐藏部分搜索参数以简化模式
适用场景
- 01在 AI 助手中检索最新新闻或资料
- 02提取指定网页的正文用于分析
- 03在多用户环境中自托管 HTTP 服务
MCP 相关
该项目是 MCP 服务,向 MCP 客户端暴露 kagi_search_fetch 和 kagi_extract 两个工具,并支持 stdio 与 HTTP 传输。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Kagi MCP 服务
一个由 Kagi API 提供支持的 MCP 服务。它向兼容 MCP 的客户端提供搜索和内容提取工具。
工具
kagi_search_fetch- 网页、新闻、视频、播客和图片搜索,可选页面内容提取、筛选条件和 Kagi lenses。kagi_extract- 获取网页的完整内容并以 Markdown 格式返回。
注意: 之前的
kagi_fastgpt和kagi_summarizer工具已移除。计划在未来版本中重新推出这两种工具。
托管服务
我们运行着一个托管的 MCP 服务:https://mcp.kagi.com/mcp,无需安装。将任何支持 HTTP 的 MCP 客户端指向该服务,并使用你的 Kagi API 密钥进行身份验证。
目前尚不支持 OAuth2(已列入我们的路线图),因此请先从控制面板获取 API 密钥,并通过 Bearer HTTP 身份验证传递该密钥。
使用 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_KEY中设置 Kagi API 密钥。 - 推荐使用
uvx安装方式,需要uv。
安装 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,项目范围配置使用 .kiro/settings/mcp.json),并使用与 Claude Desktop 相同的 mcpServers JSON。更多详情请参阅 Kiro MCP 文档。
OpenCode
编辑 ~/.config/opencode/opencode.json 中的 OpenCode 配置文件,并添加以下内容:
{
"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 | 要从面向大模型的架构中隐藏的搜索参数,以逗号分隔。 |
可隐藏的搜索参数:
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 模式支持多租户:每个请求都会通过 Authorization: Bearer <key> 标头提供 API 密钥,而不是使用全局服务端环境变量,因此一个实例可以为多位用户提供服务。仓库提供了一个 Dockerfile,用于安装固定版本的 PyPI kagimcp 并以 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
检查器通常可通过 http://localhost:5173 访问。
预发布版本说明
如果使用预发布版本,安装说明相同,但请使用 uvx --prerelease allow --from kagimcp==1.0.0rc2 kagimcp 替代 uvx kagimcp(将 1.0.0rc2 替换为你想要安装的版本)。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。