helm-mcp
使用说明
- 项目简介
- helm-mcp 是一个基于 MCP 的后端服务,利用 Go 的 Helm SDK 将 Helm 的命令、数据访问和提示渲染能力暴露给 LLM/智能代理客户端,目标是在对话式应用中提供对 Kubernetes/Helm 的上下文感知、资源管理及外部工具调用能力。
- 主要功能点
- 资源与数据:提供对 Helm 资源(如 Released、Charts、Repo 信息等)的读取和查询能力。
- 工具注册与执行:将 Helm 的 44 条 MCP 工具以 MCP 协议暴露,支持读取、安装、升级、回滚、查询等操作。
- 提示模板与渲染:通过模板化的交互方式,渲染与 Helm 操作相关的提示和输出。
- 安全与稳定性:内置输入校验、凭证 scrub、会话管理、可配置的重试、限流、缓存和 OpenTelemetry 支持;提供对转发子进程的强大硬ening 与审计日志。
- 多传输模式:stdio(默认,适用于 Claude/Cursor 等客户端)、HTTP(可流式)的接口、Server-Sent Events(SSE)等。
- 代理化部署:核心通过一个 FastMCP 代理服务器,将 Helm 的 Go 二进制作为子进程执行,自动发现新工具并对接 MCP 客户端。
- 安装步骤
- 从源码构建:需要 Go 1.25+ 环境,执行 make build 即可生成 helm-mcp 二进制。
- 运行模式:
- stdio:helm-mcp --mode stdio
- HTTP:helm-mcp --mode http --addr :8080
- SSE:helm-mcp --mode sse --addr :8080
- 安全与依赖:
- 如需在生产环境开启 OIDC 验证、日志审计、OTLP/Console 等追踪,需设置相应的环境变量(HELM_MCP_*,如 HELM_MCP_OIDC_ISSUER、HELM_MCP_OTEL_ENABLED 等)。
- 客户端配置与集成:
- 客户端(Claude、Cursor、VS Code 等)通过 MCP 配置连接 helm-mcp 提供的服务。可将 helm 作为一个子服务器挂载在一个多服务器的 MCP 框架中,具体配置方式参考下方“服务器配置”部分。
- 服务器配置(MCP 客户端连接 helm-mcp 的配置示例说明)
- 服务器名称(server name):helm-mcp
- 启动命令(command):helm-mcp
- 参数(args):["--mode", "stdio"](若使用其他传输模式,请将 mode 替换为 http 或 sse,并按需设置 addr 等)
- 配置示例(JSON 说明,客户端无需实现细部逻辑,只需按需填写即可):
- server_name: helm-mcp
- command: helm-mcp
- args: ["--mode", "stdio"]
- 说明:
- 以上配置用于 MCP 客户端初始化时对接 helm-mcp 服务。该配置属于客户端侧信息,服务器侧实现会根据传入的 mode 自动建立相应的运行环境。若选择 HTTP 或 SSE 模式,客户端需要将传输目标指向服务器暴露的端点(如 http://<host>:8080/mcp)。
- 基本使用方法
- 启动并连接
- 在本地开发环境直接以 stdio 模式启动 helm-mcp 即可与 MCP 客户端对接。
- 生产/远端场景可通过 HTTP/SSE 模式暴露端点,由 MCP 客户端连接并发送资源、工具、提示相关请求。
- 与 Helm 交互
- 客户端通过 MCP 协议请求 helm-mcp 暴露的工具,helm-mcp 将调用 Helm Go SDK 执行对应操作并返回结构化的 JSON-RPC 响应。
- 安全与治理
- 如开启 OIDC/OAuth2、OIDC 会话缓存、静态 Bearer Token、日志审计等,需按 README 及环境变量文档进行配置。
- 集成与扩展性
- 通过 resilience、中间件等配置,可以自定义重试、限流、缓存、超时、日志等行为,便于在大规模对话系统中保持稳定性。
- 启动并连接