Kubeshark MCP Server

officiel

Accè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étenceDescription
network-rcaAnalyse des causes racines réseau — investigation rétrospective basée sur des instantanés avec routes PCAP et de dissection
kflExpert 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)

OutilDescription
list_workloadsLister les pods, services, espaces de noms avec le trafic observé
list_api_callsInterroger les transactions API L7 avec filtrage KFL
get_api_callObtenir des informations détaillées sur un appel API spécifique
get_api_statsObtenir des statistiques API agrégées
list_l4_flowsLister les flux réseau L4 (TCP/UDP)
get_l4_flow_summaryObtenir un résumé de la connectivité L4
list_snapshotsLister tous les instantanés PCAP
create_snapshotCréer un nouvel instantané PCAP
get_dissection_statusVérifier l’état d’analyse du protocole L7
enable_dissectionActiver la dissection du protocole L7
disable_dissectionDésactiver la dissection du protocole L7

Gestion du cluster (mode proxy uniquement)

OutilDescriptionRequiert
check_kubeshark_statusVérifier si Kubeshark est en cours d’exécution-
start_kubesharkDéployer Kubeshark sur le cluster--allow-destructive
stop_kubesharkSupprimer Kubeshark du cluster--allow-destructive

Invites disponibles

InviteDescription
analyze_trafficAnalyser les modèles de trafic API et identifier les problèmes
find_errorsTrouver et résumer les erreurs et échecs API
trace_requestTracer le chemin d’une requête à travers les microservices
show_topologyAfficher la topologie de communication des services
latency_analysisAnalyser les modèles de latence et identifier les points de terminaison lents
security_auditAuditer le trafic pour détecter les problèmes de sécurité
compare_trafficComparer les modèles de trafic entre deux périodes
debug_connectionDé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

OptionDescription
--urlURL directe vers le Hub Kubeshark
--kubeconfigChemin vers le fichier kubeconfig
--allow-destructiveActiver les opérations de démarrage/arrêt
--list-toolsLister les outils disponibles et quitter
--mcp-configAfficher 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