Serveur Kubernetes MCP - Présentation détaillée du projet
Aperçu du projet
Le serveur Kubernetes MCP est un serveur de protocole de contenu de modèle (Model Content Protocol) spécialement conçu pour la gestion des clusters Kubernetes. Il permet aux agents d'IA (comme Claude) de se connecter et de gérer les clusters Kubernetes via des commandes en langage naturel, simplifiant considérablement la complexité de l'orchestration des conteneurs et de l'exploitation des clusters.
Adresse du projet: https://github.com/Flux159/mcp-server-kubernetes
Caractéristiques principales
🎯 Connexion et gestion de cluster
- Connexion automatique au cluster configuré dans le contexte kubectl actuel
- Prise en charge de divers environnements Kubernetes (minikube, Rancher Desktop, GKE, etc.)
- Entièrement compatible avec la configuration kubeconfig existante
📦 Gestion des Pods et des déploiements
- Opérations sur les Pods: Créer, décrire, supprimer des Pods
- Gestion des déploiements: Lister tous les déploiements, mettre à jour le nombre de réplicas
- Configuration personnalisée: Prise en charge de la création de configurations de Pods et de déploiements personnalisées
- Visualisation des logs: Obtenir les logs des Pods pour le débogage (prise en charge des Pods, des déploiements, des Jobs et des sélecteurs d'étiquettes)
🌐 Gestion des services et du réseau
- Opérations sur les services: Créer, décrire, supprimer, mettre à jour des services
- Redirection de port: Prise en charge de la redirection de port pour les Pods ou les services
- Configuration réseau: Prise en charge complète de la gestion du réseau Kubernetes
🗂️ Gestion des ressources et de la configuration
- Espaces de noms (Namespaces): Lister tous les espaces de noms, créer de nouveaux espaces de noms
- ConfigMap: Créer, obtenir, mettre à jour, supprimer des ConfigMaps
- Gestion des nœuds: Lister et décrire les nœuds du cluster
- Tâches planifiées: Créer, lister et décrire des CronJobs
⚙️ Prise en charge de l'intégration Helm
- Installation de charts: Installer des charts Helm avec des valeurs personnalisées
- Gestion des versions: Prise en charge des spécifications de version et des dépôts personnalisés
- Gestion des releases: Désinstaller et mettre à niveau les releases existantes
- Prise en charge des espaces de noms: Isolation complète des espaces de noms
🔧 Fonctionnalités avancées
- Prise en charge de kubectl: Commandes kubectl explain et kubectl api-resources
- Surveillance des événements: Obtenir des informations sur les événements du cluster
- Mode non destructif: Mode sécurisé autorisant uniquement les opérations de lecture et de création/mise à jour
- Surveillance en temps réel: Prise en charge de la visualisation en temps réel de l'état du cluster
Architecture du système
Schéma d'architecture
Client (Claude/Agent IA)
↓
StdioTransport (Couche de transport de la communication)
↓
Serveur MCP (Traitement du protocole)
↓
Request Handler (Routage des requêtes)
↓
KubernetesManager (Gestionnaire K8s)
↓
API Kubernetes (API du cluster)
Flux de requête
- Requête du client: L'agent d'IA envoie une requête via STDIO
- Couche de transport: StdioTransport transfère la requête au serveur MCP
- Traitement du routage: Le serveur route la requête vers le gestionnaire approprié
- Exécution de l'outil: KubernetesManager exécute les opérations K8s spécifiques
- Appel API: Interaction avec l'API Kubernetes
- Retour de la réponse: Le résultat du traitement est renvoyé couche par couche au client
Installation et configuration
Exigences environnementales
- kubectl: Installé et configuré dans le PATH
- kubeconfig: Fichier kubeconfig valide et configuration du contexte
- Cluster Kubernetes: Cluster accessible (minikube, GKE, EKS, etc.)
- Helm v3: Facultatif, si vous souhaitez utiliser les fonctionnalités Helm
- Node.js: Environnement d'exécution
Installation rapide
Installation via NPM (recommandé)
# Installation globale
npm install -g mcp-server-kubernetes
# Ou utiliser npx pour exécuter directement
npx mcp-server-kubernetes
Intégration avec Claude Desktop
Modifier le fichier claude_desktop_config.json
:
{
"mcpServers": {
"kubernetes": {
"command": "npx",
"args": ["mcp-server-kubernetes"]
}
}
}
Vérification de la connexion
Une fois l'installation terminée, vous pouvez :
- Demander à Claude de lister vos Pods
- Créer un déploiement de test
- En cas d'erreur, exécutez d'abord
kubectl get pods
dans le terminal pour vérifier la connexion
Configuration de l'environnement de développement
Développement local
# Cloner le dépôt
git clone https://github.com/Flux159/mcp-server-kubernetes.git
cd mcp-server-kubernetes
# Installer les dépendances (nécessite bun)
bun install
# Démarrer en mode développement (surveillance des modifications de fichiers)
bun run dev
# Exécuter les tests unitaires
bun run test
# Construire le projet
bun run build
Cas d'utilisation et exemples
🚀 Scénarios d'exploitation quotidiens
- "Lister l'état de tous les Pods" - Vérifier rapidement l'état de santé du cluster
- "Créer un déploiement nginx avec 3 réplicas" - Déployer rapidement une application
- "Afficher les logs des Pods en erreur dans l'espace de noms default" - Dépannage
- "Rediriger le port de l'application vers le port 8080 local" - Débogage local
📊 Surveillance et débogage
- "Afficher tous les événements du cluster" - Surveiller l'activité du cluster
- "Décrire les informations détaillées du nœud node-1" - Analyse des ressources
- "Afficher les dernières exécutions de CronJob" - Surveillance des tâches planifiées
🛠️ Déploiement d'applications
- "Installer le chart Redis avec Helm" - Déployer rapidement un middleware
- "Mettre à jour le nombre de réplicas du déploiement web-app à 5" - Opération de mise à l'échelle
- "Créer une ConfigMap pour l'environnement de production" - Gestion de la configuration
Configuration avancée
Mode non destructif
Définir la variable d'environnement pour activer le mode sécurisé :
export ALLOW_ONLY_NON_DESTRUCTIVE_TOOLS=true
Dans ce mode, seules les opérations de lecture et de création/mise à jour sont autorisées, les opérations de suppression sont interdites.
Protocole de transport SSE
Prise en charge du protocole de transport d'événements poussés par le serveur, voir le fichier ADVANCED_README.md
du projet pour plus de détails sur la configuration.
Authentification du cluster
Prise en charge de plusieurs méthodes d'authentification Kubernetes :
- Authentification par certificat
- Authentification par jeton (Token)
- Authentification OIDC
- Intégration IAM du fournisseur de cloud
Pile technologique et dépendances
Technologies clés
- Environnement d'exécution: Node.js + Bun
- Protocole: Model Content Protocol (MCP)
- Client Kubernetes: Client JavaScript officiel de Kubernetes
- Couche de transport: STDIO Transport
- Gestion des paquets: Helm v3
Dépendances principales
@kubernetes/client-node
: Client JS officiel de Kubernetes
@modelcontextprotocol/sdk
: SDK du protocole MCP
commander
: Analyse des arguments de ligne de commande
yaml
: Traitement des fichiers YAML
Projets connexes et écosystème
Écosystème MCP
- mcp-chat: Client de chat CLI pour le serveur MCP
- MCP Inspector: Outil de débogage du protocole MCP
- Claude Desktop: Application de bureau d'assistant IA prenant en charge MCP
Chaîne d'outils Kubernetes
- kubectl: Outil de ligne de commande officiel
- Helm: Gestionnaire de paquets
- minikube: Environnement de développement local
- Rancher Desktop: Environnement Kubernetes de bureau
Perspectives d'application et valeur
🎯 Amélioration de l'efficacité opérationnelle
L'exploitation des clusters Kubernetes en langage naturel réduit la courbe d'apprentissage et améliore l'efficacité opérationnelle. Même les débutants peuvent rapidement maîtriser les tâches complexes de gestion de cluster.
🤖 Exploitation intelligente
En combinant les capacités d'analyse intelligente des agents d'IA, il est possible de réaliser :
- Diagnostic automatique des pannes
- Recommandations intelligentes de ressources
- Maintenance prédictive
- Optimisation automatisée du déploiement
🔗 Intégration transparente
Entièrement compatible avec l'écosystème Kubernetes existant, sans avoir besoin de modifier les flux de travail existants, l'introduction de l'exploitation assistée par l'IA peut se faire progressivement.
📈 Orientations futures du développement
- Prise en charge de davantage de types de ressources Kubernetes
- Intégration de davantage d'outils natifs du cloud
- Amélioration de la sécurité et du contrôle d'accès
- Prise en charge de la gestion multi-cluster
- Interface utilisateur graphique
Conclusion
Le projet de serveur Kubernetes MCP représente une tentative innovante de combiner l'IA et les technologies natives du cloud. Il simplifie la complexité de la gestion des clusters Kubernetes grâce à une interface en langage naturel, permettant aux équipes d'exploitation de gérer les applications conteneurisées de manière plus intuitive et efficace.
Que vous soyez un débutant en Kubernetes ou un expert en exploitation expérimenté, cet outil peut améliorer considérablement votre efficacité au travail. Grâce à l'intégration avec des assistants d'IA tels que Claude, il ouvre de nouvelles possibilités pour une exploitation intelligente et constitue un ajout puissant à la chaîne d'outils DevOps moderne.
Avec le développement continu des technologies natives du cloud et les progrès constants de l'IA, il est certain que ce type d'outil jouera un rôle de plus en plus important dans l'exploitation informatique future.