项目简介
本项目是一个实现了 Model Context Protocol (MCP) 的服务器,专门用于与 Helm 仓库和 Chart 进行交互。它允许连接到该服务器的 LLM (大型语言模型) 客户端或AI助手,无需在本地安装 Helm,即可通过标准化的接口查询 Helm 仓库信息、获取 Chart 版本及 Values 文件内容。
主要功能点
该服务器通过提供以下工具(Tools)来扩展LLM的能力:
- 列出仓库Chart: 根据提供的 Helm 仓库 URL,列出该仓库中所有可用的 Chart 名称。
- 获取Chart最新版本: 根据提供的 Helm 仓库 URL 和 Chart 名称,获取该 Chart 的最新版本号。
- 获取Chart Values文件: 根据提供的 Helm 仓库 URL、Chart 名称和可选的版本号(如果省略则获取最新版本),获取该 Chart 对应的 'values.yaml' 文件内容。
安装步骤
最简单的安装方式是使用 Docker 容器:
-
确保您已安装 Docker。
-
运行以下命令启动服务器(使用 SSE 模式并暴露端口 8012):
docker run -d --name mcp-helm -p 8012:8012 ghcr.io/zekker6/mcp-helm:v0.0.2 --mode=sse --httpListenAddr=:8012或者使用 StdIO 模式(通常用于客户端直接管理进程):
docker run -i --rm ghcr.io/zekker6/mcp-helm:v0.0.2 --mode=stdio(注意:'--rm' 标志会在容器停止时自动移除容器,'-i' 标志保持标准输入打开,适用于 StdIO 模式)
您也可以选择从 GitHub Releases 页面下载预编译的二进制文件,或通过 Go 工具链安装/编译。
服务器配置
MCP 客户端需要知道如何启动并连接到此服务器。通常,这涉及到配置服务器的可执行命令 ('command') 及其启动参数 ('args')。以下是一个示例配置(JSON 格式),假设您使用 StdIO 模式并直接启动下载的二进制文件:
{ "name": "Helm MCP Server", // 服务器名称,用于客户端识别 "command": "/path/to/your/downloaded/mcp-helm_binary", // 替换为你实际的mcp-helm二进制文件的完整路径 "args": [ "--mode=stdio" // 指定服务器运行在StdIO模式 ] }
如果您选择使用 SSE 模式并直接启动二进制文件,配置可能如下:
{ "name": "Helm MCP Server", "command": "/path/to/your/downloaded/mcp-helm_binary", "args": [ "--mode=sse", // 指定服务器运行在SSE模式 "--httpListenAddr=:8012" // 指定HTTP监听地址和端口 ] // 对于SSE模式,客户端可能还需要额外的连接信息,取决于客户端实现 }
如果您使用 Docker 容器(StdIO模式),配置可能如下:
{ "name": "Helm MCP Server", "command": "docker", // 命令是docker "args": [ "run", "-i", "--rm", "ghcr.io/zekker6/mcp-helm:v0.0.2", // Docker镜像名称作为运行参数 "--mode=stdio" // 指定容器内MCP服务器运行在StdIO模式 ] }
请根据您的实际安装方式和所选的运行模式调整 'command' 和 'args'。具体的客户端配置方式取决于您使用的 MCP 客户端软件。
基本使用方法
通过您的 MCP 客户端(通常是支持 MCP 的 LLM 客户端或AI应用),您可以发现并调用此服务器提供的工具。例如:
- 列出 Chart: 客户端调用名为 'list_repository_charts' 的工具,并提供参数 '{"repository_url": "https://charts.bitnami.com/bitnami"}'。服务器将返回 Bitnami 仓库中的 Chart 列表。
- 获取最新版本: 客户端调用名为 'get_latest_version_of_chart' 的工具,提供参数 '{"repository_url": "https://charts.bitnami.com/bitnami", "chart_name": "nginx"}'。服务器将返回 nginx Chart 的最新版本号。
- 获取 Values 文件: 客户端调用名为 'get_chat_values' 的工具(注意:代码中工具名称为'get_chat_values',README中为'get_chart_values'),提供参数 '{"repository_url": "https://charts.bitnami.com/bitnami", "chart_name": "nginx", "chart_version": "12.3.4"}'。服务器将返回指定版本 nginx Chart 的 'values.yaml' 内容。如果省略 'chart_version',则返回最新版本的 Values 文件。
客户端接收到服务器返回的工具执行结果后,可以利用这些信息辅助LLM生成响应或执行后续任务。
信息
分类
AI与计算