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