Kagi Search
officielRechercher 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/mcpet authentifiez-vous avec votre clé API Kagi via l’authentificationBearer.
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_fastgptetkagi_summarizeront é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. uvpour la méthode d’installationuvxrecommandé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’environnement | Description |
|---|---|
KAGI_API_KEY | Clé API Kagi obligatoire. |
FASTMCP_LOG_LEVEL | Niveau de journalisation, par exemple ERROR. |
KAGI_SEARCH_TIMEOUT | Délai d’expiration de la recherche, en secondes. Valeur par défaut : 10. |
KAGI_EXTRACT_TIMEOUT | Délai d’expiration de l’extraction, en secondes. Valeur par défaut : 30. |
KAGI_MAX_RETRIES | Nombre 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_PARAMS | Paramètres de recherche, séparés par des virgules, à masquer dans le schéma présenté au LLM. |
KAGI_SEARCH_FORMAT | Format 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).