Kubeshark MCP Server

официальный

Доступ MCP к кластерному L4 и L7 сетевому трафику, пакетам, API и полным полезным нагрузкам.

Документация

Kubeshark MCP-сервер

Kubeshark MCP-сервер (Model Context Protocol) позволяет AI-ассистентам, таким как Claude Desktop, Cursor и другим MCP-совместимым клиентам, запрашивать сетевой трафик Kubernetes в реальном времени.

AI-навыки

MCP предоставляет инструменты, а AI-навыки учат агентов ими пользоваться. Навыки превращают базовые возможности MCP в предметно-ориентированные рабочие процессы, такие как анализ первопричин, фильтрация трафика и криминалистическое расследование. Подробнее об установке и использовании см. в README навыков.

НавыкОписание
network-rcaСетевой анализ первопричин — ретроспективное расследование на основе снимков с маршрутами PCAP и разбора
kflЭксперт по фильтрам KFL2 — написание, отладка и оптимизация запросов трафика по всем поддерживаемым протоколам

Возможности

  • Анализ трафика API уровня L7: запросы HTTP, gRPC, Redis, Kafka, DNS-транзакций
  • Сетевые потоки уровня L4: просмотр потоков TCP/UDP со статистикой трафика
  • Управление кластером: запуск/остановка развертываний Kubeshark (с элементами управления безопасностью)
  • Снимки PCAP: создание и экспорт сетевых захватов
  • Встроенные подсказки: предварительно настроенные подсказки для типовых задач анализа

Установка

1. Установите CLI Kubeshark

# 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Список подов, сервисов, пространств имён с наблюдаемым трафиком
list_api_callsЗапрос транзакций API уровня L7 с фильтрацией KFL
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Прямой URL к Kubeshark Hub
--kubeconfigПуть к файлу kubeconfig
--allow-destructiveВключение операций запуска/остановки
--list-toolsВывод списка доступных инструментов и выход
--mcp-configВывод JSON конфигурации Claude Desktop

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 автоматически при каждом выпуске.

server.json в этой директории является эталонным файлом. Фактические метаданные реестра (версия, хеши SHA256) генерируются автоматически в процессе рабочего процесса выпуска. Подробнее см. в .github/workflows/release.yml.

Ссылки

Лицензия

Apache-2.0