Kagi Search MCP Server
officielRechercher 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_fastgptetkagi_summarizeront é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. uvpour le chemin d'installation recommandé deuvx.
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'environnement | Description |
|---|---|
KAGI_API_KEY | Clé API Kagi requise. |
FASTMCP_LOG_LEVEL | Niveau de journalisation, par exemple ERROR. |
KAGI_SEARCH_TIMEOUT | Délai d'expiration de la recherche en secondes. Par défaut 10. |
KAGI_EXTRACT_TIMEOUT | Délai d'expiration de l'extraction en secondes. Par défaut 30. |
KAGI_MAX_RETRIES | Nombre maximal de tentatives après la première requête. Par défaut 2 ; définissez 0 pour désactiver les tentatives. |
KAGI_HIDDEN_PARAMS | Paramè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).