Helm MCP 在AI助手与Kubernetes的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
构建并运行Docker容器:
# 克隆仓库
git clone https://github.com/modelcontextprotocol/servers.git
cd src/helm
# 构建Docker镜像
docker build -t mcp-helm .
# 克隆仓库
git clone https://github.com/modelcontextprotocol/servers.git
cd src/helm
# 安装依赖
uv venv
source .venv/Scripts/Activate.ps1
uv pip install -e .
# 运行服务器
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显示图表的CRDs。
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(可选):包含公钥的密钥环路径。