Kagi Search

официальный

Поиск в интернете с использованием поискового API Kagi

Что можно делать с Kagi Search MCP?

  • Поиск в интернете — Попросите ассистента искать в интернете, новостях, видео, подкастах или изображениях с помощью kagi_search_fetch.
  • Фильтрованный поиск — Сужайте результаты по включаемым или исключаемым доменам, диапазонам дат, типам файлов или линзам Kagi с помощью kagi_search_fetch.
  • Извлечение содержимого страниц — Запрашивайте дополнительные фрагменты страниц вместе с результатами поиска с помощью kagi_search_fetch.
  • Извлечение полного содержимого страницы — Попросите ассистента получить полное содержимое страницы в формате Markdown с помощью kagi_extract.
  • Размещённая конечная точка — Подключите любой MCP-клиент с поддержкой HTTP к https://mcp.kagi.com/mcp и пройдите аутентификацию с помощью ключа API Kagi через авторизацию Bearer.

Документация

Kagi MCP Server

MCP-сервер на базе Kagi API. Он предоставляет инструменты поиска и извлечения данных для клиентов, совместимых с MCP.

Инструменты

  • kagi_search_fetch — поиск в интернете, новостях, видео, подкастах и изображениях с возможностью извлечения содержимого страниц, применения фильтров и линз Kagi.
  • kagi_extract — получение полного содержимого страницы в формате markdown.

Примечание: инструменты kagi_fastgpt и kagi_summarizer удалены. Планируется вернуть оба в одном из будущих выпусков.

Хостируемый сервер

Мы запустили хостируемый MCP-сервер по адресу https://mcp.kagi.com/mcp — установка не требуется. Подключите к нему любой MCP-клиент с поддержкой HTTP и пройдите аутентификацию с помощью ключа Kagi API.

OAuth2 пока не поддерживается (он есть в нашей дорожной карте), поэтому пока получите ключ API на панели управления и передайте его через HTTP-аутентификацию Bearer.

Пример для 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 (откройте её через 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

Добавьте конфигурацию в файл конфигурации MCP для Kiro (~/.kiro/settings/mcp.json для глобальной конфигурации или .kiro/settings/mcp.json для конфигурации проекта), используя тот же JSON mcpServers, что и для Claude Desktop. Подробнее см. в документации Kiro MCP.

OpenCode

Откройте файл конфигурации OpenCode в ~/.config/opencode/opencode.json и добавьте следующее:

{
  "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.
KAGI_SEARCH_FORMATФормат результатов поиска: json (по умолчанию) или markdown (собственный markdown Search API, передаваемый без изменений).

Параметры поиска, которые можно скрыть:

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

Запуск с транспортом streamable HTTP:

KAGI_API_KEY=<YOUR_API_KEY_HERE> uv run kagimcp --http --host 0.0.0.0 --port 8000

Самостоятельное размещение

Режим HTTP поддерживает нескольких арендаторов: каждый запрос передаёт свой ключ API через заголовок Authorization: Bearer <key>, а не через общую переменную окружения сервера, поэтому один экземпляр может обслуживать нескольких пользователей. В репозитории есть Dockerfile, который устанавливает закреплённую версию kagimcp из PyPI и запускает её в режиме 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 kagimcp используйте uvx --prerelease allow --from kagimcp==1.0.0rc2 kagimcp (замените 1.0.0rc2 на нужную вам версию).