Kubeshark
официальныйДоступ MCP к кластерному L4 и L7 сетевому трафику, пакетам, API и полным полезным нагрузкам.
Что можно делать с Kubeshark MCP?
- Запрос L7 API транзакций с фильтрами KFL — используйте
list_api_callsдля поиска HTTP, gRPC, Redis, Kafka или DNS запросов, соответствующих условиям, таким как коды состояния или пути. - Детальный просмотр конкретного API вызова — получите полные данные запроса/ответа для одной транзакции с помощью
get_api_call. - Получение агрегированной статистики API — обобщите шаблоны трафика, частоту ошибок или распределение задержек с помощью
get_api_stats. - Просмотр L4 сетевых потоков и сводок — выведите список TCP/UDP соединений и получите обзор связности с помощью
list_l4_flowsиget_l4_flow_summary. - Создание и управление PCAP снимками — захватите сетевой трафик для офлайн-анализа с помощью
create_snapshotиlist_snapshots. - Управление разбором L7 протоколов — включайте или отключайте глубокий разбор протоколов по запросу с помощью
enable_dissectionиdisable_dissection.
Документация
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.
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"]
}
}
}
Для закрытого хаба (AUTH_ENABLED=true) режим URL не может выпустить токен (нет доступа
к kube), поэтому укажите его явно через --token (или переменную окружения KUBESHARK_HUB_TOKEN).
Выпустите его с машины, имеющей доступ к кластеру:
kubectl create token kubeshark-cli -n <release-namespace> --audience kubeshark-hub
{
"mcpServers": {
"kubeshark": {
"command": "kubeshark",
"args": ["mcp", "--url", "https://kubeshark.example.com", "--token", "<token>"]
}
}
}
Токен короткоживущий (~1 час), и режим URL не может автоматически его продлевать; когда он
истекает, сервер выдает четкое сообщение 401 ... token expired/invalid — перевыпустите
и перезапустите. Прокси-режим (по умолчанию, с доступом к kube) выпускает токен kubeshark-cli
автоматически и автоматически продлевает его, поэтому долгоживущие сессии не прерываются.
С деструктивными операциями
{
"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 |
--token | Токен SA/bearer хаба для режима --url при работе с закрытым хабом (также KUBESHARK_HUB_TOKEN); игнорируется в прокси-режиме, который выпускает и автоматически продлевает токен |
--kubeconfig | Путь к файлу kubeconfig |
--allow-destructive | Включение операций запуска/остановки |
--list-tools | Вывод списка доступных инструментов и выход |
--mcp-config | Вывод JSON конфигурации Claude Desktop |
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