Kubeshark

resmi

Akses MCP ke lalu lintas jaringan L4 dan L7 di seluruh klaster, paket, API, dan payload lengkap.

Apa yang bisa Anda lakukan dengan Kubeshark MCP?

  • Kueri transaksi API L7 dengan filter KFL — gunakan list_api_calls untuk menemukan permintaan HTTP, gRPC, Redis, Kafka, atau DNS yang cocok dengan kondisi seperti kode status atau jalur.
  • Periksa panggilan API tertentu secara detail — ambil data permintaan/tanggapan lengkap untuk satu transaksi dengan get_api_call.
  • Dapatkan statistik API yang teragregasi — rangkum pola lalu lintas, tingkat kesalahan, atau distribusi latensi menggunakan get_api_stats.
  • Lihat aliran dan ringkasan jaringan L4 — daftar koneksi TCP/UDP dan dapatkan gambaran konektivitas melalui list_l4_flows dan get_l4_flow_summary.
  • Buat dan kelola snapshot PCAP — tangkap lalu lintas jaringan untuk analisis offline dengan create_snapshot dan list_snapshots.
  • Kontrol pembedahan protokol L7 — aktifkan atau nonaktifkan penguraian protokol mendalam sesuai permintaan menggunakan enable_dissection dan disable_dissection.

Dokumentasi

Server MCP Kubeshark

Kubeshark server MCP (Model Context Protocol) memungkinkan asisten AI seperti Claude Desktop, Cursor, dan klien lain yang kompatibel dengan MCP untuk melakukan kueri lalu lintas jaringan Kubernetes secara real-time.

Keterampilan AI

MCP menyediakan alat — keterampilan AI mengajarkan agen cara menggunakannya. Keterampilan mengubah kemampuan MCP mentah menjadi alur kerja spesifik domain seperti analisis akar penyebab, penyaringan lalu lintas, dan investigasi forensik. Lihat README keterampilan untuk instalasi dan penggunaan.

KeterampilanDeskripsi
network-rcaAnalisis Akar Penyebab Jaringan — investigasi retrospektif berbasis snapshot dengan rute PCAP dan pembedahan
kflAhli filter KFL2 — tulis, debug, dan optimalkan kueri lalu lintas di semua protokol yang didukung

Fitur

  • Analisis Lalu Lintas API L7: Kueri transaksi HTTP, gRPC, Redis, Kafka, DNS
  • Aliran Jaringan L4: Lihat aliran TCP/UDP dengan statistik lalu lintas
  • Manajemen Klaster: Mulai/hentikan deployment Kubeshark (dengan kontrol keamanan)
  • Snapshot PCAP: Buat dan ekspor tangkapan jaringan
  • Prompt Bawaan: Prompt yang telah dikonfigurasi sebelumnya untuk tugas analisis umum

Instalasi

1. Instal Kubeshark CLI

# macOS
brew install kubeshark

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

# Windows (PowerShell)
choco install kubeshark

Atau unduh dari GitHub Releases.

2. Konfigurasi Claude Desktop

Tambahkan ke konfigurasi Claude Desktop Anda:

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

Default (memerlukan akses kubectl / konteks kube)

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

Dengan jalur kubeconfig eksplisit:

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

Mode URL (tidak memerlukan kubectl)

Gunakan ini ketika mesin tidak memiliki akses kubectl atau konteks kube. Hubungkan langsung ke deployment Kubeshark yang sudah ada:

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

Untuk Hub yang dibatasi (AUTH_ENABLED=true), mode URL tidak dapat membuat token (tidak ada akses kube), jadi berikan satu secara eksplisit melalui --token (atau variabel env KUBESHARK_HUB_TOKEN). Buat token dari mesin yang memiliki akses klaster:

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

Token berumur pendek (~1 jam) dan mode URL tidak dapat memperbaruinya secara otomatis; ketika kedaluwarsa, server melaporkan pesan 401 ... token expired/invalid yang jelas — buat ulang dan mulai ulang. Mode proxy (default, dengan akses kube) membuat token kubeshark-cli secara otomatis dan memperbaruinya secara otomatis, sehingga sesi yang berjalan lama tidak kedaluwarsa.

Dengan Operasi Destruktif

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

3. Hasilkan Konfigurasi

Gunakan CLI untuk menghasilkan konfigurasi:

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

Alat yang Tersedia

Analisis Lalu Lintas (Semua Mode)

AlatDeskripsi
list_workloadsDaftar pod, layanan, namespace dengan lalu lintas yang diamati
list_api_callsKueri transaksi API L7 dengan penyaringan KFL
get_api_callDapatkan info detail tentang panggilan API tertentu
get_api_statsDapatkan statistik API teragregasi
list_l4_flowsDaftar aliran jaringan L4 (TCP/UDP)
get_l4_flow_summaryDapatkan ringkasan konektivitas L4
list_snapshotsDaftar semua snapshot PCAP
create_snapshotBuat snapshot PCAP baru
get_dissection_statusPeriksa status parsing protokol L7
enable_dissectionAktifkan pembedahan protokol L7
disable_dissectionNonaktifkan pembedahan protokol L7

Manajemen Klaster (Hanya Mode Proxy)

AlatDeskripsiMemerlukan
check_kubeshark_statusPeriksa apakah Kubeshark berjalan-
start_kubesharkDeploy Kubeshark ke klaster--allow-destructive
stop_kubesharkHapus Kubeshark dari klaster--allow-destructive

Prompt yang Tersedia

PromptDeskripsi
analyze_trafficAnalisis pola lalu lintas API dan identifikasi masalah
find_errorsTemukan dan ringkas kesalahan dan kegagalan API
trace_requestLacak jalur permintaan melalui layanan mikro
show_topologyTampilkan topologi komunikasi layanan
latency_analysisAnalisis pola latensi dan identifikasi endpoint yang lambat
security_auditAudit lalu lintas untuk masalah keamanan
compare_trafficBandingkan pola lalu lintas antar periode waktu
debug_connectionDebug masalah konektivitas antar layanan

Contoh Percakapan

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

Opsi CLI

OpsiDeskripsi
--urlURL langsung ke Kubeshark Hub
--tokenToken SA/pembawa Hub untuk mode --url terhadap Hub yang dibatasi (juga KUBESHARK_HUB_TOKEN); diabaikan dalam mode proxy, yang membuat dan memperbarui token secara otomatis
--kubeconfigJalur ke file kubeconfig
--allow-destructiveAktifkan operasi mulai/hentikan
--list-toolsDaftar alat yang tersedia dan keluar
--mcp-configCetak JSON konfigurasi Claude Desktop

KFL (Bahasa Filter Kubeshark)

Kueri lalu lintas menggunakan sintaks 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

Registri MCP

Kubeshark dipublikasikan ke Registri MCP secara otomatis pada setiap rilis.

server.json di direktori ini adalah file referensi. Metadata registri aktual (versi, hash SHA256) dibuat secara otomatis selama alur kerja rilis. Lihat .github/workflows/release.yml untuk detailnya.

Tautan

Lisensi

Apache-2.0