Kubeshark MCP Server

공식

클러스터 전체의 L4 및 L7 네트워크 트래픽, 패킷, API, 전체 페이로드에 대한 MCP 접근.

문서

Kubeshark MCP 서버

Kubeshark MCP (모델 컨텍스트 프로토콜) 서버는 Claude Desktop, Cursor 및 기타 MCP 호환 클라이언트와 같은 AI 어시스턴트가 실시간 Kubernetes 네트워크 트래픽을 쿼리할 수 있도록 지원합니다.

AI 스킬

MCP는 도구를 제공하며, AI 스킬은 에이전트에게 이를 사용하는 방법을 가르칩니다. 스킬은 원시 MCP 기능을 근본 원인 분석, 트래픽 필터링, 포렌식 조사와 같은 도메인별 워크플로우로 전환합니다. 설치 및 사용법은 스킬 README를 참조하십시오.

스킬설명
network-rca네트워크 근본 원인 분석 — PCAP 및 분석 경로를 통한 스냅샷 기반 회고적 조사
kflKFL2 필터 전문가 — 지원되는 모든 프로토콜에서 트래픽 쿼리 작성, 디버그 및 최적화

기능

  • 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 릴리스에서 다운로드하십시오.

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관찰된 트래픽이 있는 파드, 서비스, 네임스페이스 나열
list_api_callsKFL 필터링으로 L7 API 트랜잭션 쿼리
get_api_call특정 API 호출에 대한 상세 정보 조회
get_api_stats집계된 API 통계 조회
list_l4_flowsL4 (TCP/UDP) 네트워크 플로우 나열
get_l4_flow_summaryL4 연결 요약 조회
list_snapshots모든 PCAP 스냅샷 나열
create_snapshot새 PCAP 스냅샷 생성
get_dissection_statusL7 프로토콜 파싱 상태 확인
enable_dissectionL7 프로토콜 분석 활성화
disable_dissectionL7 프로토콜 분석 비활성화

클러스터 관리 (프록시 모드만 해당)

도구설명필요 조건
check_kubeshark_statusKubeshark 실행 여부 확인-
start_kubeshark클러스터에 Kubeshark 배포--allow-destructive
stop_kubeshark클러스터에서 Kubeshark 제거--allow-destructive

사용 가능한 프롬프트

프롬프트설명
analyze_trafficAPI 트래픽 패턴 분석 및 문제 식별
find_errorsAPI 오류 및 실패 찾기 및 요약
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 옵션

옵션설명
--urlKubeshark Hub로의 직접 URL
--kubeconfigkubeconfig 파일 경로
--allow-destructive시작/중지 작업 활성화
--list-tools사용 가능한 도구 나열 후 종료
--mcp-configClaude Desktop 구성 JSON 출력

KFL (Kubeshark 필터 언어)

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 레지스트리에 게시됩니다.

이 디렉터리의 server.json는 참조 파일입니다. 실제 레지스트리 메타데이터(버전, SHA256 해시)는 릴리스 워크플로우 중에 자동 생성됩니다. 자세한 내용은 .github/workflows/release.yml를 참조하십시오.

링크

라이선스

Apache-2.0