Most ArgoCD integrations hardcode a handful of operations and then trail the product. Reading the OpenAPI spec at startup means a new ArgoCD release needs a restart rather than a maintainer. The decision it hands you is the tool mode: two meta-tools keep the tool list tiny at the price of a search round trip before every call, while one typed tool per endpoint removes that round trip and leans on the client to defer loading the definitions. The OAuth modes are what make it usable on a shared cluster, because the model inherits the operator's own RBAC instead of a service account's.
A Go server that reads ArgoCD's OpenAPI spec at startup and exposes every endpoint it finds, with no handler written per operation. In the default search mode the model discovers an endpoint and calls it through a generic executor; in generated mode each endpoint becomes its own typed tool.
- search_operations returns matching endpoints with their method, path, summary and parameters, and execute_operation proxies the call to ArgoCD carrying the user's token — two tools covering the entire spec
- TOOL_MODE set to generated instead produces one typed tool per endpoint, so the model calls the operation directly with individual typed parameters and no search step
- A new ArgoCD release needs a restart rather than a code change, because the spec is the source of truth rather than a hand-maintained list
- Three authentication modes — a static ArgoCD API token, OAuth through ArgoCD's own Dex, or OAuth through the external OIDC provider ArgoCD already trusts; both OAuth paths apply that person's own RBAC
- A read-only flag that disables every write operation at once, and ALLOWED_RESOURCES to restrict which ArgoCD resources are exposed at all
- Per-user rate limiting with a token bucket, so a loop cannot hammer the ArgoCD API
- Structured JSON audit logging for every tool call, recording user, method, path, status and duration
- Tools are annotated as read-only, destructive or idempotent, so a client can categorise them rather than treating them alike
- Prompt templates for the recurring jobs — unhealthy applications, a diff, a rollback, logs — and optional semantic search over the endpoints through Ollama embeddings
A Go server, installed through the Helm chart at oci://ghcr.io/matthisholleville/charts/argocd-mcp or run locally pointed at your ArgoCD base URL. Authentication is a static ArgoCD API token for local development, CI or a single user, or OAuth through Dex or an external OIDC provider when each person's own RBAC should apply. TOOL_MODE picks between search, which registers two tools and costs a discovery round trip before each call, and generated, which registers one tool per endpoint and depends on a client that defers tool loading.
One command plus a key — claude mcp add argocd -s user -- docker run --rm -i -e ARGOCD_BASE_URL=https://argocd.example.com -e ARGOCD_TOKEN=your-token ghcr.io/matthisholleville/argocd-mcp:latest, then supply credentials
