get_application_managed_resources
Retrieve managed resources for a specific ArgoCD application by name, with optional filters to narrow results by kind, namespace, name, API version, group, application namespace, or project. This helps handle large applications efficiently while avoiding token limits.
Instructions
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.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| appNamespace | No | Filter by Argo CD application namespace | |
| applicationName | Yes | ||
| group | No | Filter by API group | |
| kind | No | Filter by Kubernetes resource kind (e.g., "ConfigMap", "Secret", "Deployment") | |
| name | No | Filter by resource name | |
| namespace | No | Filter by Kubernetes namespace | |
| project | No | Filter by Argo CD project | |
| version | No | Filter by resource API version |
Implementation Reference
- src/server/server.ts:85-118 (registration)MCP tool registration for 'get_application_managed_resources', including description, Zod input schema with optional filters, and handler function that builds filter object from parameters and delegates to ArgoCD client's getApplicationManagedResources method.this.addJsonOutputTool( 'get_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.', { applicationName: z.string(), kind: z .string() .optional() .describe( 'Filter by Kubernetes resource kind (e.g., "ConfigMap", "Secret", "Deployment")' ), namespace: z.string().optional().describe('Filter by Kubernetes namespace'), name: z.string().optional().describe('Filter by resource name'), version: z.string().optional().describe('Filter by resource API version'), group: z.string().optional().describe('Filter by API group'), appNamespace: z.string().optional().describe('Filter by Argo CD application namespace'), project: z.string().optional().describe('Filter by Argo CD project') }, async ({ applicationName, kind, namespace, name, version, group, appNamespace, project }) => { const filters = { ...(kind && { kind }), ...(namespace && { namespace }), ...(name && { name }), ...(version && { version }), ...(group && { group }), ...(appNamespace && { appNamespace }), ...(project && { project }) }; return await this.argocdClient.getApplicationManagedResources( applicationName, Object.keys(filters).length > 0 ? filters : undefined ); } );
- src/server/server.ts:103-117 (handler)Handler function for the MCP tool that processes input parameters into filters and calls the ArgoCD client method.async ({ applicationName, kind, namespace, name, version, group, appNamespace, project }) => { const filters = { ...(kind && { kind }), ...(namespace && { namespace }), ...(name && { name }), ...(version && { version }), ...(group && { group }), ...(appNamespace && { appNamespace }), ...(project && { project }) }; return await this.argocdClient.getApplicationManagedResources( applicationName, Object.keys(filters).length > 0 ? filters : undefined ); }
- src/server/server.ts:89-102 (schema)Zod schema defining the input parameters for the tool, including required applicationName and optional filters (kind, namespace, name, version, group, appNamespace, project).applicationName: z.string(), kind: z .string() .optional() .describe( 'Filter by Kubernetes resource kind (e.g., "ConfigMap", "Secret", "Deployment")' ), namespace: z.string().optional().describe('Filter by Kubernetes namespace'), name: z.string().optional().describe('Filter by resource name'), version: z.string().optional().describe('Filter by resource API version'), group: z.string().optional().describe('Filter by API group'), appNamespace: z.string().optional().describe('Filter by Argo CD application namespace'), project: z.string().optional().describe('Filter by Argo CD project') },
- src/argocd/client.ts:165-182 (helper)Core helper function in ArgoCD client class that executes the HTTP GET request to ArgoCD API `/api/v1/applications/${applicationName}/managed-resources` with optional filters as query parameters, returning the response body containing managed resources.public async getApplicationManagedResources( applicationName: string, filters?: { namespace?: string; name?: string; version?: string; group?: string; kind?: string; appNamespace?: string; project?: string; } ) { const { body } = await this.client.get<{ items: V1alpha1ResourceDiff[] }>( `/api/v1/applications/${applicationName}/managed-resources`, filters ); return body; }