](https://mseep.ai/app/jeff-nasseri-helm-chart-cli-mcp)

概述
Helm MCP为Kubernetes的AI助手和Helm包管理器之间提供了一座桥梁。它允许AI助手通过自然语言请求与Helm交互,执行安装图表、管理存储库等命令。
克劳德桌面
https://github.com/user-attachments/assets/706184c4-9569-4977-8194-d8b0a6e8fa26
检查员
https://github.com/user-attachments/assets/4347e851-2791-4a07-b829-f171376fe8d7
安装
先决条件
- Python 3.8+
- Docker(用于容器化部署)
- 已安装Helm CLI
使用Docker
构建并运行Docker容器:
# Clone the repository
git clone https://github.com/modelcontextprotocol/servers.git
cd src/helm
# Build the Docker image
docker build -t mcp-helm .手动安装
# Clone the repository
git clone https://github.com/modelcontextprotocol/servers.git
cd src/helm
# Install dependencies
uv venv
source .venv/Scripts/Activate.ps1
uv pip install -e .
# Run the server
mcp-server-helm工具
以下是Helm MCP服务器中可用的工具:
helm_completion
为各种shell生成自动补全脚本。
- 参数:
- shell (必填):用于生成完成脚本的shell。选项有“bash”、“fish”、“powershell”、“zsh”。
- 例子:
helm_completion(shell="bash")图表创建和管理
helm_create
使用给定名称创建新图表。
- 参数:
- name (必填):要创建的图表的名称。 - starter (可选):要使用的启动器图表的名称。
- 例子:
helm_create(name="mychart")helm_lint
运行一系列测试以验证图表是否格式正确。
- 参数:
- chart_path (必填):指向图表的路径。 - values_file (可选):值文件的路径。 - set_values (可选):在命令行上设置值(可以指定多个)。
- 例子:
helm_lint(chart_path="./mychart")helm_package
将图表打包到图表存档中。
- 参数:
- chart_path (必填):图表目录的路径。 - destination (可选):绘制图表的位置。 - app_version (可选):在图表上设置appVersion。 - version (可选):在图表上设置版本。 - dependency_update (可选):在打包之前更新依赖关系。
- 例子:
helm_package(chart_path="./mychart")helm_template
在本地渲染图表模板并显示输出。
- 参数:
- chart (必填):图表名称。 - release_name (可选):发布名称。 - namespace (可选):命名空间。 - values_file (可选):值文件。 - set_values (可选):设置值。 - api_versions (可选):Kubernetes API版本。 - kube_version (可选):Kubernetes版本。
- 例子:
helm_template(chart="./mychart", release_name="my-release")依赖管理
helm_dependency_build
构建图表的依赖关系。
- 参数:
- chart_path (必填):图表路径。
- 例子:
helm_dependency_build(chart_path="./mychart")helm_dependency_list
列出给定图表的依赖关系。
- 参数:
- chart_path (必填):图表路径。
- 例子:
helm_dependency_list(chart_path="./mychart")helm_dependency_update
更新图表的依赖关系。
- 参数:
- chart_path (必填):图表路径。
- 例子:
helm_dependency_update(chart_path="./mychart")环境
helm_env
显示Helm的环境信息。
- 参数:无
- 例子:
helm_env()helm_version
显示Helm版本信息。
- 参数:无
- 例子:
helm_version()发布管理
helm_install
安装图表。
- 参数:
- chart (必填):图表名称。 - release_name (可选):发布名称。 - namespace (可选):命名空间。 - values_file (可选):值文件。 - set_values (可选):设置值。 - description (可选):添加自定义描述。 - wait (可选):等待所有资源准备就绪。 - atomic (可选):如果设置,安装失败时回滚。 - timeout (可选):等待任何操作完成的时间。
- 例子:
helm_install(chart="bitnami/nginx", release_name="my-nginx")helm_uninstall
卸载发布。
- 参数:
- release_name (必填):发布名称。 - namespace (可选):命名空间。 - keep_history (可选):删除版本,但保留历史记录。 - no_hooks (可选):防止钩子在卸载过程中运行。
- 例子:
helm_uninstall(release_name="my-nginx")helm_upgrade
升级版本。
- 参数:
- release_name (必填):发布名称。 - chart (必填):图表名称。 - namespace (可选):命名空间。 - values_file (可选):值文件。 - set_values (可选):设置值。 - install (可选):如果版本不存在,则安装。 - force (可选):强制资源更新。 - wait (可选):等待所有资源准备就绪。 - atomic (可选):如果已设置,则升级失败后的回滚。 - timeout (可选):等待任何操作完成的时间。
- 例子:
helm_upgrade(release_name="my-nginx", chart="bitnami/nginx", set_values={"replicaCount": "3"})helm_rollback
将版本回滚到以前的版本。
- 参数:
- release_name (必填):发布名称。 - revision (可选):修订号。 - namespace (可选):命名空间。 - wait (可选):等待所有资源准备就绪。 - force (可选):强制资源更新。 - timeout (可选):等待任何操作完成的时间。
- 例子:
helm_rollback(release_name="my-nginx", revision=1)helm_list
列出发布。
- 参数:
- all_namespaces (可选):列出所有命名空间中的版本。 - filter_ (可选):按正则表达式过滤。 - namespace (可选):命名空间。 - deployed (可选):显示已部署的版本。 - failed (可选):显示失败的版本。 - uninstalled (可选):显示已卸载的版本。
- 例子:
helm_list()helm_status
显示命名版本的状态。
- 参数:
- release_name (必填):发布名称。 - namespace (可选):命名空间。 - revision (可选):修订号。
- 例子:
helm_status(release_name="my-nginx")helm_history
获取发布历史记录。
- 参数:
- release_name (必填):发布名称。 - namespace (可选):命名空间。 - max_ (可选):要包含的最大修订数。
- 例子:
helm_history(release_name="my-nginx")helm_test
运行发布测试。
- 参数:
- release_name (必填):发布名称。 - namespace (可选):命名空间。 - filter_ (可选):按名称筛选测试。 - timeout (可选):等待任何操作完成的时间。
- 例子:
helm_test(release_name="my-nginx")发布信息
helm_get_all
获取有关发布的所有信息。
- 参数:
- release_name (必填):发布名称。 - namespace (可选):命名空间。
- 例子:
helm_get_all(release_name="my-nginx")helm_get_hooks
获取释放的钩子。
- 参数:
- release_name (必填):发布名称。 - namespace (可选):命名空间。
- 例子:
helm_get_hooks(release_name="my-nginx")helm_get_manifest
获取发布的清单。
- 参数:
- release_name (必填):发布名称。 - namespace (可选):命名空间。
- 例子:
helm_get_manifest(release_name="my-nginx")helm_get_metadata
获取发布的元数据。
- 参数:
- release_name (必填):发布名称。 - namespace (可选):命名空间。
- 例子:
helm_get_metadata(release_name="my-nginx")helm_get_notes
获取发布的注释。
- 参数:
- release_name (必填):发布名称。 - namespace (可选):命名空间。
- 例子:
helm_get_notes(release_name="my-nginx")helm_get_values
获取版本的值。
- 参数:
- release_name (必填):发布名称。 - namespace (可选):命名空间。 - all_values (可选):获取所有值(用户提供的值和默认值)。
- 例子:
helm_get_values(release_name="my-nginx", all_values=true)库管理
helm_repo_add
添加图表存储库。
- 参数:
- name (必填):存储库的名称。 - url (必填):存储库的URL。 - username (可选):存储库的用户名。 - password (可选):存储库密码。 - pass_credentials (可选):将凭据传递给所有域。
- 例子:
helm_repo_add(name="bitnami", url="https://charts.bitnami.com/bitnami")helm_repo_index
为图表存储库生成索引文件。
- 参数:
- directory (必填):包含打包图表的目录。 - url (可选):存储库的URL。 - merge (可选):将生成的索引与给定的索引合并。
- 例子:
helm_repo_index(directory="./charts")helm_repo_list
列出图表存储库。
- 参数:无
- 例子:
helm_repo_list()helm_repo_remove
删除图表存储库。
- 参数:
- name (必填):存储库的名称。
- 例子:
helm_repo_remove(name="bitnami")helm_repo_update
更新图表存储库。
- 参数:无
- 例子:
helm_repo_update()helm_search_repo
在图表中搜索存储库中的关键字。
- 参数:
- keyword (必填):搜索词。 - regexp (可选):使用正则表达式进行搜索。 - version (可选):使用语义版本约束进行搜索。 - versions (可选):显示所有版本,而不仅仅是最新版本。
- 例子:
helm_search_repo(keyword="nginx")helm_search_hub
在Helm Hub中搜索图表中的关键字。
- 参数:
- keyword (必填):搜索词。 - max_results (可选):返回的最大结果数。 - repo_url (可选):要搜索的特定仓库URL。
- 例子:
helm_search_hub(keyword="nginx")注册表管理
helm_registry_login
登录到注册表。
- 参数:
- registry_url (必需):要进行身份验证的注册表URL。 - username (必填):注册表的用户名。 - password (必填):注册表密码。 - insecure (可选):允许连接到没有证书的TLS注册表。
- 例子:
helm_registry_login(registry_url="registry.example.com", username="user", password="pass123")helm_registry_logout
从注册表中注销。
- 参数:
- registry_url (必填):用于注销的注册表URL。
- 例子:
helm_registry_logout(registry_url="registry.example.com")helm_push
将图表推送到注册表。
- 参数:
- chart_path (必填):要推送的图表路径。 - registry_url (必填):要推送到的注册表URL。 - insecure (可选):允许连接到没有证书的TLS注册表。 - plain_http (可选):使用纯HTTP。 - force (可选):即使图表已经存在,也要强制推送。
- 例子:
helm_push(chart_path="./mychart-1.0.0.tgz", registry_url="oci://registry.example.com/charts")helm_pull
从存储库下载图表。
- 参数:
- chart (必填):图表名称。 - repo (可选):存储库名称。 - version (可选):图表版本。 - destination (可选):下载目录。 - untar (可选):如果已设置,请在下载后解压缩图表。 - verify (可选):根据包的签名验证包。 - keyring (可选):包含公钥的密钥环的路径。
- 例子:
helm_pull(chart="nginx", repo="bitnami", version="13.2.0")图表信息
helm_show_all
显示图表的所有信息。
- 参数:
- chart (必填):图表名称。 - repo (可选):存储库名称。 - version (可选):图表版本。
- 例子:
helm_show_all(chart="nginx", repo="bitnami")helm_show_chart
显示图表的定义。
- 参数:
- chart (必填):图表名称。 - repo (可选):存储库名称。 - version (可选):图表版本。
- 例子:
helm_show_chart(chart="nginx", repo="bitnami")helm_show_crds
显示图表的CRD。
- 参数:
- chart (必填):图表名称。 - repo (可选):存储库名称。 - version (可选):图表版本。
- 例子:
helm_show_crds(chart="prometheus-operator", repo="prometheus-community")helm_show_readme
显示图表的README。
- 参数:
- chart (必填):图表名称。 - repo (可选):存储库名称。 - version (可选):图表版本。
- 例子:
helm_show_readme(chart="nginx", repo="bitnami")helm_show_values
显示图表的值。
- 参数:
- chart (必填):图表名称。 - repo (可选):存储库名称。 - version (可选):图表版本。
- 例子:
helm_show_values(chart="nginx", repo="bitnami")插件管理
helm_plugin_install
安装Helm插件。
- 参数:
- plugin_url (必填):插件的URL。 - version (可选):插件的版本。
- 例子:
helm_plugin_install(plugin_url="https://github.com/chartmuseum/helm-push")helm_plugin_list
列出Helm插件。
- 参数:无
- 例子:
helm_plugin_list()helm_plugin_uninstall
卸载Helm插件。
- 参数:
- plugin_name (必填):插件的名称。
- 例子:
helm_plugin_uninstall(plugin_name="push")helm_plugin_update
更新Helm插件。
- 参数:
- plugin_name (必填):插件的名称。
- 例子:
helm_plugin_update(plugin_name="push")验证
helm_verify
验证给定路径上的图表是否已签名且有效。
- 参数:
- path (必填):图表文件的路径。 - keyring (可选):包含公钥的密钥环的路径。
- 例子:
helm_verify(path="./mychart-1.0.0.tgz")配置
使用Claude Desktop
将此添加到您的 claude_desktop_config.json:
Using uvx
"mcpServers": {
"helm": {
"command": "uvx",
"args": ["mcp-server-helm"]
}
}Using docker
"mcpServers": {
"helm": {
"command": "docker",
"args": ["run", "--rm", "-i", "mcp/helm"]
}
}检查员
# run the inspector against the mcp-server-helm
npx @modelcontextprotocol/inspector uvx mcp-server-helm
# Run the inspector against the mcp-config.json
npm install -g @modelcontextprotocol/inspector
cp mcp-config.json.example mcp-config.json
nano mcp-config.json # Edit the values
mcp-inspector --config mcp-config.json --server my-python-server构建
Docker构建:
cd src/helm
docker build -t mcp/helm .许可证
此MCP服务器根据MIT许可证获得许可。这意味着您可以根据MIT许可证的条款和条件自由使用、修改和分发软件。有关更多详细信息,请参阅项目存储库中的LICENSE文件。
