mcpField
K
Kagi MCP server

Kagi MCP server

本地服务
github.com/kagisearch搜索与检索552今天更新

关于 Kagi MCP server

基于 Kagi API 的 MCP 服务,向兼容 MCP 的客户端提供网页搜索和页面内容提取工具。它可以本地通过 uvx 运行,也提供托管远程服务,并支持自托管的 HTTP 模式。

主要功能

  1. 01网页、新闻、视频、播客和图片搜索
  2. 02可选的页面摘录与搜索过滤条件
  3. 03将页面完整内容提取为 Markdown
  4. 04可通过环境变量设置超时与重试
  5. 05可隐藏部分搜索参数以简化模式

适用场景

  1. 01在 AI 助手中检索最新新闻或资料
  2. 02提取指定网页的正文用于分析
  3. 03在多用户环境中自托管 HTTP 服务

MCP 相关

该项目是 MCP 服务,向 MCP 客户端暴露 kagi_search_fetch 和 kagi_extract 两个工具,并支持 stdio 与 HTTP 传输。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"kagimcp": {
"command": "npx",
"args": [
"-y",
"@smithery/cli"
]
}
}
}
启动命令npx -y @smithery/cli

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@smithery/cli

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

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 替换为你想要安装的版本)。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。