Kagi Search MCP Server

官方

使用Kagi的搜索API进行网络搜索

文档

Kagi MCP 服务器

一个基于 Kagi API 的 MCP 服务器。它为兼容 MCP 的客户端提供搜索和内容提取工具。

工具

  • kagi_search_fetch - 网页、新闻、视频、播客和图片搜索,支持可选的页面摘要、过滤器和 Kagi 透镜。
  • kagi_extract - 以 Markdown 格式获取页面的完整内容。

注意: 之前的 kagi_fastgptkagi_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 替换为您要安装的版本)。