Kubeshark MCP Server
offiziellMCP 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ähigkeit | Beschreibung |
|---|---|
network-rca | Netzwerk-Ursachenanalyse – Snapshot-basierte retrospektive Untersuchung mit PCAP- und Dissektionsrouten |
kfl | KFL2-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)
| Werkzeug | Beschreibung |
|---|---|
list_workloads | Pods, Services, Namespaces mit beobachtetem Verkehr auflisten |
list_api_calls | L7-API-Transaktionen mit KFL-Filterung abfragen |
get_api_call | Detaillierte Informationen zu einem bestimmten API-Aufruf abrufen |
get_api_stats | Aggregierte API-Statistiken abrufen |
list_l4_flows | L4 (TCP/UDP) Netzwerkflüsse auflisten |
get_l4_flow_summary | L4-Konnektivitätszusammenfassung abrufen |
list_snapshots | Alle PCAP-Snapshots auflisten |
create_snapshot | Einen neuen PCAP-Snapshot erstellen |
get_dissection_status | L7-Protokoll-Parsing-Status prüfen |
enable_dissection | L7-Protokoll-Dissektion aktivieren |
disable_dissection | L7-Protokoll-Dissektion deaktivieren |
Cluster-Verwaltung (Nur Proxy-Modus)
| Werkzeug | Beschreibung | Erfordert |
|---|---|---|
check_kubeshark_status | Prüfen, ob Kubeshark läuft | - |
start_kubeshark | Kubeshark im Cluster bereitstellen | --allow-destructive |
stop_kubeshark | Kubeshark aus dem Cluster entfernen | --allow-destructive |
Verfügbare Prompts
| Prompt | Beschreibung |
|---|---|
analyze_traffic | API-Verkehrsmuster analysieren und Probleme identifizieren |
find_errors | API-Fehler und -Ausfälle finden und zusammenfassen |
trace_request | Einen Anfragepfad durch Microservices verfolgen |
show_topology | Service-Kommunikationstopologie anzeigen |
latency_analysis | Latenzmuster analysieren und langsame Endpunkte identifizieren |
security_audit | Verkehr auf Sicherheitsbedenken prüfen |
compare_traffic | Verkehrsmuster zwischen Zeiträumen vergleichen |
debug_connection | Konnektivitä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
| Option | Beschreibung |
|---|---|
--url | Direkte URL zum Kubeshark Hub |
--kubeconfig | Pfad zur Kubeconfig-Datei |
--allow-destructive | Start/Stopp-Operationen aktivieren |
--list-tools | Verfügbare Werkzeuge auflisten und beenden |
--mcp-config | Claude 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