Kubeshark

offiziell

MCP-Zugriff auf clusterweiten L4- und L7-Netzwerkverkehr, Pakete, APIs und vollständige Nutzdaten.

Was kann man mit Kubeshark MCP machen?

  • L7-API-Transaktionen mit KFL-Filtern abfragen — Verwenden Sie list_api_calls, um HTTP-, gRPC-, Redis-, Kafka- oder DNS-Anfragen zu finden, die Bedingungen wie Statuscodes oder Pfade erfüllen.
  • Eine bestimmte API-Abfrage im Detail untersuchen — Rufen Sie vollständige Anfrage-/Antwortdaten für eine einzelne Transaktion mit get_api_call ab.
  • Aggregierte API-Statistiken abrufen — Fassen Sie Verkehrsmuster, Fehlerraten oder Latenzverteilungen mit get_api_stats zusammen.
  • L4-Netzwerkflüsse und Zusammenfassungen anzeigen — Listen Sie TCP/UDP-Verbindungen auf und erhalten Sie Konnektivitätsübersichten über list_l4_flows und get_l4_flow_summary.
  • PCAP-Snapshots erstellen und verwalten — Erfassen Sie Netzwerkverkehr für die Offline-Analyse mit create_snapshot und list_snapshots.
  • L7-Protokoll-Dissection steuern — Aktivieren oder deaktivieren Sie bei Bedarf die tiefe Protokollanalyse mit enable_dissection und disable_dissection.

Dokumentation

Kubeshark MCP Server

Kubeshark MCP (Model Context Protocol) Server ermöglicht KI-Assistenten wie Claude Desktop, Cursor und anderen MCP-kompatiblen Clients die Abfrage von Kubernetes-Netzwerkverkehr in Echtzeit.

KI-Fähigkeiten

Das MCP stellt die Werkzeuge bereit – KI-Fähigkeiten lehren Agenten, wie sie diese nutzen können. Fähigkeiten verwandeln rohe MCP-Funktionen in domänenspezifische Workflows wie Ursachenanalyse, Verkehrsfilterung und forensische Untersuchungen. Siehe die Skills-README für Installation und Nutzung.

FähigkeitBeschreibung
network-rcaNetzwerk-Ursachenanalyse – Snapshot-basierte retrospektive Untersuchung mit PCAP- und Dissection-Routen
kflKFL2-Filterexperte – Schreiben, Debuggen und Optimieren von Verkehrsabfragen über alle unterstützten Protokolle hinweg

Funktionen

  • L7-API-Verkehrsanalyse: Abfrage von HTTP-, gRPC-, Redis-, Kafka-, DNS-Transaktionen
  • L4-Netzwerkflüsse: Anzeige von TCP/UDP-Flüssen mit Verkehrsstatistiken
  • Cluster-Verwaltung: Starten/Stoppen von Kubeshark-Bereitstellungen (mit Sicherheitskontrollen)
  • PCAP-Snapshots: Erstellen und Exportieren von Netzwerkmitschnitten
  • Eingebaute Prompts: Vorkonfigurierte Prompts für häufige Analyseaufgaben

Installation

1. Kubeshark CLI installieren

# macOS
brew install kubeshark

# Linux
sh <(curl -Ls https://kubeshark.com/install)

# Windows (PowerShell)
choco install kubeshark

Oder laden Sie es von GitHub Releases herunter.

2. Claude Desktop konfigurieren

Fügen Sie es zu Ihrer Claude Desktop-Konfiguration hinzu:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

Standard (erfordert kubectl-Zugriff / Kube-Kontext)

{
  "mcpServers": {
    "kubeshark": {
      "command": "kubeshark",
      "args": ["mcp"]
    }
  }
}

Mit explizitem Kubeconfig-Pfad:

{
  "mcpServers": {
    "kubeshark": {
      "command": "kubeshark",
      "args": ["mcp", "--kubeconfig", "/path/to/.kube/config"]
    }
  }
}

URL-Modus (kein kubectl erforderlich)

Verwenden Sie dies, wenn die Maschine keinen kubectl-Zugriff oder Kube-Kontext hat. Verbinden Sie sich direkt mit einer bestehenden Kubeshark-Bereitstellung:

{
  "mcpServers": {
    "kubeshark": {
      "command": "kubeshark",
      "args": ["mcp", "--url", "https://kubeshark.example.com"]
    }
  }
}

Für einen abgeschotteten Hub (AUTH_ENABLED=true) kann der URL-Modus kein Token ausstellen (kein Kube-Zugriff), geben Sie daher explizit eines über --token (oder die Umgebungsvariable KUBESHARK_HUB_TOKEN) an. Stellen Sie es von einer Maschine mit Cluster-Zugriff aus:

kubectl create token kubeshark-cli -n <release-namespace> --audience kubeshark-hub
{
  "mcpServers": {
    "kubeshark": {
      "command": "kubeshark",
      "args": ["mcp", "--url", "https://kubeshark.example.com", "--token", "<token>"]
    }
  }
}

Das Token ist kurzlebig (~1h) und der URL-Modus kann es nicht automatisch erneuern; wenn es abläuft, meldet der Server eine klare 401 ... token expired/invalid-Meldung – stellen Sie es erneut aus und starten Sie neu. Der Proxy-Modus (Standard, mit Kube-Zugriff) stellt das kubeshark-cli-Token automatisch aus und erneuert es automatisch, sodass langlebige Sitzungen nicht ablaufen.

Mit destruktiven Operationen

{
  "mcpServers": {
    "kubeshark": {
      "command": "kubeshark",
      "args": ["mcp", "--allow-destructive", "--kubeconfig", "/path/to/.kube/config"]
    }
  }
}

3. Konfiguration generieren

Verwenden Sie die CLI, um die Konfiguration zu generieren:

kubeshark mcp --mcp-config --url https://kubeshark.example.com

Verfügbare Werkzeuge

Verkehrsanalyse (Alle Modi)

WerkzeugBeschreibung
list_workloadsPods, Services, Namespaces mit beobachtetem Verkehr auflisten
list_api_callsL7-API-Transaktionen mit KFL-Filterung abfragen
get_api_callDetaillierte Informationen zu einem bestimmten API-Aufruf abrufen
get_api_statsAggregierte API-Statistiken abrufen
list_l4_flowsL4 (TCP/UDP) Netzwerkflüsse auflisten
get_l4_flow_summaryL4-Konnektivitätszusammenfassung abrufen
list_snapshotsAlle PCAP-Snapshots auflisten
create_snapshotEinen neuen PCAP-Snapshot erstellen
get_dissection_statusL7-Protokoll-Parsing-Status prüfen
enable_dissectionL7-Protokoll-Dissection aktivieren
disable_dissectionL7-Protokoll-Dissection deaktivieren

Cluster-Verwaltung (Nur Proxy-Modus)

WerkzeugBeschreibungErfordert
check_kubeshark_statusPrüfen, ob Kubeshark läuft-
start_kubesharkKubeshark im Cluster bereitstellen--allow-destructive
stop_kubesharkKubeshark aus dem Cluster entfernen--allow-destructive

Verfügbare Prompts

PromptBeschreibung
analyze_trafficAPI-Verkehrsmuster analysieren und Probleme identifizieren
find_errorsAPI-Fehler und -Ausfälle finden und zusammenfassen
trace_requestEinen Anfragepfad durch Microservices verfolgen
show_topologyService-Kommunikationstopologie anzeigen
latency_analysisLatenzmuster analysieren und langsame Endpunkte identifizieren
security_auditVerkehr auf Sicherheitsbedenken prüfen
compare_trafficVerkehrsmuster zwischen Zeiträumen vergleichen
debug_connectionKonnektivitätsprobleme zwischen Services debuggen

Beispielkonversationen

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
...

CLI-Optionen

OptionBeschreibung
--urlDirekte URL zum Kubeshark Hub
--tokenHub-SA/Bearer-Token für den --url-Modus gegen einen abgeschotteten Hub (auch KUBESHARK_HUB_TOKEN); ignoriert im Proxy-Modus, der das Token ausstellt und automatisch erneuert
--kubeconfigPfad zur Kubeconfig-Datei
--allow-destructiveStart/Stopp-Operationen aktivieren
--list-toolsVerfügbare Werkzeuge auflisten und beenden
--mcp-configClaude Desktop-Konfigurations-JSON ausgeben

KFL (Kubeshark Filter Language)

Verkehr mit KFL-Syntax abfragen:

# 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

MCP-Registry

Kubeshark wird bei jedem Release automatisch in der MCP-Registry veröffentlicht.

Die server.json in diesem Verzeichnis ist eine Referenzdatei. Die eigentlichen Registry-Metadaten (Version, SHA256-Hashes) werden während des Release-Workflows automatisch generiert. Siehe .github/workflows/release.yml für Details.

Links

Lizenz

Apache-2.0