Kubeshark MCP Server
officielAccès MCP au trafic réseau L4 et L7 à l'échelle du cluster, aux paquets, aux API et aux charges utiles complètes.
Documentation
Serveur MCP Kubeshark
Kubeshark Le serveur MCP (Model Context Protocol) permet aux assistants IA comme Claude Desktop, Cursor et d’autres clients compatibles MCP d’interroger le trafic réseau Kubernetes en temps réel.
Compétences IA
Le MCP fournit les outils — les compétences IA apprennent aux agents à les utiliser. Les compétences transforment les capacités brutes du MCP en flux de travail spécifiques au domaine, comme l’analyse des causes racines, le filtrage du trafic et l’investigation forensique. Consultez le README des compétences pour l’installation et l’utilisation.
| Compétence | Description |
|---|---|
network-rca | Analyse des causes racines réseau — investigation rétrospective basée sur des instantanés avec routes PCAP et de dissection |
kfl | Expert en filtres KFL2 — écrire, déboguer et optimiser les requêtes de trafic sur tous les protocoles pris en charge |
Fonctionnalités
- Analyse du trafic API L7 : Interroger les transactions HTTP, gRPC, Redis, Kafka, DNS
- Flux réseau L4 : Visualiser les flux TCP/UDP avec des statistiques de trafic
- Gestion du cluster : Démarrer/arrêter les déploiements Kubeshark (avec contrôles de sécurité)
- Instantanés PCAP : Créer et exporter des captures réseau
- Invites intégrées : Invites préconfigurées pour les tâches d’analyse courantes
Installation
1. Installer la CLI Kubeshark
# macOS
brew install kubeshark
# Linux
sh <(curl -Ls https://kubeshark.com/install)
# Windows (PowerShell)
choco install kubeshark
Ou téléchargez depuis les Releases GitHub.
2. Configurer Claude Desktop
Ajoutez à votre configuration Claude Desktop :
macOS : ~/Library/Application Support/Claude/claude_desktop_config.json
Windows : %APPDATA%\Claude\claude_desktop_config.json
Par défaut (nécessite un accès kubectl / contexte kube)
{
"mcpServers": {
"kubeshark": {
"command": "kubeshark",
"args": ["mcp"]
}
}
}
Avec un chemin de kubeconfig explicite :
{
"mcpServers": {
"kubeshark": {
"command": "kubeshark",
"args": ["mcp", "--kubeconfig", "/path/to/.kube/config"]
}
}
}
Mode URL (kubectl non requis)
Utilisez ce mode lorsque la machine n’a pas d’accès kubectl ou de contexte kube. Connectez-vous directement à un déploiement Kubeshark existant :
{
"mcpServers": {
"kubeshark": {
"command": "kubeshark",
"args": ["mcp", "--url", "https://kubeshark.example.com"]
}
}
}
Avec opérations destructrices
{
"mcpServers": {
"kubeshark": {
"command": "kubeshark",
"args": ["mcp", "--allow-destructive", "--kubeconfig", "/path/to/.kube/config"]
}
}
}
3. Générer la configuration
Utilisez la CLI pour générer la configuration :
kubeshark mcp --mcp-config --url https://kubeshark.example.com
Outils disponibles
Analyse du trafic (tous les modes)
| Outil | Description |
|---|---|
list_workloads | Lister les pods, services, espaces de noms avec le trafic observé |
list_api_calls | Interroger les transactions API L7 avec filtrage KFL |
get_api_call | Obtenir des informations détaillées sur un appel API spécifique |
get_api_stats | Obtenir des statistiques API agrégées |
list_l4_flows | Lister les flux réseau L4 (TCP/UDP) |
get_l4_flow_summary | Obtenir un résumé de la connectivité L4 |
list_snapshots | Lister tous les instantanés PCAP |
create_snapshot | Créer un nouvel instantané PCAP |
get_dissection_status | Vérifier l’état d’analyse du protocole L7 |
enable_dissection | Activer la dissection du protocole L7 |
disable_dissection | Désactiver la dissection du protocole L7 |
Gestion du cluster (mode proxy uniquement)
| Outil | Description | Requiert |
|---|---|---|
check_kubeshark_status | Vérifier si Kubeshark est en cours d’exécution | - |
start_kubeshark | Déployer Kubeshark sur le cluster | --allow-destructive |
stop_kubeshark | Supprimer Kubeshark du cluster | --allow-destructive |
Invites disponibles
| Invite | Description |
|---|---|
analyze_traffic | Analyser les modèles de trafic API et identifier les problèmes |
find_errors | Trouver et résumer les erreurs et échecs API |
trace_request | Tracer le chemin d’une requête à travers les microservices |
show_topology | Afficher la topologie de communication des services |
latency_analysis | Analyser les modèles de latence et identifier les points de terminaison lents |
security_audit | Auditer le trafic pour détecter les problèmes de sécurité |
compare_traffic | Comparer les modèles de trafic entre deux périodes |
debug_connection | Déboguer les problèmes de connectivité entre les services |
Exemples de conversations
User: Show me all HTTP 500 errors in the last hour
Claude: I'll query the API traffic for 500 errors.
[Calling list_api_calls with kfl="http and response.status == 500"]
Found 12 HTTP 500 errors:
1. POST /api/checkout -> payment-service (500)
Time: 10:23:45 | Latency: 2340ms
...
User: What services are communicating with the database?
Claude: Let me check the L4 flows to the database.
[Calling list_l4_flows with dst_filter="postgres"]
Found 5 services connecting to postgres:5432:
- orders-service: 456KB transferred
- users-service: 123KB transferred
...
Options CLI
| Option | Description |
|---|---|
--url | URL directe vers le Hub Kubeshark |
--kubeconfig | Chemin vers le fichier kubeconfig |
--allow-destructive | Activer les opérations de démarrage/arrêt |
--list-tools | Lister les outils disponibles et quitter |
--mcp-config | Afficher la configuration JSON de Claude Desktop |
KFL (Kubeshark Filter Language)
Interroger le trafic en utilisant la syntaxe KFL :
# HTTP requests to a specific path
http and request.path == "/api/users"
# Errors only
response.status >= 400
# Specific source pod
src.pod.name == "frontend-.*"
# Multiple conditions
http and src.namespace == "default" and response.status == 500
Registre MCP
Kubeshark est publié sur le Registre MCP automatiquement à chaque version.
Le server.json dans ce répertoire est un fichier de référence. Les métadonnées réelles du registre (version, hachages SHA256) sont générées automatiquement lors du workflow de publication. Voir .github/workflows/release.yml pour plus de détails.
Liens
Licence
Apache-2.0