kubectl MCP Plugin

Un servidor MCP para kubectl, que permite a los asistentes de IA interactuar con clústeres de Kubernetes a través de un protocolo estandarizado.

Documentación

Complemento kubectl MCP (Model Context Protocol)

Resumen

El complemento kubectl-mcp implementa un servidor Model Context Protocol (MCP) para kubectl. Este servidor permite que asistentes de IA como Amazon Q interactúen con la funcionalidad de kubectl directamente a través de un protocolo estandarizado, permitiendo una integración perfecta de los comandos de kubectl en flujos de trabajo impulsados por IA.

¿Qué es MCP?

Model Context Protocol (MCP) es un protocolo abierto que estandariza cómo las aplicaciones proporcionan contexto y herramientas a los Modelos de Lenguaje de Gran Escala (LLMs). Permite que los asistentes de IA:

  1. Descubran las herramientas disponibles y sus capacidades
  2. Ejecuten comandos y reciban respuestas estructuradas
  3. Proporcionen información contextual para mejorar las interacciones con la IA

Cómo funciona el complemento kubectl MCP

El complemento kubectl MCP expone todos los comandos de kubectl como herramientas que pueden ser invocadas por asistentes de IA. La implementación consta de varios componentes clave:

Componentes principales

  1. main.go: Punto de entrada que inicia el servidor MCP
  2. pkg/mcp/server.go: Crea y configura el servidor MCP con todos los comandos de kubectl
  3. pkg/mcp/tools.go: Gestiona el registro de los comandos de kubectl como herramientas MCP

Detalles de implementación

  • El servidor utiliza la librería mcp-go para implementar el Model Context Protocol
  • Registra dinámicamente todos los comandos de kubectl (get, apply, delete, etc.) como herramientas MCP
  • El texto de ayuda, las banderas y los parámetros de cada comando se exponen a través del protocolo
  • El servidor se ejecuta como un servidor stdio, comunicándose a través de la entrada/salida estándar

Proceso de registro de comandos

  1. El servidor recorre recursivamente el árbol de comandos de kubectl
  2. Para cada comando, extrae:
    • La descripción del comando e información de uso
    • Las banderas disponibles y sus descripciones
    • Los parámetros requeridos y opcionales

Uso del complemento kubectl MCP con Amazon Q Chat

Para usar el complemento kubectl MCP con Amazon Q Chat, debe registrarlo en el archivo de configuración de Amazon Q.

Cree o edite el archivo en $HOME/.aws/amazonq/mcp.json con el siguiente contenido:

{
  "mcpServers": {
    "kubectl": {
      "command": "kubectl-mcp",
      "args": []
    }
  }
}

Esta configuración le indica a Amazon Q Chat que:

  1. Registre un servidor llamado "kubectl"
  2. Use el comando kubectl-mcp para iniciar el servidor MCP
  3. Haga que todos los comandos de kubectl estén disponibles como herramientas con el prefijo kubectl___

Beneficios

  • Integración perfecta: Los asistentes de IA pueden ejecutar comandos de kubectl directamente
  • Respuestas estructuradas: Los comandos devuelven datos estructurados que pueden ser analizados por modelos de IA
  • Descubribilidad: Los asistentes de IA pueden descubrir los comandos disponibles y sus parámetros
  • Consciente del contexto: Proporciona contexto enriquecido sobre los recursos de Kubernetes

Instalación

Para instalar el complemento kubectl MCP:

  1. Compile el complemento:

    make kubectl-mcp
    
  2. Mueva el binario a una ubicación en su PATH:

    sudo mv kubectl-mcp /usr/local/bin/
    
  3. Verifique la instalación:

    kubectl plugin list | grep mcp
    

Prueba rápida para el servidor MCP

Para probar rápidamente el servidor MCP, puede ejecutar el siguiente comando en su terminal:

echo '{"jsonrpc":"2.0","method":"tools/list","id":1}' | kubectl-mcp | jq

Recomendaciones

  • Monitoree las operaciones en segundo plano para comandos de larga duración. Comandos como la creación de recursos tienen un tiempo de espera de 45 segundos para las respuestas de los comandos, pero los procesos continúan en segundo plano.
  • Para operaciones complejas de kubectl, considere usar el complemento en combinación con kubectl apply -f para la gestión declarativa de recursos.