MCP Reference

List, inspect, create, update, sync and delete Argo CD applications, and read their resources, events and logs, from an MCP client. The server runs locally over stdio and calls the API of the Argo CD server you configure, with an API token: API Docs shows how to get one. Its source is argoproj-labs/mcp-for-argocd.

Connect your client

Add to your MCP client configuration:

{
  "mcpServers": {
    "argocd-mcp": {
      "command": "npx",
      "args": [
        "--yes",
        "argocd-mcp@0.9.0",
        "stdio"
      ],
      "env": {
        "ARGOCD_BASE_URL": "https://argocd.example.com",
        "ARGOCD_API_TOKEN": "your-api-token"
      }
    }
  }
}
Protocol MCP 2025-11-25Transport stdioCapabilities tools

Tools

list_applications

TOOLlist_applications

list_applications returns list of applications

Parameters

searchstring

Search applications by name. This is a partial match on the application name and does not support glob patterns (e.g. "*"). Optional.

limitinteger

Maximum number of applications to return. Use this to reduce token usage when there are many applications. Optional.

offsetinteger>= 0

Number of applications to skip before returning results. Use with limit for pagination. Optional.

argocdBaseUrlstring

ArgoCD base URL to use for this call (e.g. "https://argocd.example.com"). Overrides the server default. Optional if the server is configured with a default base URL (x-argocd-base-url header or ARGOCD_BASE_URL env var); otherwise required.

list_clusters

TOOLlist_clusters

list_clusters returns list of clusters registered with ArgoCD

Parameters

serverstring

Filter clusters by server URL. Optional.

namestring

Filter clusters by name. Optional.

argocdBaseUrlstring

ArgoCD base URL to use for this call (e.g. "https://argocd.example.com"). Overrides the server default. Optional if the server is configured with a default base URL (x-argocd-base-url header or ARGOCD_BASE_URL env var); otherwise required.

get_application

TOOLget_application

get_application returns application by application name. Optionally specify the application namespace to get applications from non-default namespaces.

Parameters

applicationNamestringrequired
applicationNamespacestring

The namespace where the ArgoCD application resource will be created. This is the namespace of the Application resource itself, not the destination namespace for the application's resources. You can specify any valid Kubernetes namespace (e.g., 'argocd', 'argocd-apps', 'my-namespace', etc.). The default ArgoCD namespace is typically 'argocd', but you can use any namespace you prefer.

argocdBaseUrlstring

ArgoCD base URL to use for this call (e.g. "https://argocd.example.com"). Overrides the server default. Optional if the server is configured with a default base URL (x-argocd-base-url header or ARGOCD_BASE_URL env var); otherwise required.

get_appproject

TOOLget_appproject

get_appproject returns an ArgoCD AppProject (project) by its name. AppProjects provide a logical grouping of applications and define allowed sources, destinations, cluster/repository whitelists, and RBAC roles.

Parameters

projectNamestringrequired

The name of the ArgoCD AppProject to fetch.

argocdBaseUrlstring

ArgoCD base URL to use for this call (e.g. "https://argocd.example.com"). Overrides the server default. Optional if the server is configured with a default base URL (x-argocd-base-url header or ARGOCD_BASE_URL env var); otherwise required.

get_application_resource_tree

TOOLget_application_resource_tree

get_application_resource_tree returns resource tree for application by application name. Optionally specify the application namespace to get resource tree from applications in non-default namespaces.

Parameters

applicationNamestringrequired
applicationNamespacestring

The namespace where the application is located. Required if application is not in the default namespace.

argocdBaseUrlstring

ArgoCD base URL to use for this call (e.g. "https://argocd.example.com"). Overrides the server default. Optional if the server is configured with a default base URL (x-argocd-base-url header or ARGOCD_BASE_URL env var); otherwise required.

get_application_managed_resources

TOOLget_application_managed_resources

get_application_managed_resources returns managed resources for application by application name with optional filtering. Use filters to avoid token limits with large applications. Examples: kind="ConfigMap" for config maps only, namespace="production" for specific namespace, or combine multiple filters.

Parameters

applicationNamestringrequired
kindstring

Filter by Kubernetes resource kind (e.g., "ConfigMap", "Secret", "Deployment")

namespacestring

Filter by Kubernetes namespace

namestring

Filter by resource name

versionstring

Filter by resource API version

groupstring

Filter by API group

appNamespacestring

Filter by Argo CD application namespace

projectstring

Filter by Argo CD project

argocdBaseUrlstring

ArgoCD base URL to use for this call (e.g. "https://argocd.example.com"). Overrides the server default. Optional if the server is configured with a default base URL (x-argocd-base-url header or ARGOCD_BASE_URL env var); otherwise required.

get_application_workload_logs

TOOLget_application_workload_logs

get_application_workload_logs returns logs for application workload (Deployment, StatefulSet, Pod, etc.) by application name and resource ref and optionally container name

Body

application/json
applicationNamestringrequired
applicationNamespacestringrequired

The namespace where the ArgoCD application resource will be created. This is the namespace of the Application resource itself, not the destination namespace for the application's resources. You can specify any valid Kubernetes namespace (e.g., 'argocd', 'argocd-apps', 'my-namespace', etc.). The default ArgoCD namespace is typically 'argocd', but you can use any namespace you prefer.

resourceRefobjectrequired
Show child attributes
uidstringrequired
kindstringrequired
namespacestringrequired
namestringrequired
versionstringrequired
groupstringrequired
containerstringrequired
argocdBaseUrlstring

ArgoCD base URL to use for this call (e.g. "https://argocd.example.com"). Overrides the server default. Optional if the server is configured with a default base URL (x-argocd-base-url header or ARGOCD_BASE_URL env var); otherwise required.

get_application_events

TOOLget_application_events

get_application_events returns events for application by application name. Optionally specify the application namespace to get events from applications in non-default namespaces.

Parameters

applicationNamestringrequired
applicationNamespacestring

The namespace where the application is located. Required if application is not in the default namespace.

argocdBaseUrlstring

ArgoCD base URL to use for this call (e.g. "https://argocd.example.com"). Overrides the server default. Optional if the server is configured with a default base URL (x-argocd-base-url header or ARGOCD_BASE_URL env var); otherwise required.

get_resource_events

TOOLget_resource_events

get_resource_events returns events for a resource that is managed by an application

Parameters

applicationNamestringrequired
applicationNamespacestringrequired

The namespace where the ArgoCD application resource will be created. This is the namespace of the Application resource itself, not the destination namespace for the application's resources. You can specify any valid Kubernetes namespace (e.g., 'argocd', 'argocd-apps', 'my-namespace', etc.). The default ArgoCD namespace is typically 'argocd', but you can use any namespace you prefer.

resourceUIDstringrequired
resourceNamespacestringrequired
resourceNamestringrequired
argocdBaseUrlstring

ArgoCD base URL to use for this call (e.g. "https://argocd.example.com"). Overrides the server default. Optional if the server is configured with a default base URL (x-argocd-base-url header or ARGOCD_BASE_URL env var); otherwise required.

get_resources

TOOLget_resources

get_resources return manifests for resources specified by resourceRefs. If resourceRefs is empty or not provided, fetches all resources managed by the application.

Body

application/json
applicationNamestringrequired
applicationNamespacestringrequired

The namespace where the ArgoCD application resource will be created. This is the namespace of the Application resource itself, not the destination namespace for the application's resources. You can specify any valid Kubernetes namespace (e.g., 'argocd', 'argocd-apps', 'my-namespace', etc.). The default ArgoCD namespace is typically 'argocd', but you can use any namespace you prefer.

resourceRefsArray<object>
Show child attributes
uidstringrequired
kindstringrequired
namespacestringrequired
namestringrequired
versionstringrequired
groupstringrequired
argocdBaseUrlstring

ArgoCD base URL to use for this call (e.g. "https://argocd.example.com"). Overrides the server default. Optional if the server is configured with a default base URL (x-argocd-base-url header or ARGOCD_BASE_URL env var); otherwise required.

get_resource_actions

TOOLget_resource_actions

get_resource_actions returns actions for a resource that is managed by an application

Body

application/json
applicationNamestringrequired
applicationNamespacestringrequired

The namespace where the ArgoCD application resource will be created. This is the namespace of the Application resource itself, not the destination namespace for the application's resources. You can specify any valid Kubernetes namespace (e.g., 'argocd', 'argocd-apps', 'my-namespace', etc.). The default ArgoCD namespace is typically 'argocd', but you can use any namespace you prefer.

resourceRefobjectrequired
Show child attributes
uidstringrequired
kindstringrequired
namespacestringrequired
namestringrequired
versionstringrequired
groupstringrequired
argocdBaseUrlstring

ArgoCD base URL to use for this call (e.g. "https://argocd.example.com"). Overrides the server default. Optional if the server is configured with a default base URL (x-argocd-base-url header or ARGOCD_BASE_URL env var); otherwise required.

create_application

TOOLcreate_application

create_application creates a new ArgoCD application in the specified namespace. The application.metadata.namespace field determines where the Application resource will be created (e.g., "argocd", "argocd-apps", or any custom namespace).

Body

application/json
applicationobjectrequired
Show child attributes
metadataobjectrequired
Show child attributes
namestringrequired
namespacestringrequired

The namespace where the ArgoCD application resource will be created. This is the namespace of the Application resource itself, not the destination namespace for the application's resources. You can specify any valid Kubernetes namespace (e.g., 'argocd', 'argocd-apps', 'my-namespace', etc.). The default ArgoCD namespace is typically 'argocd', but you can use any namespace you prefer.

specobjectrequired
Show child attributes
projectstringrequired
sourceobjectrequired
Show child attributes
repoURLstringrequired
pathstringrequired
targetRevisionstringrequired
syncPolicyobjectrequired
Show child attributes
syncOptionsArray<string>required
automatedobject
Show child attributes
prunebooleanrequired
selfHealbooleanrequired
retryobjectrequired
Show child attributes
limitnumberrequired
backoffobjectrequired
Show child attributes
durationstringrequired
maxDurationstringrequired
factornumberrequired
destinationobjectrequired

The destination of the application. Only one of server or name must be specified.

Show child attributes
serverstring
namespacestring
namestring
argocdBaseUrlstring

ArgoCD base URL to use for this call (e.g. "https://argocd.example.com"). Overrides the server default. Optional if the server is configured with a default base URL (x-argocd-base-url header or ARGOCD_BASE_URL env var); otherwise required.

update_application

TOOLupdate_application

update_application updates application

Body

application/json
applicationNamestringrequired
applicationobjectrequired
Show child attributes
metadataobjectrequired
Show child attributes
namestringrequired
namespacestringrequired

The namespace where the ArgoCD application resource will be created. This is the namespace of the Application resource itself, not the destination namespace for the application's resources. You can specify any valid Kubernetes namespace (e.g., 'argocd', 'argocd-apps', 'my-namespace', etc.). The default ArgoCD namespace is typically 'argocd', but you can use any namespace you prefer.

specobjectrequired
Show child attributes
projectstringrequired
sourceobjectrequired
Show child attributes
repoURLstringrequired
pathstringrequired
targetRevisionstringrequired
syncPolicyobjectrequired
Show child attributes
syncOptionsArray<string>required
automatedobject
Show child attributes
prunebooleanrequired
selfHealbooleanrequired
retryobjectrequired
Show child attributes
limitnumberrequired
backoffobjectrequired
Show child attributes
durationstringrequired
maxDurationstringrequired
factornumberrequired
destinationobjectrequired

The destination of the application. Only one of server or name must be specified.

Show child attributes
serverstring
namespacestring
namestring
argocdBaseUrlstring

ArgoCD base URL to use for this call (e.g. "https://argocd.example.com"). Overrides the server default. Optional if the server is configured with a default base URL (x-argocd-base-url header or ARGOCD_BASE_URL env var); otherwise required.

delete_application

TOOLdelete_application

delete_application deletes application. Specify applicationNamespace if the application is in a non-default namespace to avoid permission errors.

Parameters

applicationNamestringrequired
applicationNamespacestring

The namespace where the application is located. Required if application is not in the default namespace.

cascadeboolean

Whether to cascade the deletion to child resources

propagationPolicystring

Deletion propagation policy (e.g., "Foreground", "Background", "Orphan")

argocdBaseUrlstring

ArgoCD base URL to use for this call (e.g. "https://argocd.example.com"). Overrides the server default. Optional if the server is configured with a default base URL (x-argocd-base-url header or ARGOCD_BASE_URL env var); otherwise required.

sync_application

TOOLsync_application

sync_application syncs application. Specify applicationNamespace if the application is in a non-default namespace to avoid permission errors.

Parameters

applicationNamestringrequired
applicationNamespacestring

The namespace where the application is located. Required if application is not in the default namespace.

dryRunboolean

Perform a dry run sync without applying changes

pruneboolean

Remove resources that are no longer defined in the source

revisionstring

Sync to a specific revision instead of the latest

syncOptionsArray<string>

Additional sync options (e.g., ["CreateNamespace=true", "PrunePropagationPolicy=foreground"])

argocdBaseUrlstring

ArgoCD base URL to use for this call (e.g. "https://argocd.example.com"). Overrides the server default. Optional if the server is configured with a default base URL (x-argocd-base-url header or ARGOCD_BASE_URL env var); otherwise required.

run_resource_action

TOOLrun_resource_action

run_resource_action runs an action on a resource

Body

application/json
applicationNamestringrequired
applicationNamespacestringrequired

The namespace where the ArgoCD application resource will be created. This is the namespace of the Application resource itself, not the destination namespace for the application's resources. You can specify any valid Kubernetes namespace (e.g., 'argocd', 'argocd-apps', 'my-namespace', etc.). The default ArgoCD namespace is typically 'argocd', but you can use any namespace you prefer.

resourceRefobjectrequired
Show child attributes
uidstringrequired
kindstringrequired
namespacestringrequired
namestringrequired
versionstringrequired
groupstringrequired
actionstringrequired
argocdBaseUrlstring

ArgoCD base URL to use for this call (e.g. "https://argocd.example.com"). Overrides the server default. Optional if the server is configured with a default base URL (x-argocd-base-url header or ARGOCD_BASE_URL env var); otherwise required.