|
| 1 | +## Overview |
| 2 | + |
| 3 | +Helm MCP provides a bridge between AI assistants and the Helm package manager for Kubernetes. It allows AI assistants to interact with Helm through natural language requests, executing commands like installing charts, managing repositories, and more. |
| 4 | + |
| 5 | +## Installation |
| 6 | + |
| 7 | +### Prerequisites |
| 8 | +- Python 3.8+ |
| 9 | +- Docker (for containerized deployment) |
| 10 | +- Helm CLI installed |
| 11 | + |
| 12 | +### Using Docker |
| 13 | + |
| 14 | +Build and run the Docker container: |
| 15 | + |
| 16 | +```bash |
| 17 | +# Clone the repository |
| 18 | +git clone https://github.com/modelcontextprotocol/servers.git |
| 19 | +cd src/helm |
| 20 | + |
| 21 | +# Build the Docker image |
| 22 | +docker build -t mcp-helm . |
| 23 | +``` |
| 24 | + |
| 25 | +### Manual Installation |
| 26 | + |
| 27 | +```bash |
| 28 | +# Clone the repository |
| 29 | +git clone https://github.com/modelcontextprotocol/servers.git |
| 30 | +cd src/helm |
| 31 | + |
| 32 | +# Install dependencies |
| 33 | +uv venv |
| 34 | +source .venv/Scripts/Activate.ps1 |
| 35 | +uv pip install -e . |
| 36 | + |
| 37 | +# Run the server |
| 38 | +mcp-server-helm |
| 39 | +``` |
| 40 | + |
| 41 | +## Supported Functionalities |
| 42 | + |
| 43 | +Helm MCP supports all major Helm commands, including: |
| 44 | + |
| 45 | +### Completion Commands |
| 46 | +- `helm completion` - Generate autocompletion scripts for various shells |
| 47 | + |
| 48 | +### Chart Creation and Management |
| 49 | +- `helm create` - Create a new chart |
| 50 | +- `helm lint` - Verify chart formatting |
| 51 | +- `helm package` - Package a chart directory into a chart archive |
| 52 | +- `helm template` - Render chart templates locally |
| 53 | + |
| 54 | +### Dependency Management |
| 55 | +- `helm dependency build` - Build chart dependencies |
| 56 | +- `helm dependency list` - List chart dependencies |
| 57 | +- `helm dependency update` - Update chart dependencies |
| 58 | + |
| 59 | +### Environment |
| 60 | +- `helm env` - Show Helm environment information |
| 61 | +- `helm version` - Show Helm version |
| 62 | + |
| 63 | +### Release Management |
| 64 | +- `helm install` - Install a chart |
| 65 | +- `helm uninstall` - Uninstall a release |
| 66 | +- `helm upgrade` - Upgrade a release |
| 67 | +- `helm rollback` - Rollback a release to a previous revision |
| 68 | +- `helm list` - List releases |
| 69 | +- `helm status` - Show release status |
| 70 | +- `helm history` - Show release history |
| 71 | +- `helm test` - Run tests for a release |
| 72 | + |
| 73 | +### Release Information |
| 74 | +- `helm get all` - Get all information about a release |
| 75 | +- `helm get hooks` - Get hooks for a release |
| 76 | +- `helm get manifest` - Get manifest for a release |
| 77 | +- `helm get metadata` - Get metadata for a release |
| 78 | +- `helm get notes` - Get notes for a release |
| 79 | +- `helm get values` - Get values for a release |
| 80 | + |
| 81 | +### Repository Management |
| 82 | +- `helm repo add` - Add a chart repository |
| 83 | +- `helm repo index` - Generate an index file for a chart repository |
| 84 | +- `helm repo list` - List chart repositories |
| 85 | +- `helm repo remove` - Remove a chart repository |
| 86 | +- `helm repo update` - Update chart repositories |
| 87 | +- `helm search repo` - Search repositories for charts |
| 88 | +- `helm search hub` - Search Helm Hub for charts |
| 89 | + |
| 90 | +### Registry Management |
| 91 | +- `helm registry login` - Log in to a registry |
| 92 | +- `helm registry logout` - Log out from a registry |
| 93 | +- `helm push` - Push a chart to a registry |
| 94 | +- `helm pull` - Pull a chart from a repository |
| 95 | + |
| 96 | +### Chart Information |
| 97 | +- `helm show all` - Show all information for a chart |
| 98 | +- `helm show chart` - Show chart definition |
| 99 | +- `helm show crds` - Show Custom Resource Definitions |
| 100 | +- `helm show readme` - Show README |
| 101 | +- `helm show values` - Show values |
| 102 | + |
| 103 | +### Plugin Management |
| 104 | +- `helm plugin install` - Install a plugin |
| 105 | +- `helm plugin list` - List plugins |
| 106 | +- `helm plugin uninstall` - Uninstall a plugin |
| 107 | +- `helm plugin update` - Update a plugin |
| 108 | + |
| 109 | +### Verification |
| 110 | +- `helm verify` - Verify a chart |
| 111 | + |
| 112 | +## Using UV CLI to Call MCP Commands |
| 113 | + |
| 114 | +Here are examples of using the UV CLI to call various Helm MCP commands: |
| 115 | + |
| 116 | +### Completion Commands |
| 117 | +```bash |
| 118 | +uv run mcp-cli cmd --server helm --tool helm_completion --tool-args '{"shell": "bash"}' |
| 119 | +uv run mcp-cli cmd --server helm --tool helm_completion --tool-args '{"shell": "zsh"}' |
| 120 | +uv run mcp-cli cmd --server helm --tool helm_completion --tool-args '{"shell": "fish"}' |
| 121 | +uv run mcp-cli cmd --server helm --tool helm_completion --tool-args '{"shell": "powershell"}' |
| 122 | +``` |
| 123 | + |
| 124 | +### Chart Creation and Management |
| 125 | +```bash |
| 126 | +uv run mcp-cli cmd --server helm --tool helm_create --tool-args '{"name": "mychart"}' |
| 127 | +uv run mcp-cli cmd --server helm --tool helm_lint --tool-args '{"chart_path": "./mychart"}' |
| 128 | +uv run mcp-cli cmd --server helm --tool helm_package --tool-args '{"chart_path": "./mychart"}' |
| 129 | +uv run mcp-cli cmd --server helm --tool helm_template --tool-args '{"chart": "./mychart", "release_name": "my-release"}' |
| 130 | +``` |
| 131 | + |
| 132 | +### Dependency Management |
| 133 | +```bash |
| 134 | +uv run mcp-cli cmd --server helm --tool helm_dependency_build --tool-args '{"chart_path": "./mychart"}' |
| 135 | +uv run mcp-cli cmd --server helm --tool helm_dependency_list --tool-args '{"chart_path": "./mychart"}' |
| 136 | +uv run mcp-cli cmd --server helm --tool helm_dependency_update --tool-args '{"chart_path": "./mychart"}' |
| 137 | +``` |
| 138 | + |
| 139 | +### Environment |
| 140 | +```bash |
| 141 | +uv run mcp-cli cmd --server helm --tool helm_env --tool-args '{}' |
| 142 | +uv run mcp-cli cmd --server helm --tool helm_version --tool-args '{}' |
| 143 | +``` |
| 144 | + |
| 145 | +### Release Management |
| 146 | +```bash |
| 147 | +uv run mcp-cli cmd --server helm --tool helm_install --tool-args '{"chart": "bitnami/nginx", "release_name": "my-nginx"}' |
| 148 | +uv run mcp-cli cmd --server helm --tool helm_uninstall --tool-args '{"release_name": "my-nginx"}' |
| 149 | +uv run mcp-cli cmd --server helm --tool helm_upgrade --tool-args '{"release_name": "my-nginx", "chart": "bitnami/nginx", "set_values": {"replicaCount": "3"}}' |
| 150 | +uv run mcp-cli cmd --server helm --tool helm_rollback --tool-args '{"release_name": "my-nginx", "revision": 1}' |
| 151 | +uv run mcp-cli cmd --server helm --tool helm_list --tool-args '{}' |
| 152 | +uv run mcp-cli cmd --server helm --tool helm_status --tool-args '{"release_name": "my-nginx"}' |
| 153 | +uv run mcp-cli cmd --server helm --tool helm_history --tool-args '{"release_name": "my-nginx"}' |
| 154 | +uv run mcp-cli cmd --server helm --tool helm_test --tool-args '{"release_name": "my-nginx"}' |
| 155 | +``` |
| 156 | + |
| 157 | +### Release Information |
| 158 | +```bash |
| 159 | +uv run mcp-cli cmd --server helm --tool helm_get_all --tool-args '{"release_name": "my-nginx"}' |
| 160 | +uv run mcp-cli cmd --server helm --tool helm_get_hooks --tool-args '{"release_name": "my-nginx"}' |
| 161 | +uv run mcp-cli cmd --server helm --tool helm_get_manifest --tool-args '{"release_name": "my-nginx"}' |
| 162 | +uv run mcp-cli cmd --server helm --tool helm_get_metadata --tool-args '{"release_name": "my-nginx"}' |
| 163 | +uv run mcp-cli cmd --server helm --tool helm_get_notes --tool-args '{"release_name": "my-nginx"}' |
| 164 | +uv run mcp-cli cmd --server helm --tool helm_get_values --tool-args '{"release_name": "my-nginx", "all_values": true}' |
| 165 | +``` |
| 166 | + |
| 167 | +### Repository Management |
| 168 | +```bash |
| 169 | +uv run mcp-cli cmd --server helm --tool helm_repo_add --tool-args '{"name": "bitnami", "url": "https://charts.bitnami.com/bitnami"}' |
| 170 | +uv run mcp-cli cmd --server helm --tool helm_repo_index --tool-args '{"directory": "./charts"}' |
| 171 | +uv run mcp-cli cmd --server helm --tool helm_repo_list --tool-args '{}' |
| 172 | +uv run mcp-cli cmd --server helm --tool helm_repo_remove --tool-args '{"name": "bitnami"}' |
| 173 | +uv run mcp-cli cmd --server helm --tool helm_repo_update --tool-args '{}' |
| 174 | +uv run mcp-cli cmd --server helm --tool helm_search_repo --tool-args '{"keyword": "nginx"}' |
| 175 | +uv run mcp-cli cmd --server helm --tool helm_search_hub --tool-args '{"keyword": "nginx"}' |
| 176 | +``` |
| 177 | + |
| 178 | +### Registry Management |
| 179 | +```bash |
| 180 | +uv run mcp-cli cmd --server helm --tool helm_registry_login --tool-args '{"registry_url": "registry.example.com", "username": "user", "password": "pass123"}' |
| 181 | +uv run mcp-cli cmd --server helm --tool helm_registry_logout --tool-args '{"registry_url": "registry.example.com"}' |
| 182 | +uv run mcp-cli cmd --server helm --tool helm_push --tool-args '{"chart_path": "./mychart-1.0.0.tgz", "registry_url": "oci://registry.example.com/charts"}' |
| 183 | +uv run mcp-cli cmd --server helm --tool helm_pull --tool-args '{"chart": "nginx", "repo": "bitnami", "version": "13.2.0"}' |
| 184 | +``` |
| 185 | + |
| 186 | +### Chart Information |
| 187 | +```bash |
| 188 | +uv run mcp-cli cmd --server helm --tool helm_show_all --tool-args '{"chart": "nginx", "repo": "bitnami"}' |
| 189 | +uv run mcp-cli cmd --server helm --tool helm_show_chart --tool-args '{"chart": "nginx", "repo": "bitnami"}' |
| 190 | +uv run mcp-cli cmd --server helm --tool helm_show_crds --tool-args '{"chart": "prometheus-operator", "repo": "prometheus-community"}' |
| 191 | +uv run mcp-cli cmd --server helm --tool helm_show_readme --tool-args '{"chart": "nginx", "repo": "bitnami"}' |
| 192 | +uv run mcp-cli cmd --server helm --tool helm_show_values --tool-args '{"chart": "nginx", "repo": "bitnami"}' |
| 193 | +``` |
| 194 | + |
| 195 | +### Plugin Management |
| 196 | +```bash |
| 197 | +uv run mcp-cli cmd --server helm --tool helm_plugin_install --tool-args '{"plugin_url": "https://github.com/chartmuseum/helm-push"}' |
| 198 | +uv run mcp-cli cmd --server helm --tool helm_plugin_list --tool-args '{}' |
| 199 | +uv run mcp-cli cmd --server helm --tool helm_plugin_uninstall --tool-args '{"plugin_name": "push"}' |
| 200 | +uv run mcp-cli cmd --server helm --tool helm_plugin_update --tool-args '{"plugin_name": "push"}' |
| 201 | +``` |
| 202 | + |
| 203 | +### Verification |
| 204 | +```bash |
| 205 | +uv run mcp-cli cmd --server helm --tool helm_verify --tool-args '{"path": "./mychart-1.0.0.tgz"}' |
| 206 | +``` |
| 207 | + |
| 208 | +## Configuration |
| 209 | + |
| 210 | +### Usage with Claude Desktop |
| 211 | + |
| 212 | +Add this to your `claude_desktop_config.json`: |
| 213 | + |
| 214 | +<details> |
| 215 | +<summary>Using uvx</summary> |
| 216 | + |
| 217 | +```json |
| 218 | +"mcpServers": { |
| 219 | + "helm": { |
| 220 | + "command": "uvx", |
| 221 | + "args": ["mcp-server-helm"] |
| 222 | + } |
| 223 | +} |
| 224 | +``` |
| 225 | +</details> |
| 226 | + |
| 227 | +<details> |
| 228 | +<summary>Using docker</summary> |
| 229 | + |
| 230 | +```json |
| 231 | +"mcpServers": { |
| 232 | + "helm": { |
| 233 | + "command": "docker", |
| 234 | + "args": ["run", "--rm", "-i", "mcp/helm"] |
| 235 | + } |
| 236 | +} |
| 237 | +``` |
| 238 | +</details> |
| 239 | + |
| 240 | +## Inspector |
| 241 | +```shell |
| 242 | +# run the inspector against the mcp-server-helm |
| 243 | +npx @modelcontextprotocol/inspector uvx mcp-server-helm |
| 244 | +``` |
| 245 | + |
| 246 | +## Build |
| 247 | + |
| 248 | +Docker build: |
| 249 | + |
| 250 | +```bash |
| 251 | +cd src/helm |
| 252 | +docker build -t mcp/helm . |
| 253 | +``` |
| 254 | + |
| 255 | +## License |
| 256 | + |
| 257 | +This MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository. |
0 commit comments