Kubernetes MCP Server
Manage Kubernetes and OpenShift clusters from an assistant through the cluster's API
Inspect, sync and manage Argo CD applications, clusters and resources from an MCP client
By argoproj-labs TypeScript Local · stdio DevOps and monitoringCloud platforms
76 popularity score ★ 604 ↓ 27k/wk
Opens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.
It needs ARGOCD_BASE_URL, ARGOCD_API_TOKEN. Replace each <NAME> with your value.
claude mcp add argo-cd -e ARGOCD_BASE_URL=<ARGOCD_BASE_URL> -e ARGOCD_API_TOKEN=<ARGOCD_API_TOKEN> -- npx argocd-mcp@latest stdio{
"mcpServers": {
"argo-cd": {
"command": "npx",
"args": [
"argocd-mcp@latest",
"stdio"
],
"env": {
"ARGOCD_BASE_URL": "<ARGOCD_BASE_URL>",
"ARGOCD_API_TOKEN": "<ARGOCD_API_TOKEN>"
}
}
}
}{
"mcpServers": {
"argo-cd": {
"command": "npx",
"args": [
"argocd-mcp@latest",
"stdio"
],
"env": {
"ARGOCD_BASE_URL": "<ARGOCD_BASE_URL>",
"ARGOCD_API_TOKEN": "<ARGOCD_API_TOKEN>"
}
}
}
}{
"servers": {
"argo-cd": {
"type": "stdio",
"command": "npx",
"args": [
"argocd-mcp@latest",
"stdio"
],
"env": {
"ARGOCD_BASE_URL": "<ARGOCD_BASE_URL>",
"ARGOCD_API_TOKEN": "<ARGOCD_API_TOKEN>"
}
}
}
}[mcp_servers.argo-cd]
command = "npx"
args = ["argocd-mcp@latest", "stdio"]
[mcp_servers.argo-cd.env]
ARGOCD_BASE_URL = "<ARGOCD_BASE_URL>"
ARGOCD_API_TOKEN = "<ARGOCD_API_TOKEN>"gemini mcp add --scope user -e ARGOCD_BASE_URL=<ARGOCD_BASE_URL> -e ARGOCD_API_TOKEN=<ARGOCD_API_TOKEN> argo-cd npx -- argocd-mcp@latest stdioOpens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.
It needs ARGOCD_BASE_URL, ARGOCD_API_TOKEN. Replace each <NAME> with your value.
claude mcp add argo-cd -e ARGOCD_BASE_URL=<ARGOCD_BASE_URL> -e ARGOCD_API_TOKEN=<ARGOCD_API_TOKEN> -- docker run -e 'ARGOCD_BASE_URL=<ARGOCD_BASE_URL>' -e 'ARGOCD_API_TOKEN=<ARGOCD_API_TOKEN>' argoprojlabs/mcp-for-argocd{
"mcpServers": {
"argo-cd": {
"command": "docker",
"args": [
"run",
"-e",
"ARGOCD_BASE_URL=<ARGOCD_BASE_URL>",
"-e",
"ARGOCD_API_TOKEN=<ARGOCD_API_TOKEN>",
"argoprojlabs/mcp-for-argocd"
],
"env": {
"ARGOCD_BASE_URL": "<ARGOCD_BASE_URL>",
"ARGOCD_API_TOKEN": "<ARGOCD_API_TOKEN>"
}
}
}
}{
"mcpServers": {
"argo-cd": {
"command": "docker",
"args": [
"run",
"-e",
"ARGOCD_BASE_URL=<ARGOCD_BASE_URL>",
"-e",
"ARGOCD_API_TOKEN=<ARGOCD_API_TOKEN>",
"argoprojlabs/mcp-for-argocd"
],
"env": {
"ARGOCD_BASE_URL": "<ARGOCD_BASE_URL>",
"ARGOCD_API_TOKEN": "<ARGOCD_API_TOKEN>"
}
}
}
}{
"servers": {
"argo-cd": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-e",
"ARGOCD_BASE_URL=<ARGOCD_BASE_URL>",
"-e",
"ARGOCD_API_TOKEN=<ARGOCD_API_TOKEN>",
"argoprojlabs/mcp-for-argocd"
],
"env": {
"ARGOCD_BASE_URL": "<ARGOCD_BASE_URL>",
"ARGOCD_API_TOKEN": "<ARGOCD_API_TOKEN>"
}
}
}
}[mcp_servers.argo-cd]
command = "docker"
args = ["run", "-e", "ARGOCD_BASE_URL=<ARGOCD_BASE_URL>", "-e", "ARGOCD_API_TOKEN=<ARGOCD_API_TOKEN>", "argoprojlabs/mcp-for-argocd"]
[mcp_servers.argo-cd.env]
ARGOCD_BASE_URL = "<ARGOCD_BASE_URL>"
ARGOCD_API_TOKEN = "<ARGOCD_API_TOKEN>"gemini mcp add --scope user -e ARGOCD_BASE_URL=<ARGOCD_BASE_URL> -e ARGOCD_API_TOKEN=<ARGOCD_API_TOKEN> argo-cd docker -- run -e 'ARGOCD_BASE_URL=<ARGOCD_BASE_URL>' -e 'ARGOCD_API_TOKEN=<ARGOCD_API_TOKEN>' argoprojlabs/mcp-for-argocdARGOCD_BASE_URL |
Required: Address of the default Argo CD instance; may instead be passed per call as argocdBaseUrl. |
|---|---|
ARGOCD_API_TOKEN |
Required: Argo CD API token for the default instance; not needed when ARGOCD_TOKEN_REGISTRY_PATH is set. |
ARGOCD_TOKEN_REGISTRY_PATH |
Optional: Path to a JSON file mapping extra Argo CD base URLs to their tokens. |
MCP_READ_ONLY |
Optional: Set to true to disable the create, update, delete, sync and resource action tools. |
MCP_BIND_ADDRESS |
Optional: Address the HTTP listener binds to; defaults to 127.0.0.1. |
MCP_AUTH_TOKEN |
Optional: Bearer token every HTTP request must carry; needed when binding beyond loopback. |
NODE_TLS_REJECT_UNAUTHORIZED |
Optional: Set to 0 to accept self-signed Argo CD certificates; weakens TLS checks. |
In a container, a setting goes in with -e NAME=value after docker run.
Argo CD MCP Server connects an MCP client to the REST API of an Argo CD instance, the GitOps continuous delivery tool for Kubernetes. Through it an assistant can list registered clusters and applications, read an application's details, resource tree and managed resources, pull workload logs and Kubernetes events, and look up an AppProject.
It can also act on the instance: create, update and delete applications, start a sync, and run resource actions such as a restart. Setting MCP_READ_ONLY to true removes those five tools, leaving only the reading ones.
It runs over stdio for desktop and editor clients (started with npx), or as an HTTP server, including a stateless mode meant for several replicas behind a Kubernetes autoscaler. A container image, argoprojlabs/mcp-for-argocd, is published for the HTTP setup. One server can reach several Argo CD instances: every tool takes an optional argocdBaseUrl argument, and tokens for extra instances come from a JSON token registry file.
The project sits in the argoproj-labs GitHub organisation, the Argo project's space for incubating projects; it was first written at Akuity and donated there.
| Runtime | Node.js 18+orDocker |
|---|
Node.js 18 or newer for the npx route (or Docker for the image). A reachable Argo CD instance, its base URL, and an Argo CD API token for an account with the permissions the tools need; Argo CD's own docs explain how to create one.
Works only through the Argo CD API: it reaches Kubernetes objects only as far as Argo CD exposes them for its applications. The default token is never sent to any host other than the default base URL, so reaching another instance needs a token registry entry. HTTP sessions are held in memory, so several replicas need sticky sessions or the --stateless flag; in stateless mode GET and DELETE on /mcp are refused. Instances with self-signed certificates need NODE_TLS_REJECT_UNAUTHORIZED=0, which its README warns weakens security.
Platform and DevOps engineers who already run Argo CD and want to ask about application health, diffs, logs and events, or trigger syncs, from VS Code, Cursor or Claude Desktop. Because it can delete applications and run resource actions with whatever rights the token holds, teams that only want visibility should run it with MCP_READ_ONLY and a read-only Argo CD account. Teams wanting direct access to Kubernetes objects outside Argo CD should pick a Kubernetes server instead.
list_clustersget_appprojectlist_applicationsget_applicationcreate_applicationupdate_applicationdelete_applicationsync_applicationget_application_resource_treeget_application_managed_resourcesget_application_workload_logsget_resource_eventsget_resource_actionsrun_resource_action