Kagi Search MCP Server

officiel

Rechercher sur le web en utilisant l'API de recherche de Kagi.

Documentation

Serveur MCP Kagi

Un serveur MCP s'appuyant sur l'API Kagi. Il expose des outils de recherche et d'extraction aux clients compatibles MCP.

Outils

  • kagi_search_fetch - recherche web, actualités, vidéos, podcasts et images avec des extraits de page, filtres et lentilles Kagi en option.
  • kagi_extract - récupérer le contenu complet d'une page au format markdown.

Remarque : Les outils précédents kagi_fastgpt et kagi_summarizer ont été supprimés. Il est prévu qu'ils reviennent dans une version future.

Serveur hébergé

Nous gérons un serveur MCP hébergé à l'adresse https://mcp.kagi.com/mcp — aucune installation requise. Pointez n'importe quel client MCP compatible HTTP vers celui-ci et authentifiez-vous avec votre clé API Kagi.

OAuth2 n'est pas encore pris en charge (c'est sur notre feuille de route), donc pour l'instant, récupérez votre clé API depuis le tableau de bord et transmettez-la via l'authentification HTTP Bearer.

Exemple avec 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

Vous préférez l'exécuter vous-même ? Consultez Configuration du client pour l'installation locale de uvx, ou Auto-hébergement pour héberger le serveur HTTP sur votre propre infrastructure.

Prérequis

  • Une clé API Kagi dans KAGI_API_KEY.
  • uv pour le chemin d'installation recommandé de uvx.

Installer uv :

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

Windows :

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

Configuration du client

Codex CLI

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

Codex écrit la configuration MCP dans ~/.codex/config.toml.

Claude Desktop

Installez d'abord 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"

Ensuite, dans votre configuration Claude Desktop (accessible via Paramètres -> Développeur -> Modifier la configuration) :

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

Ajoutez à votre fichier de configuration Kiro MCP (~/.kiro/settings/mcp.json pour global, ou .kiro/settings/mcp.json pour la portée du projet) en utilisant le même JSON mcpServers que Claude Desktop. Consultez la documentation Kiro MCP pour plus de détails.

OpenCode

Modifiez le fichier de configuration OpenCode dans ~/.config/opencode/opencode.json et ajoutez ce qui suit :

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

Exemples d'utilisation

  • Recherche : Who was Time's 2024 person of the year?
  • Extraction : extract the full content of https://en.wikipedia.org/wiki/Model_Context_Protocol

Configuration

Variable d'environnementDescription
KAGI_API_KEYClé API Kagi requise.
FASTMCP_LOG_LEVELNiveau de journalisation, par exemple ERROR.
KAGI_SEARCH_TIMEOUTDélai d'expiration de la recherche en secondes. Par défaut 10.
KAGI_EXTRACT_TIMEOUTDélai d'expiration de l'extraction en secondes. Par défaut 30.
KAGI_MAX_RETRIESNombre maximal de tentatives après la première requête. Par défaut 2 ; définissez 0 pour désactiver les tentatives.
KAGI_HIDDEN_PARAMSParamètres de recherche séparés par des virgules à masquer du schéma destiné au LLM.

Paramètres de recherche masquables :

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

Exemple :

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

Développement local

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

Exécuter localement via stdio :

KAGI_API_KEY=<YOUR_API_KEY_HERE> uv run kagimcp

Exécuter avec le transport HTTP streamable :

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

Auto-hébergement

Le mode HTTP est multi-tenant : chaque requête fournit sa clé API via l'en-tête Authorization: Bearer <key> au lieu d'une variable d'environnement à l'échelle du serveur, de sorte qu'une seule instance peut servir plusieurs utilisateurs. Le dépôt fournit un Dockerfile qui installe un kagimcp épinglé depuis PyPI et l'exécute en mode HTTP. Le conteneur respecte $PORT donc il fonctionne sur toute plateforme qui en injecte une (Railway, Render, Cloud Run, Fly.io, etc.).

Construire et exécuter localement :

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

Test de fumée :

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

Pour mettre à jour la version en production, modifiez l'épinglage dans le Dockerfile et redéployez.

Débogage

Inspecter le paquet publié :

npx @modelcontextprotocol/inspector uvx kagimcp

Inspecter une extraction locale :

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

L'inspecteur est généralement disponible à l'adresse http://localhost:5173.

Instructions de pré-version

Si vous utilisez une version préliminaire, les mêmes instructions d'installation s'appliquent, mais utilisez uvx --prerelease allow --from kagimcp==1.0.0rc2 kagimcp au lieu de uvx kagimcp (remplacez 1.0.0rc2 par la version que vous souhaitez installer).