Kagi Search MCP Server

oficial

Busca en la web usando la API de búsqueda de Kagi

Documentación

Servidor MCP de Kagi Search

Un servidor MCP respaldado por la API de Kagi. Expone herramientas de búsqueda y extracción a clientes compatibles con MCP.

Herramientas

  • kagi_search_fetch - búsqueda web, de noticias, videos, podcasts e imágenes con extractos de página opcionales, filtros y lentes de Kagi.
  • kagi_extract - obtiene el contenido completo de una página como markdown.

Nota: Las herramientas anteriores kagi_fastgpt y kagi_summarizer han sido eliminadas. Está previsto que ambas regresen en una versión futura.

Servidor Alojado

Ejecutamos un servidor MCP alojado en https://mcp.kagi.com/mcp — no requiere instalación. Apunta cualquier cliente MCP compatible con HTTP hacia él y autentícate con tu clave API de Kagi.

OAuth2 aún no es compatible (está en nuestra hoja de ruta), así que por ahora obtén tu clave API desde el panel y pásala mediante autenticación HTTP Bearer.

Ejemplo con 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

¿Prefieres ejecutarlo tú mismo? Consulta Configuración del Cliente para la instalación local de uvx, o Autoalojamiento para alojar el servidor HTTP en tu propia infraestructura.

Requisitos

  • Una clave API de Kagi en KAGI_API_KEY.
  • uv para la ruta de instalación recomendada de uvx.

Instalar uv:

curl -LsSf https://astral.sh/uv/install.sh | sh

Windows:

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

Configuración del Cliente

Codex CLI

codex mcp add kagi --env KAGI_API_KEY=<YOUR_API_KEY_HERE> -- uvx kagimcp

Codex escribe la configuración MCP en ~/.codex/config.toml.

Claude Desktop

Instala uv primero.

MacOS/Linux:

curl -LsSf https://astral.sh/uv/install.sh | sh

Windows:

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

Luego en tu configuración de Claude Desktop (que se encuentra en Configuración -> Desarrollador -> Editar Configuración):

{
  "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

Agrega a tu archivo de configuración MCP de Kiro (~/.kiro/settings/mcp.json para global, o .kiro/settings/mcp.json para ámbito de proyecto) usando el mismo JSON mcpServers que Claude Desktop. Consulta la documentación MCP de Kiro para más detalles.

OpenCode

Edita el archivo de configuración de OpenCode en ~/.config/opencode/opencode.json y agrega lo siguiente:

{
  "mcp": {
    "kagi": {
      "type": "local",
      "command": ["uvx", "kagimcp"],
      "enabled": true,
      "environment": {
        "KAGI_API_KEY": "<YOUR_API_KEY_HERE>"
      }
    }
  }
}

Ejemplos de Uso

  • Búsqueda: Who was Time's 2024 person of the year?
  • Extracción: extract the full content of https://en.wikipedia.org/wiki/Model_Context_Protocol

Configuración

Variable de entornoDescripción
KAGI_API_KEYClave API de Kagi requerida.
FASTMCP_LOG_LEVELNivel de registro, por ejemplo ERROR.
KAGI_SEARCH_TIMEOUTTiempo de espera de búsqueda en segundos. Por defecto 10.
KAGI_EXTRACT_TIMEOUTTiempo de espera de extracción en segundos. Por defecto 30.
KAGI_MAX_RETRIESIntentos máximos de reintento después de la primera solicitud. Por defecto 2; establece 0 para deshabilitar reintentos.
KAGI_HIDDEN_PARAMSParámetros de búsqueda separados por comas a ocultar del esquema orientado al LLM.

Parámetros de búsqueda ocultables:

workflow, extract_count, limit, include_domains, exclude_domains, time_relative, after, before, file_type, lens_id

Ejemplo:

KAGI_HIDDEN_PARAMS="extract_count,after,before,time_relative,include_domains,exclude_domains"

Desarrollo Local

git clone https://github.com/kagisearch/kagimcp.git
cd kagimcp
uv sync

Ejecutar localmente sobre stdio:

KAGI_API_KEY=<YOUR_API_KEY_HERE> uv run kagimcp

Ejecutar con transporte HTTP transmitible:

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

Autoalojamiento

El modo HTTP es multiinquilino: cada solicitud proporciona su clave API a través del encabezado Authorization: Bearer <key> en lugar de una variable de entorno del servidor, por lo que una instancia puede servir a múltiples usuarios. El repositorio incluye un Dockerfile que instala un kagimcp fijado desde PyPI y lo ejecuta en modo HTTP. El contenedor respeta $PORT por lo que funciona en cualquier plataforma que inyecte uno (Railway, Render, Cloud Run, Fly.io, etc.).

Construir y ejecutar localmente:

docker build -t kagimcp-hosted .
docker run --rm -p 8000:8000 kagimcp-hosted

Prueba de humo:

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"}'

Para actualizar la versión en producción, edita la fijación en el Dockerfile y redespliega.

Depuración

Inspeccionar el paquete publicado:

npx @modelcontextprotocol/inspector uvx kagimcp

Inspeccionar una copia local:

npx @modelcontextprotocol/inspector uv --directory /ABSOLUTE/PATH/TO/kagimcp run kagimcp

El inspector generalmente está disponible en http://localhost:5173.

Instrucciones de Prelanzamiento

Si usas una compilación de prelanzamiento, se aplican las mismas instrucciones de instalación, pero usa uvx --prerelease allow --from kagimcp==1.0.0rc2 kagimcp en lugar de uvx kagimcp (reemplaza 1.0.0rc2 con la versión que desees instalar).