MCP Server for Argo Rollouts progressive delivery and rolling update strategies
393
A comprehensive Model Context Protocol (MCP) server for managing Kubernetes progressive delivery via Argo Rollouts. This image allows AI assistants (like Claude, Cline, or your own agent) to perform secure, production-grade Argo Rollout operations — from converting Deployments to Rollouts, orchestrating canary and blue-green deployments, to promoting, pausing, aborting, and monitoring rollout health.
This Docker image is designed to be used as an MCP server. It requires access to your Kubernetes cluster via a kubeconfig file and the Argo Rollouts Controller installed on the target cluster.
Run the container mapping port 8768 so clients can connect locally:
docker run --rm -it \
-p 8768:8768 \
-v ~/.kube:/app/.kube:ro \
-e K8S_KUBECONFIG=/app/.kube/config \
talkopsai/argo-rollout-mcp-server:latest
Tip: Mount the full
~/.kubedirectory (not justconfig) so certificate paths referenced in your kubeconfig (e.g. minikube, kind) are available inside the container.
Then configure your MCP client to connect over HTTP/SSE:
{
"mcpServers": {
"argo-rollout": {
"url": "http://localhost:8768/mcp",
"description": "MCP Server for managing Argo Rollouts and K8s Progressive Delivery"
}
}
}
Cluster access is entirely handled via the mounted kubeconfig. Ensure your kubeconfig has appropriate RBAC permissions for Argo Rollouts CRDs (Rollouts, AnalysisTemplates, Experiments, etc.). If the Argo Rollouts Controller is not installed, you can install it via the Helm MCP Server.
To use this image securely over stdio transport directly inside Claude Desktop, format the invocation like this:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"argo-rollout-mcp-server": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-v", "/Users/YOUR_USERNAME/.kube:/app/.kube:ro",
"-e", "K8S_KUBECONFIG=/app/.kube/config",
"-e", "K8S_CONTEXT=production-cluster",
"-e", "MCP_TRANSPORT=stdio",
"-e", "MCP_LOG_LEVEL=INFO",
"talkopsai/argo-rollout-mcp-server:latest"
]
}
}
}
Replace /Users/YOUR_USERNAME/.kube with your actual kubeconfig path (e.g. C:\Users\YourUser\.kube on Windows).
The image supports several environment variables for cluster access and advanced configuration:
| Variable | Default | Description |
|---|---|---|
K8S_KUBECONFIG | /app/.kube/config | Path to kubeconfig file inside the container |
K8S_CONTEXT | (empty) | Specific Kubernetes context to use (e.g. production-cluster) |
K8S_IN_CLUSTER | false | Set to true if running inside a Kubernetes pod (in-cluster config) |
PROMETHEUS_URL | http://prometheus:9090 | Prometheus server URL for metrics resources (request rate, error rate, latency) |
MCP_TRANSPORT | http | Transport protocol (stdio or http) |
MCP_HOST | 0.0.0.0 | Host interface to bind to (if HTTP transport) |
MCP_PORT | 8768 | Port to bind to (if HTTP transport) |
MCP_PATH | /mcp | MCP endpoint path |
MCP_LOG_LEVEL | INFO | Logging level (DEBUG, INFO, WARNING, ERROR) |
MCP_LOG_FORMAT | json | Log format (json or text) |
:ro so the container cannot modify your credentials.K8S_CONTEXT and namespace-scoped RBAC to limit the AI to specific clusters or namespaces.apply=False when generating Rollouts to preview manifests before applying to the cluster.If you find this MCP server useful, consider leaving a ⭐ on the GitHub repository!
Content type
Image
Digest
sha256:946a5d656…
Size
141.3 MB
Last updated
7 months ago
docker pull talkopsai/argo-rollout-mcp-server