返回市场
Helm图表命令行工具MCP

Helm图表命令行工具MCP

作者:jeff-nasseri8 星标更新:2025-06-17

项目介绍

MseeP.ai 安全评估徽章

在MseeP上验证

概述

Helm MCP 在AI助手与Kubernetes的Helm包管理器之间提供了一个桥梁。它允许AI助手通过自然语言请求与Helm进行交互,执行诸如安装图表、管理仓库等命令。

Claude Desktop

https://github.com/user-attachments/assets/706184c4-9569-4977-8194-d8b0a6e8fa26

Inspector

https://github.com/user-attachments/assets/4347e851-2791-4a07-b829-f171376fe8d7

安装

先决条件

  • Python 3.8+
  • Docker(用于容器化部署)
  • 已安装的Helm CLI

使用Docker

构建并运行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(可选):包含公钥的密钥环路径。
  • 示例