MCP Helm服务器
MCP(模型上下文协议)服务器,提供与Helm存储库和图表交互的工具。这 服务器使AI助手能够查询Helm存储库、检索图表信息和访问图表值,而无需 需要本地Helm安装。
将MCP用于Helm的目的是避免伪造格式 values.yaml 工作时图表的内容 LLMs。 相反,服务器提供了一种标准化的方式来访问这些信息,使人工智能助手更容易 与Helm图表和存储库交互。
此MCP服务器现在和将来都只提供用于使用Helm存储库的工具。如果你需要与他人合作 Kubernetes资源,考虑使用一个单独的MCP服务器,为Kubernetes资源提供工具。
特性
MCP Helm服务器提供以下工具:
- list_repository_charts -列出Helm存储库中可用的所有图表(或OCI注册表的图表名称)
- list_chart_version -列出图表的所有可用版本/标签
- get_latest_version_of_chart -检索特定图表的最新版本
- get_chart_values -检索图表的值文件(最新版本或特定版本)
- get_chart_contents -检索图表的内容(包括模板、值和元数据)
- get_chart_依赖关系 -检索图表中定义的依赖关系
Chart.yaml文件 - get_chart_images -通过渲染模板和解析Kubernetes来提取Helm图表中使用的容器图像
清单
存储库类型
所有工具都支持传统的HTTP Helm存储库和OCI注册表:
| 存储库类型 | 示例URL |
|---|---|
| HTTP存储库 | https://charts.example.com |
| OCI注册表 | oci://ghcr.io/org/charts/mychart |
| OCI(Docker Hub) | oci://docker.io/library/mysql |
OCI注册表支持
OCI(开放容器倡议)注册表将Helm图表存储为OCI工件。与HTTP存储库不同,HTTP存储库中有多个 图表共享一个索引,OCI注册表通常每个存储库包含一个图表,带有多个版本标签。
OCI使用示例:
repository_url: oci://ghcr.io/nginxinc/charts/nginx-ingress
chart_name: (empty - chart name is in the URL)尝试不安装
有一个公开可用的MCP Helm服务器实例,您可以使用它来测试功能,而无需安装 它https://mcp-helm.zekker.dev/mcp
安装
使用docker运行
您可以使用Docker运行MCP Helm服务器。这是最简单的入门方法,无需安装Go或 从源头构建。
docker run -d --name mcp-helm -p 8012:8012 ghcr.io/zekker6/mcp-helm:v1.3.0 -mode=sse请注意 --mode=sse 标志用于启用服务器发送事件模式,MCP客户端使用该模式进行连接。 或者,您可以使用 -mode=http 以启用流式HTTP模式。
通过预构建二进制文件
从下载二进制文件 发布页面.
Linux x86_64示例(请注意,其他架构和平台也可用):
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通过Mise
Mise(就位)是一个开发环境设置工具。
mise i ubi:zekker6/mcp-helm@latest使用Go安装
注:Go 1.24.3是必需的。
go install github.com/zekker6/mcp-helm/cmd/mcp-helm@latest从源代码构建
注:Go 1.24.3是必需的。
- 克隆存储库:
git clone https://github.com/zekker6/mcp-helm.git
cd mcp-helm- 构建二进制文件:
go build -o mcp-helm ./cmd/mcp-helm- 运行服务器:
./mcp-helm配置
配置您的MCP客户端以连接到此服务器。服务器实现了用于工具发现的标准MCP协议 以及执行。
认证
服务器支持OCI注册表和HTTP Helm存储库的身份验证。
命令行标志
| 标志 | 描述 |
|---|---|
-username | 用于身份验证的用户名(适用于OCI和HTTP存储库) |
-password-file | 包含密码的文件路径) |
-registry-credentials | Docker风格证书文件的路径(例如。, ~/.docker/config.json) |
-registry-plain-http | 对OCI注册表使用纯HTTP(不安全,仅用于开发) |
-tls-cert | HTTP存储库的TLS客户端证书文件路径 |
-tls-key | HTTP存储库的TLS客户端密钥文件路径 |
-tls-ca | 用于验证服务器证书的CA证书文件的路径 |
-tls-insecure-skip-verify | 跳过TLS证书验证(不安全) |
-pass-credentials-all | 在执行重定向时将凭据传递给所有域 |
基本身份验证
对于需要用户名/密码身份验证的存储库:
# 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.txtOCI注册表身份验证
对于私有OCI注册表,可以通过以下方式配置身份验证:
- Docker凭据 -服务器自动使用来自的凭据
~/.docker/config.json - 显式凭据文件 -使用
-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.txtTLS/mTLS配置
对于具有自定义TLS要求的存储库:
# 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-verifyDocker配置
Docker示例,通过身份验证:
# 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路线图
- \[x\] 添加更多工具
- \[x\] 列出存储库中的所有图表 - \[x\] 列出图表的所有版本 - \[x\] 获取图表的最新版本 - \[x\] 获取图表值 - \[x\] 获取图表最新版本的值 - \[x\] 提取完整图表内容 - \[x\] 从charts.yaml中提取相关图表 - \[x\] 提取图表中使用的图像
- \[x\] 支持OCI注册表
- \[x\] 从OCI注册表中提取图表 - \[x\] 列出OCI注册表中的标签/版本 - \[x\] 支持通过Docker凭据进行身份验证
- \[x\] 支持使用私有HTTP存储库
- \[x\] 添加一种为HTTP基本身份验证提供凭据的方法
