Kubeshark

oficial

Acceso a nivel de clúster al tráfico de red L4 y L7, paquetes, APIs y cargas completas.

¿Qué puedes hacer con Kubeshark MCP?

  • Consultar transacciones de API L7 con filtros KFL — use list_api_calls para encontrar solicitudes HTTP, gRPC, Redis, Kafka o DNS que coincidan con condiciones como códigos de estado o rutas.
  • Inspeccionar una llamada de API específica en detalle — recuperar datos completos de solicitud/respuesta para una sola transacción con get_api_call.
  • Obtener estadísticas agregadas de API — resumir patrones de tráfico, tasas de error o distribuciones de latencia usando get_api_stats.
  • Ver flujos de red L4 y resúmenes — listar conexiones TCP/UDP y obtener vistas generales de conectividad mediante list_l4_flows y get_l4_flow_summary.
  • Crear y gestionar capturas PCAP — capturar tráfico de red para análisis sin conexión con create_snapshot y list_snapshots.
  • Controlar el análisis de protocolos L7 — habilitar o deshabilitar el análisis profundo de protocolos bajo demanda usando enable_dissection y disable_dissection.

Documentación

Servidor MCP de Kubeshark

Kubeshark MCP (Protocolo de Contexto de Modelo) permite que asistentes de IA como Claude Desktop, Cursor y otros clientes compatibles con MCP consulten tráfico de red de Kubernetes en tiempo real.

Habilidades de IA

El MCP proporciona las herramientas — las habilidades de IA enseñan a los agentes cómo usarlas. Las habilidades convierten las capacidades MCP en bruto en flujos de trabajo específicos del dominio, como análisis de causa raíz, filtrado de tráfico e investigación forense. Consulte el README de habilidades para instalación y uso.

HabilidadDescripción
network-rcaAnálisis de Causa Raíz de Red — investigación retrospectiva basada en instantáneas con rutas de PCAP y disección
kflExperto en filtros KFL2 — escribir, depurar y optimizar consultas de tráfico en todos los protocolos soportados

Características

  • Análisis de Tráfico de API L7: Consultar transacciones HTTP, gRPC, Redis, Kafka, DNS
  • Flujos de Red L4: Ver flujos TCP/UDP con estadísticas de tráfico
  • Gestión de Clúster: Iniciar/detener despliegues de Kubeshark (con controles de seguridad)
  • Instantáneas PCAP: Crear y exportar capturas de red
  • Prompts Integrados: Prompts preconfigurados para tareas de análisis comunes

Instalación

1. Instalar la CLI de Kubeshark

# macOS
brew install kubeshark

# Linux
sh <(curl -Ls https://kubeshark.com/install)

# Windows (PowerShell)
choco install kubeshark

O descargar desde GitHub Releases.

2. Configurar Claude Desktop

Añadir a su configuración de Claude Desktop:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

Predeterminado (requiere acceso a kubectl / contexto de kube)

{
  "mcpServers": {
    "kubeshark": {
      "command": "kubeshark",
      "args": ["mcp"]
    }
  }
}

Con una ruta de kubeconfig explícita:

{
  "mcpServers": {
    "kubeshark": {
      "command": "kubeshark",
      "args": ["mcp", "--kubeconfig", "/path/to/.kube/config"]
    }
  }
}

Modo URL (no requiere kubectl)

Úselo cuando la máquina no tenga acceso a kubectl o un contexto de kube. Conéctese directamente a un despliegue existente de Kubeshark:

{
  "mcpServers": {
    "kubeshark": {
      "command": "kubeshark",
      "args": ["mcp", "--url", "https://kubeshark.example.com"]
    }
  }
}

Para un Hub protegido (AUTH_ENABLED=true), el modo URL no puede generar un token (sin acceso a kube), así que proporcione uno explícitamente mediante --token (o la variable de entorno KUBESHARK_HUB_TOKEN). Genérelo desde una máquina que tenga acceso al clúster:

kubectl create token kubeshark-cli -n <release-namespace> --audience kubeshark-hub
{
  "mcpServers": {
    "kubeshark": {
      "command": "kubeshark",
      "args": ["mcp", "--url", "https://kubeshark.example.com", "--token", "<token>"]
    }
  }
}

El token es de corta duración (~1h) y el modo URL no puede renovarlo automáticamente; cuando expira, el servidor informa un mensaje claro 401 ... token expired/invalid — regenere y reinicie. El modo proxy (predeterminado, con acceso a kube) genera el token kubeshark-cli automáticamente y lo renueva automáticamente, por lo que las sesiones de larga duración no expiran.

Con Operaciones Destructivas

{
  "mcpServers": {
    "kubeshark": {
      "command": "kubeshark",
      "args": ["mcp", "--allow-destructive", "--kubeconfig", "/path/to/.kube/config"]
    }
  }
}

3. Generar Configuración

Use la CLI para generar la configuración:

kubeshark mcp --mcp-config --url https://kubeshark.example.com

Herramientas Disponibles

Análisis de Tráfico (Todos los Modos)

HerramientaDescripción
list_workloadsListar pods, servicios, namespaces con tráfico observado
list_api_callsConsultar transacciones de API L7 con filtrado KFL
get_api_callObtener información detallada sobre una llamada API específica
get_api_statsObtener estadísticas agregadas de API
list_l4_flowsListar flujos de red L4 (TCP/UDP)
get_l4_flow_summaryObtener resumen de conectividad L4
list_snapshotsListar todas las instantáneas PCAP
create_snapshotCrear una nueva instantánea PCAP
get_dissection_statusVerificar el estado de análisis de protocolo L7
enable_dissectionHabilitar la disección de protocolo L7
disable_dissectionDeshabilitar la disección de protocolo L7

Gestión de Clúster (Solo Modo Proxy)

HerramientaDescripciónRequiere
check_kubeshark_statusVerificar si Kubeshark está en ejecución-
start_kubesharkDesplegar Kubeshark en el clúster--allow-destructive
stop_kubesharkEliminar Kubeshark del clúster--allow-destructive

Prompts Disponibles

PromptDescripción
analyze_trafficAnalizar patrones de tráfico de API e identificar problemas
find_errorsEncontrar y resumir errores y fallos de API
trace_requestRastrear la ruta de una solicitud a través de microservicios
show_topologyMostrar la topología de comunicación entre servicios
latency_analysisAnalizar patrones de latencia e identificar endpoints lentos
security_auditAuditar el tráfico en busca de problemas de seguridad
compare_trafficComparar patrones de tráfico entre períodos de tiempo
debug_connectionDepurar problemas de conectividad entre servicios

Conversaciones de Ejemplo

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
...

Opciones de CLI

OpciónDescripción
--urlURL directa al Hub de Kubeshark
--tokenToken SA/bearer del Hub para el modo --url contra un Hub protegido (también KUBESHARK_HUB_TOKEN); ignorado en modo proxy, que genera y renueva automáticamente el token
--kubeconfigRuta al archivo kubeconfig
--allow-destructiveHabilitar operaciones de inicio/parada
--list-toolsListar herramientas disponibles y salir
--mcp-configImprimir JSON de configuración de Claude Desktop

KFL (Lenguaje de Filtrado de Kubeshark)

Consultar tráfico usando sintaxis 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

Registro MCP

Kubeshark se publica en el Registro MCP automáticamente en cada lanzamiento.

El server.json en este directorio es un archivo de referencia. Los metadatos reales del registro (versión, hashes SHA256) se generan automáticamente durante el flujo de trabajo de lanzamiento. Consulte .github/workflows/release.yml para más detalles.

Enlaces

Licencia

Apache-2.0