Kagi Search

officiel

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

Que pouvez-vous faire avec Kagi Search MCP ?

  • Recherche sur le Web — Demandez à votre assistant d’effectuer des recherches sur le Web, dans l’actualité, les vidéos, les podcasts ou les images via kagi_search_fetch.
  • Recherche filtrée — Affinez les résultats en incluant ou en excluant des domaines, en définissant des plages de dates ou des types de fichiers, ou en utilisant les filtres Kagi via kagi_search_fetch.
  • Extraits de pages — Demandez des extraits de pages en option en complément des résultats de recherche avec kagi_search_fetch.
  • Extraction de page complète — Demandez à votre assistant de récupérer le contenu intégral d’une page au format markdown avec kagi_extract.
  • Point de terminaison hébergé — Connectez n’importe quel client MCP compatible HTTP à https://mcp.kagi.com/mcp et authentifiez-vous avec votre clé API Kagi via l’authentification Bearer.

Documentation

Kagi MCP Server

Un serveur MCP reposant sur la Kagi API. Il fournit des outils de recherche et d’extraction aux clients compatibles avec MCP.

Outils

  • kagi_search_fetch - recherche sur le Web, dans l’actualité, les vidéos, les podcasts et les images, avec des extraits de pages, des filtres et des lentilles Kagi facultatifs.
  • kagi_extract - récupère le contenu complet d’une page au format Markdown.

Remarque : les outils précédents kagi_fastgpt et kagi_summarizer ont été supprimés. Leur retour est prévu dans une prochaine version.

Serveur hébergé

Nous exploitons un serveur MCP hébergé à l’adresse https://mcp.kagi.com/mcp — aucune installation n’est nécessaire. Configurez n’importe quel client MCP compatible avec HTTP pour qu’il s’y connecte, puis authentifiez-vous avec votre clé API Kagi.

OAuth2 n’est pas encore pris en charge (c’est prévu dans notre feuille de route). Pour l’instant, récupérez votre clé API dans 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 Hébergement autonome pour héberger le serveur HTTP sur votre propre infrastructure.

Prérequis

  • Une clé API Kagi dans KAGI_API_KEY.
  • uv pour la méthode d’installation uvx recommandée.

Installez 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 la configuration de Claude Desktop (accessible via 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

Ajoutez la configuration à votre fichier de configuration MCP Kiro (~/.kiro/settings/mcp.json pour la configuration globale, ou .kiro/settings/mcp.json pour celle du projet) en utilisant le même JSON mcpServers que pour Claude Desktop. Consultez la documentation MCP de Kiro 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 obligatoire.
FASTMCP_LOG_LEVELNiveau de journalisation, par exemple ERROR.
KAGI_SEARCH_TIMEOUTDélai d’expiration de la recherche, en secondes. Valeur par défaut : 10.
KAGI_EXTRACT_TIMEOUTDélai d’expiration de l’extraction, en secondes. Valeur par défaut : 30.
KAGI_MAX_RETRIESNombre maximal de tentatives après la première requête. Valeur par défaut : 2 ; définissez 0 pour désactiver les nouvelles tentatives.
KAGI_HIDDEN_PARAMSParamètres de recherche, séparés par des virgules, à masquer dans le schéma présenté au LLM.
KAGI_SEARCH_FORMATFormat des résultats de recherche : json (par défaut) ou markdown (le Markdown natif de la Search API, transmis tel quel).

Paramètres de recherche pouvant être masqués :

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écution locale via stdio :

KAGI_API_KEY=<YOUR_API_KEY_HERE> uv run kagimcp

Exécution avec le transport HTTP streamable :

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

Hébergement autonome

Le mode HTTP est multi-tenant : chaque requête fournit sa clé API via l’en-tête Authorization: Bearer <key> plutôt qu’au moyen d’une variable d’environnement globale au serveur, ce qui permet à une même instance de servir plusieurs utilisateurs. Le dépôt fournit un Dockerfile qui installe une version kagimcp épinglée depuis PyPI et l’exécute en mode HTTP. Le conteneur respecte $PORT, ce qui lui permet de fonctionner 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 rapide :

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 la version épinglée dans le Dockerfile et redéployez.

Débogage

Inspecter le paquet publié :

npx @modelcontextprotocol/inspector uvx kagimcp

Inspecter une copie locale du dépôt :

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

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

Instructions pour les versions préliminaires

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).