Kagi Search MCP Server
官方使用Kagi的搜索API进行网络搜索
文档
Kagi MCP 服务器
一个基于 Kagi API 的 MCP 服务器。它为兼容 MCP 的客户端提供搜索和内容提取工具。
工具
kagi_search_fetch- 网页、新闻、视频、播客和图片搜索,支持可选的页面摘要、过滤器和 Kagi 透镜。kagi_extract- 以 Markdown 格式获取页面的完整内容。
注意: 之前的
kagi_fastgpt和kagi_summarizer工具已被移除。两者都计划在未来的版本中回归。
托管服务器
我们在 https://mcp.kagi.com/mcp 运行了一个托管 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 密钥,存储在
KAGI_API_KEY中。 - 推荐使用
uv进行uvx安装。
安装 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 配置中(通过 设置 -> 开发者 -> 编辑配置 找到):
{
"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
使用与 Claude Desktop 相同的 mcpServers JSON,添加到您的 Kiro MCP 配置文件(全局为 ~/.kiro/settings/mcp.json,项目范围为 .kiro/settings/mcp.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 | 逗号分隔的搜索参数,用于对 LLM 可见的 schema 隐藏。 |
可隐藏的搜索参数:
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 替换为您要安装的版本)。