Helm MCP

Servidor MCP para trabajar con gráficos de Helm

Documentación

MCP Helm Server

Un servidor MCP (Model Context Protocol) que proporciona herramientas para interactuar con repositorios y charts de Helm. Este servidor permite a los asistentes de IA consultar repositorios de Helm, recuperar información de charts y acceder a los valores de los charts sin requerir una instalación local de Helm.

El propósito de usar MCP para Helm es evitar inventar el formato de values.yaml y el contenido de los charts al trabajar con LLMs. En su lugar, el servidor proporciona una forma estandarizada de acceder a esta información, facilitando a los asistentes de IA la interacción con charts y repositorios de Helm.

Este servidor MCP proporciona y proporcionará herramientas únicamente para trabajar con repositorios de Helm. Si necesita trabajar con otros recursos de Kubernetes, considere usar un servidor MCP separado que proporcione herramientas para recursos de Kubernetes.

Características

El servidor MCP Helm proporciona las siguientes herramientas:

  • list_repository_charts - Lista todos los charts disponibles en un repositorio de Helm (o nombre del chart para registros OCI)
  • list_chart_versions - Lista todas las versiones/etiquetas disponibles para un chart
  • get_latest_version_of_chart - Recupera la última versión de un chart específico
  • get_chart_values - Recupera el archivo de valores de un chart (última versión o versión específica)
  • get_chart_contents - Recupera el contenido de un chart (incluyendo plantillas, valores y metadatos)
  • get_chart_dependencies - Recupera las dependencias de un chart según lo definido en su archivo Chart.yaml
  • get_chart_images - Extrae las imágenes de contenedor utilizadas en un chart de Helm renderizando plantillas y analizando manifiestos de Kubernetes

Tipos de Repositorio

Todas las herramientas admiten tanto repositorios HTTP tradicionales de Helm como registros OCI:

Tipo de RepositorioURL de Ejemplo
Repositorio HTTPhttps://charts.example.com
Registro OCIoci://ghcr.io/org/charts/mychart
OCI (Docker Hub)oci://docker.io/library/mysql

Soporte para Registros OCI

Los registros OCI (Open Container Initiative) almacenan charts de Helm como artefactos OCI. A diferencia de los repositorios HTTP donde múltiples charts comparten un índice, los registros OCI normalmente contienen un chart por repositorio con múltiples etiquetas de versión.

Ejemplo de uso con OCI:

repository_url: oci://ghcr.io/nginxinc/charts/nginx-ingress
chart_name: (empty - chart name is in the URL)

Probar sin instalación

Hay una instancia disponible públicamente del servidor MCP Helm que puede usar para probar las funciones sin instalarla: https://mcp-helm.zekker.dev/mcp

Instalación

Ejecutar con Docker

Puede ejecutar el servidor MCP Helm usando Docker. Esta es la forma más fácil de comenzar sin necesidad de instalar Go o compilar desde el código fuente.

docker run -d --name mcp-helm -p 8012:8012 ghcr.io/zekker6/mcp-helm:v1.3.0 -mode=sse

Tenga en cuenta que la bandera --mode=sse se usa para habilitar el modo Server-Sent Events, que utilizan los clientes MCP para conectarse. Alternativamente, puede usar -mode=http para habilitar el modo HTTP Streamable.

Mediante binario precompilado

Descargue el binario desde la página de versiones.

Ejemplo para Linux x86_64 (tenga en cuenta que también están disponibles otras arquitecturas y plataformas):

latest=$(curl -s https://api.github.com/repos/zekker6/mcp-helm/releases/latest | grep 'tag_name' | cut -d\" -f4)
wget https://github.com/zekker6/mcp-helm/releases/download/$latest/mcp-helm_Linux_x86_64.tar.gz
tar axvf mcp-helm_Linux_x86_64.tar.gz

Mediante Mise

Mise (mise-en-place) es una herramienta de configuración de entornos de desarrollo.

mise i ubi:zekker6/mcp-helm@latest

Instalar con Go

Nota: Se requiere Go 1.24.3.

go install github.com/zekker6/mcp-helm/cmd/mcp-helm@latest

Compilar desde el código fuente

Nota: Se requiere Go 1.24.3.

  1. Clone el repositorio:

    git clone https://github.com/zekker6/mcp-helm.git
    cd mcp-helm
    
  2. Compile el binario:

    go build -o mcp-helm ./cmd/mcp-helm
    
  3. Ejecute el servidor:

    ./mcp-helm
    

Configuración

Configure su cliente MCP para conectarse a este servidor. El servidor implementa el protocolo MCP estándar para el descubrimiento y ejecución de herramientas.

Autenticación

El servidor admite autenticación tanto para registros OCI como para repositorios HTTP de Helm.

Banderas de Línea de Comandos

BanderaDescripción
-usernameNombre de usuario para autenticación básica (repositorios HTTP y registros OCI no cubiertos por -registry-credentials)
-password-fileRuta al archivo que contiene la contraseña
-registry-credentialsRuta al archivo de credenciales estilo Docker (p. ej., ~/.docker/config.json); autoritativo para los registros OCI que lista
-registry-plain-httpUsar HTTP simple para registros OCI (inseguro, solo para desarrollo)
-tls-certRuta al archivo de certificado de cliente TLS para repositorios HTTP
-tls-keyRuta al archivo de clave de cliente TLS para repositorios HTTP
-tls-caRuta al archivo de certificado CA para verificar certificados de servidor
-tls-insecure-skip-verifyOmitir la verificación de certificados TLS (inseguro)
-pass-credentials-allPasar credenciales a todos los dominios al seguir redirecciones

Autenticación Básica

Para repositorios que requieren autenticación de usuario/contraseña:

# Create a password file (recommended for security)
echo "your-password" > /path/to/password.txt
chmod 600 /path/to/password.txt

# Run with basic auth
./mcp-helm -username myuser -password-file /path/to/password.txt

Autenticación de Registros OCI

Para registros OCI privados, la autenticación se puede configurar mediante:

  1. Credenciales de Docker - El servidor usa automáticamente las credenciales de ~/.docker/config.json
  2. Archivo de credenciales explícito - Use la bandera -registry-credentials
# Using Docker login (credentials stored in ~/.docker/config.json)
docker login ghcr.io
echo $GITHUB_TOKEN | docker login ghcr.io -u USERNAME --password-stdin

# Using explicit credentials file
./mcp-helm -registry-credentials /path/to/docker/config.json

# Using basic auth for OCI registry
./mcp-helm -username myuser -password-file /path/to/password.txt
Combinando autenticación básica con un archivo de credenciales de registro

Una sola instancia puede servir repositorios HTTP privados y registros OCI privados al mismo tiempo. Cuando se establecen tanto -username/-password-file como -registry-credentials, las solicitudes OCI se enrutan por host de registro:

  • Si el archivo de credenciales resuelve una credencial para el host de registro del chart, se usa esa credencial por host (se consultan auths, credHelpers y credsStore, usando la misma resolución de credenciales Docker que la CLI de Helm, de modo que la clave canónica https://index.docker.io/v1/ de Docker Hub se empareja correctamente).
  • De lo contrario, se usa la autenticación básica estática -username/-password-file.

Esto permite que -registry-credentials siga siendo autoritativo para los registros OCI que cubre, mientras que la autenticación básica aún se aplica a los repositorios HTTP (y a cualquier registro OCI que el archivo de credenciales no resuelva).

# HTTP repos use basic auth; OCI hosts in config.json use their per-host creds
./mcp-helm \
  -username myuser -password-file /path/to/password.txt \
  -registry-credentials /path/to/docker/config.json

Las credenciales detrás de un almacén de credenciales externo (credsStore) o un helper por registro (credHelpers) se resuelven invocando ese binario helper en tiempo de ejecución. Si el helper no está disponible en el entorno de ejecución, los registros afectados recurren a la autenticación básica; se registra una advertencia al inicio para que esto sea visible. El enrutamiento considera solo el archivo pasado a -registry-credentials (sin respaldo implícito de ~/.docker/config.json), así que liste cada registro OCI privado que necesite en ese archivo.

Configuración TLS/mTLS

Para repositorios con requisitos TLS personalizados:

# Custom CA certificate (for self-signed or internal CAs)
./mcp-helm -tls-ca /path/to/ca.crt

# Client certificate authentication (mTLS)
./mcp-helm -tls-cert /path/to/client.crt -tls-key /path/to/client.key

# Combined: mTLS with custom CA
./mcp-helm -tls-cert client.crt -tls-key client.key -tls-ca ca.crt

# Skip TLS verification (development only, not recommended for production)
./mcp-helm -tls-insecure-skip-verify

Configuración de Docker

Ejemplo con Docker, pasando autenticación:

# With basic auth
docker run -d --name mcp-helm -p 8012:8012 \
  -v /path/to/password.txt:/secrets/password.txt:ro \
  ghcr.io/zekker6/mcp-helm:v1.3.0 \
  -mode=sse -username myuser -password-file /secrets/password.txt

# With Docker credentials
docker run -d --name mcp-helm -p 8012:8012 \
  -v ~/.docker/config.json:/root/.docker/config.json:ro \
  ghcr.io/zekker6/mcp-helm:v1.3.0 \
  -mode=sse

Hoja de Ruta

  • Añadir más herramientas
    • Listar todos los charts en un repositorio
    • Listar todas las versiones de un chart
    • Obtener la última versión del chart
    • Obtener valores para el chart
    • Obtener valores para la última versión del chart
    • Extraer el contenido completo del chart
    • Extraer charts dependientes de Charts.yaml
    • Extraer imágenes utilizadas en el chart
  • Soporte para registros OCI
    • Extraer charts de registros OCI
    • Listar etiquetas/versiones de registros OCI
    • Soporte de autenticación mediante credenciales Docker
  • Soporte para usar repositorios HTTP privados
    • Añadir una forma de proporcionar credenciales para autenticación básica HTTP