Kubeshark
officielAccès MCP au trafic réseau L4 et L7 à l'échelle du cluster, aux paquets, aux API et aux charges utiles complètes.
Que pouvez-vous faire avec Kubeshark MCP ?
- Interroger les transactions API L7 avec des filtres KFL — utilisez
list_api_callspour trouver des requêtes HTTP, gRPC, Redis, Kafka ou DNS correspondant à des conditions comme les codes d'état ou les chemins. - Inspecter un appel API spécifique en détail — récupérez les données complètes de requête/réponse pour une seule transaction avec
get_api_call. - Obtenir des statistiques API agrégées — résumez les modèles de trafic, les taux d'erreur ou les distributions de latence à l'aide de
get_api_stats. - Consulter les flux réseau L4 et les résumés — listez les connexions TCP/UDP et obtenez des aperçus de connectivité via
list_l4_flowsetget_l4_flow_summary. - Créer et gérer des instantanés PCAP — capturez le trafic réseau pour une analyse hors ligne avec
create_snapshotetlist_snapshots. - Contrôler la dissection des protocoles L7 — activez ou désactivez l'analyse approfondie des protocoles à la demande à l'aide de
enable_dissectionetdisable_dissection.
Documentation
Serveur MCP Kubeshark
Kubeshark Le serveur MCP (Model Context Protocol) permet aux assistants IA comme Claude Desktop, Cursor et 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 les enquêtes forensiques. Consultez le README des compétences pour l'installation et l'utilisation.
| Compétence | Description |
|---|---|
network-rca | Analyse des causes racines réseau — enquête rétrospective basée sur des instantanés avec des 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 : Voir les flux TCP/UDP avec les statistiques de trafic
- Gestion de 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 (pas de kubectl requis)
Utilisez ceci 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"]
}
}
}
Pour un Hub sécurisé (AUTH_ENABLED=true), le mode URL ne peut pas créer de jeton (pas d'accès
kube), donc fournissez-en un explicitement via --token (ou la variable d'environnement KUBESHARK_HUB_TOKEN).
Créez-le depuis une machine qui a accès au cluster :
kubectl create token kubeshark-cli -n <release-namespace> --audience kubeshark-hub
{
"mcpServers": {
"kubeshark": {
"command": "kubeshark",
"args": ["mcp", "--url", "https://kubeshark.example.com", "--token", "<token>"]
}
}
}
Le jeton est de courte durée (~1h) et le mode URL ne peut pas le renouveler automatiquement ; lorsqu'il
expire, le serveur signale un message clair 401 ... token expired/invalid — recréez-le
et redémarrez. Le mode proxy (par défaut, avec accès kube) crée le jeton kubeshark-cli
automatiquement et le renouvelle automatiquement, ainsi les sessions de longue durée n'expirent pas.
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 le 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 de l'analyse du protocole L7 |
enable_dissection | Activer la dissection du protocole L7 |
disable_dissection | Désactiver la dissection du protocole L7 |
Gestion de cluster (mode proxy uniquement)
| Outil | Description | Nécessite |
|---|---|---|
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 |
--token | Jeton SA/bearer du Hub pour le mode --url contre un Hub sécurisé (aussi KUBESHARK_HUB_TOKEN) ; ignoré en mode proxy, qui crée et renouvelle automatiquement le jeton |
--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 pendant le workflow de publication. Voir .github/workflows/release.yml pour plus de détails.
Liens
Licence
Apache-2.0