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 Repositorio | URL de Ejemplo |
|---|---|
| Repositorio HTTP | https://charts.example.com |
| Registro OCI | oci://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.
-
Clone el repositorio:
git clone https://github.com/zekker6/mcp-helm.git cd mcp-helm -
Compile el binario:
go build -o mcp-helm ./cmd/mcp-helm -
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
| Bandera | Descripción |
|---|---|
-username | Nombre de usuario para autenticación básica (repositorios HTTP y registros OCI no cubiertos por -registry-credentials) |
-password-file | Ruta al archivo que contiene la contraseña |
-registry-credentials | Ruta al archivo de credenciales estilo Docker (p. ej., ~/.docker/config.json); autoritativo para los registros OCI que lista |
-registry-plain-http | Usar HTTP simple para registros OCI (inseguro, solo para desarrollo) |
-tls-cert | Ruta al archivo de certificado de cliente TLS para repositorios HTTP |
-tls-key | Ruta al archivo de clave de cliente TLS para repositorios HTTP |
-tls-ca | Ruta al archivo de certificado CA para verificar certificados de servidor |
-tls-insecure-skip-verify | Omitir la verificación de certificados TLS (inseguro) |
-pass-credentials-all | Pasar 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:
- Credenciales de Docker - El servidor usa automáticamente las credenciales de
~/.docker/config.json - 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,credHelpersycredsStore, usando la misma resolución de credenciales Docker que la CLI de Helm, de modo que la clave canónicahttps://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