Kagi Search MCP Server
oficialBusca 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_fastgptykagi_summarizerhan 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. uvpara la ruta de instalación recomendada deuvx.
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 entorno | Descripción |
|---|---|
KAGI_API_KEY | Clave API de Kagi requerida. |
FASTMCP_LOG_LEVEL | Nivel de registro, por ejemplo ERROR. |
KAGI_SEARCH_TIMEOUT | Tiempo de espera de búsqueda en segundos. Por defecto 10. |
KAGI_EXTRACT_TIMEOUT | Tiempo de espera de extracción en segundos. Por defecto 30. |
KAGI_MAX_RETRIES | Intentos máximos de reintento después de la primera solicitud. Por defecto 2; establece 0 para deshabilitar reintentos. |
KAGI_HIDDEN_PARAMS | Pará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).