使用说明
概述
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文件。