Kubeshark MCP Server
公式クラスター全体のL4およびL7ネットワークトラフィック、パケット、API、完全なペイロードへのMCPアクセス。
ドキュメント
Kubeshark MCP Server
Kubeshark MCP (Model Context Protocol) サーバーは、Claude Desktop、Cursor、その他の MCP 対応クライアントがリアルタイムの Kubernetes ネットワークトラフィックをクエリできるようにします。
AI スキル
MCP はツールを提供し、AI スキル はエージェントにそれらの使い方を教えます。 スキルは、生の MCP 機能を、根本原因分析、トラフィックフィルタリング、フォレンジック調査といった ドメイン固有のワークフローに変換します。インストールと使用方法については、 skills README を参照してください。
| スキル | 説明 |
|---|---|
network-rca | ネットワーク根本原因分析 — PCAP および解析ルートを用いたスナップショットベースの遡及調査 |
kfl | KFL2 フィルターエキスパート — サポートされる全プロトコルにわたるトラフィッククエリの作成、デバッグ、最適化 |
機能
- L7 API トラフィック分析: HTTP、gRPC、Redis、Kafka、DNS トランザクションのクエリ
- L4 ネットワークフロー: トラフィック統計を含む TCP/UDP フローの表示
- クラスター管理: Kubeshark デプロイメントの開始/停止 (安全制御付き)
- PCAP スナップショット: ネットワークキャプチャの作成とエクスポート
- 組み込みプロンプト: 一般的な分析タスク用の事前設定済みプロンプト
インストール
1. Kubeshark CLI のインストール
# macOS
brew install kubeshark
# Linux
sh <(curl -Ls https://kubeshark.com/install)
# Windows (PowerShell)
choco install kubeshark
または GitHub Releases からダウンロードします。
2. Claude Desktop の設定
Claude Desktop の設定に以下を追加します:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
デフォルト (kubectl アクセス / kube コンテキストが必要)
{
"mcpServers": {
"kubeshark": {
"command": "kubeshark",
"args": ["mcp"]
}
}
}
明示的な kubeconfig パスを使用する場合:
{
"mcpServers": {
"kubeshark": {
"command": "kubeshark",
"args": ["mcp", "--kubeconfig", "/path/to/.kube/config"]
}
}
}
URL モード (kubectl 不要)
マシンに kubectl アクセスや kube コンテキストがない場合に使用します。 既存の Kubeshark デプロイメントに直接接続します:
{
"mcpServers": {
"kubeshark": {
"command": "kubeshark",
"args": ["mcp", "--url", "https://kubeshark.example.com"]
}
}
}
破壊的操作を含める場合
{
"mcpServers": {
"kubeshark": {
"command": "kubeshark",
"args": ["mcp", "--allow-destructive", "--kubeconfig", "/path/to/.kube/config"]
}
}
}
3. 設定の生成
CLI を使用して設定を生成します:
kubeshark mcp --mcp-config --url https://kubeshark.example.com
利用可能なツール
トラフィック分析 (全モード)
| ツール | 説明 |
|---|---|
list_workloads | トラフィックが観測された Pod、サービス、名前空間を一覧表示 |
list_api_calls | KFL フィルタリングを使用して L7 API トランザクションをクエリ |
get_api_call | 特定の API 呼び出しに関する詳細情報を取得 |
get_api_stats | 集約された API 統計を取得 |
list_l4_flows | L4 (TCP/UDP) ネットワークフローを一覧表示 |
get_l4_flow_summary | L4 接続サマリーを取得 |
list_snapshots | すべての PCAP スナップショットを一覧表示 |
create_snapshot | 新しい PCAP スナップショットを作成 |
get_dissection_status | L7 プロトコル解析ステータスを確認 |
enable_dissection | L7 プロトコル解析を有効化 |
disable_dissection | L7 プロトコル解析を無効化 |
クラスター管理 (プロキシモードのみ)
| ツール | 説明 | 必要条件 |
|---|---|---|
check_kubeshark_status | Kubeshark が実行中かどうかを確認 | - |
start_kubeshark | Kubeshark をクラスターにデプロイ | --allow-destructive |
stop_kubeshark | Kubeshark をクラスターから削除 | --allow-destructive |
利用可能なプロンプト
| プロンプト | 説明 |
|---|---|
analyze_traffic | API トラフィックパターンを分析し、問題を特定 |
find_errors | API エラーと障害を検索して要約 |
trace_request | マイクロサービスを通るリクエストパスをトレース |
show_topology | サービス通信トポロジーを表示 |
latency_analysis | レイテンシパターンを分析し、遅いエンドポイントを特定 |
security_audit | セキュリティ上の懸念についてトラフィックを監査 |
compare_traffic | 期間間のトラフィックパターンを比較 |
debug_connection | サービス間の接続問題をデバッグ |
会話例
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 オプション
| オプション | 説明 |
|---|---|
--url | Kubeshark Hub への直接 URL |
--kubeconfig | kubeconfig ファイルへのパス |
--allow-destructive | 開始/停止操作を有効化 |
--list-tools | 利用可能なツールを一覧表示して終了 |
--mcp-config | Claude Desktop 設定 JSON を出力 |
KFL (Kubeshark Filter Language)
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
MCP レジストリ
Kubeshark は、リリースごとに自動的に MCP Registry に公開されます。
このディレクトリの server.json は参照ファイルです。実際のレジストリメタデータ (バージョン、SHA256 ハッシュ) は、リリースワークフロー中に自動生成されます。詳細は .github/workflows/release.yml を参照してください。
リンク
ライセンス
Apache-2.0