Kubeshark MCP Server

offiziell

MCP access to cluster-wide L4 and L7 network traffic, packets, APIs, and complete payloads.

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 Echtzeit-Kubernetes-Netzwerkverkehr.

KI-Fähigkeiten

Der 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 Arbeitsabläufe wie Ursachenanalyse, Verkehrsfilterung und forensische Untersuchungen. Siehe die Fähigkeiten-README für Installation und Nutzung.

FähigkeitBeschreibung
network-rcaNetzwerk-Ursachenanalyse – Snapshot-basierte retrospektive Untersuchung mit PCAP- und Dissektionsrouten
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 von GitHub Releases herunterladen.

2. Claude Desktop konfigurieren

Zur Claude Desktop-Konfiguration hinzufügen:

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. Direkte Verbindung zu einer bestehenden Kubeshark-Bereitstellung:

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

Mit destruktiven Operationen

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

3. Konfiguration generieren

Verwenden Sie die CLI zur Generierung der Konfiguration:

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-Dissektion aktivieren
disable_dissectionL7-Protokoll-Dissektion 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
--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 tatsächlichen 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