
Azure Kubernetes Service (AKS) official MCP server.
Retrieve and manage Azure Advisor recommendations for AKS clusters
Unified tool for managing Azure Kubernetes Service (AKS) clusters and related operations.
Supported operations:
- Cluster: show, list, get-versions, check-network
- Nodepool: nodepool-list, nodepool-show
- Account: account-list
Examples:
- Show cluster: operation="show", args="--name myCluster --resource-group myRG"
- List nodepools: operation="nodepool-list", args="--cluster-name myCluster --resource-group myRG"
Unified tool for managing Azure Virtual Machines (VMs) and Virtual Machine Scale Sets (VMSS) using Azure CLI.
IMPORTANT: VM/VMSS resources are managed by AKS. Write operations should be used carefully and only for debugging purposes.
Use resource_type="vm" for single virtual machines or resource_type="vmss" for virtual machine scale sets.
Available operation values:
- show: Get details of a VM/VMSS
- list: List VMs/VMSS in subscription or resource group
- get-instance-view: Get runtime status
EXAMPLES:
List VMSS: operation="list", resource_type="vmss", args="--resource-group myRG"
Show VMSS: operation="show", resource_type="vmss", args="--name myVMSS --resource-group myRG"
List VMs: operation="list", resource_type="vm", args="--resource-group myRG"
Run Azure Kubernetes Service Fleet management commands.
Available operations and resources:
- fleet: list, show, create, update, delete, get-credentials
- member: list, show, create, update, delete
- updaterun: list, show, create, start, stop, delete
- updatestrategy: list, show, create, delete
- clusterresourceplacement: list, show, get, create, delete (Kubernetes CRD operations)
Examples:
- List fleets: operation='list', resource='fleet', args='--resource-group myRG'
- Show fleet: operation='show', resource='fleet', args='--name myFleet --resource-group myRG'
- Get fleet credentials: operation='get-credentials', resource='fleet', args='--name myFleet --resource-group myRG'
- Create member: operation='create', resource='member', args='--name myMember --fleet-name myFleet --resource-group myRG --member-cluster-id /subscriptions/.../myCluster'
- Create clusterresourceplacement: operation='create', resource='clusterresourceplacement', args='--name nginx --selector app=nginx --policy PickAll'
- List clusterresourceplacements: operation='list', resource='clusterresourceplacement', args=''
Unified tool for Azure monitoring and diagnostics operations for AKS clusters.
Supported Operations:
1. Metrics - Query Azure Monitor metrics for AKS clusters and nodes
- list: Get metric values for specific metrics
- list-definitions: Get available metrics for a resource
- list-namespaces: Get metric namespaces for a resource
Use for: CPU usage, memory consumption, network traffic, pod counts, node health
Required parameters: resource (Azure resource ID)
Additional for 'list': metrics (metric names)
Optional: aggregation, start-time, end-time, interval, filter
2. Resource Health - Get Azure Resource Health events for AKS clusters
Use for: Cluster availability issues, platform problems, service health events
Required parameters: subscription_id, resource_group, cluster_name, start_time
Optional: end_time, status (Available, Unavailable, Degraded, Unknown)
3. Application Insights - Execute KQL queries against Application Insights telemetry
Use for: Application performance monitoring, custom telemetry analysis, trace correlation
Required parameters: subscription_id, resource_group, app_insights_name, query
Optional: start_time + end_time OR timespan (not both)
4. Diagnostics - Check AKS cluster diagnostic settings configuration
Use for: Verify logging is enabled, check log retention, validate diagnostic configuration
Required parameters: subscription_id, resource_group, cluster_name
5. Control Plane Logs - Query AKS control plane logs
Supported log categories:
- kube-apiserver
- kube-audit
- kube-audit-admin
- kube-controller-manager
- kube-scheduler
- cluster-autoscaler
- cloud-controller-manager
- guard (for authentication/authorization issues)
- csi-azuredisk-controller
- csi-azurefile-controller
- csi-snapshot-controller
- fleet-member-agent
- fleet-member-net-controller-manager
- fleet-mcs-controller-manager
PLEASE NOTE: you need to check if the category is enabled in your cluster's diagnostic settings by using the diagnostics tool.
Use This Tool When You Need To:
- Monitor cluster or other azure resource performance and usage (use metrics)
- Check cluster availability and platform health (use resource_health)
- Analyze application telemetry and performance (use app_insights)
- Verify diagnostic logging configuration (use diagnostics)
- Debug Kubernetes API server issues (use control_plane_logs with kube-apiserver)
- Investigate authentication/authorization problems (use control_plane_logs with kube-audit, guard)
- Troubleshoot pod scheduling issues (use control_plane_logs with kube-scheduler)
- Check storage-related problems (use control_plane_logs with csi-azuredisk-controller, csi-azurefile-controller)
- Analyze cluster scaling behavior (use control_plane_logs with cluster-autoscaler)
- Review security audit events (use control_plane_logs with kube-audit, kube-audit-admin)
Examples:
metrics:
- Get CPU usage: operation="metrics", query_type="list", parameters="{\"resource\":\"/subscriptions/sub-id/resourceGroups/rg/providers/Microsoft.ContainerService/managedClusters/cluster\", \"metrics\":\"node_cpu_usage_percentage\", \"aggregation\":\"Average\", \"start-time\":\"<start-time>\", \"end-time\":\"<end-time>\"}"
- List available metrics: operation="metrics", query_type="list-definitions", parameters="{\"resource\":\"/subscriptions/sub-id/resourceGroups/rg/providers/Microsoft.ContainerService/managedClusters/cluster\"}"
resource_health:
- Check recent cluster health: operation="resource_health", subscription_id="<subscription-id>", resource_group="<resource-group>", cluster_name="<cluster-name>", parameters="{\"start_time\":\"<start-time>\"}"
app_insights:
- Query request telemetry: operation="app_insights", subscription_id="<subscription-id>", resource_group="<resource-group>", parameters="{\"app_insights_name\":\"myapp-insights\", \"query\":\"requests | where timestamp > ago(1h) | summarize count() by bin(timestamp, 5m)\"}"
- Analyze exceptions: operation="app_insights", subscription_id="<subscription-id>", resource_group="<resource-group>", parameters="{\"app_insights_name\":\"myapp-insights\", \"query\":\"exceptions | where timestamp > ago(24h) | summarize count() by type, bin(timestamp, 1h)\"}"
- Performance with timespan: operation="app_insights", subscription_id="<subscription-id>", resource_group="<resource-group>", parameters="{\"app_insights_name\":\"myapp-insights\", \"query\":\"performanceCounters | where category == 'Processor' | summarize avg(value) by bin(timestamp, 5m)\", \"timespan\":\"PT1H\"}"
diagnostics:
- Verify diagnostic settings: operation="diagnostics", subscription_id="<subscription-id>", resource_group="<resource-group>", cluster_name="<cluster-name>", parameters="{}"
control_plane_logs:
- Query API server logs: operation="control_plane_logs", subscription_id="<subscription-id>", resource_group="<resource-group>", cluster_name="<cluster-name>", parameters="{\"log_category\":\"kube-apiserver\", \"start_time\":\"<start-time>\", \"end_time\":\"<end-time>\", \"max_records\":\"50\"}"
- Debug authentication issues: operation="control_plane_logs", subscription_id="<subscription-id>", resource_group="<resource-group>", cluster_name="<cluster-name>", parameters="{\"log_category\":\"guard\", \"start_time\":\"<start-time>\", \"end_time\":\"<end-time>\", \"max_records\":\"100\"}"
- Analyze audit events: operation="control_plane_logs", subscription_id="<subscription-id>", resource_group="<resource-group>", cluster_name="<cluster-name>", parameters="{\"log_category\":\"kube-audit\", \"log_level\":\"error\", \"start_time\":\"<start-time>\", \"end_time\":\"<end-time>\", \"max_records\":\"50\"}"
Unified tool for getting Azure network resource information used by AKS clusters.
Supported resource types:
- all: Get information about all network resources
- vnet: Get Virtual Network information
- nsg: Get Network Security Group information
- route_table: Get Route Table information
- subnet: Get Subnet information
- load_balancer: Get Load Balancer information
- private_endpoint: Get Private Endpoint information (private clusters only)
Examples:
- Get all network resources: resource_type="all"
- Get VNet info: resource_type="vnet"
- Get NSG info: resource_type="nsg"
Get detailed VMSS configuration for a specific node pool or all node pools in the AKS cluster (provides low-level VMSS settings not available in az aks nodepool show). Leave node_pool_name empty to get info for all node pools.
Real-time observability tool for Azure Kubernetes Service (AKS) clusters, allowing users to manage gadgets for monitoring and debugging
Apart from 'action' param:
It supports 'action_params' (type=object) to specify parameters for the action.Available params are: gadget_name, duration, gadget_id, chart_version. Available Gadget names are: observe_dns, observe_tcp, observe_file_open, observe_process_execution, observe_signal, observe_system_calls, top_file, top_tcp, tcpdump. Example: {'action': 'run', 'action_params': {'gadget_name': 'observe_dns', 'duration': 10}}
It supports 'filter_params' (type=object) to filter the data captured by the gadget. Available params are: namespace, pod, container, selector,observe_signal.signal, observe_dns.nameserver, observe_dns.minimum_latency, observe_dns.response_code, observe_dns.unsuccessful_only, observe_tcp.destination_port, observe_tcp.event_type, observe_file_open.path, observe_dns.name, observe_file_open.unsuccessful_only, observe_process_execution.command, observe_system_calls.syscall, top_tcp.max_entries, tcpdump.pcap-filter, observe_tcp.unsuccessful_only, observe_tcp.source_port, top_file.max_entries. Example: {'action': 'run', 'filter_params': {'namespace': 'default', 'selector': 'app=myapp', 'observe_dns.unsuccessful_only': true}}
Get information about the Kubernetes cluster and API.
Available operations:
- cluster-info: Display cluster information
- api-resources: Print supported API resources
- api-versions: Print supported API versions
- explain: Get documentation for a resource
Examples:
- Cluster info: operation='cluster-info', resource='', args=''
- Cluster info dump: operation='cluster-info', resource='dump', args=''
- List resources: operation='api-resources', resource='', args=''
- Namespaced resources: operation='api-resources', resource='', args='--namespaced=true'
- Non-namespaced resources: operation='api-resources', resource='', args='--namespaced=false'
- Resources by group: operation='api-resources', resource='', args='--api-group=rbac.authorization.k8s.io'
- API versions: operation='api-versions', resource='', args=''
- Explain pod: operation='explain', resource='pods', args=''
- Explain field: operation='explain', resource='pods.spec.containers', args=''
- Explain with version: operation='explain', resource='deployments', args='--api-version=apps/v1'
Work with Kubernetes configurations (read-only).
Available operations:
- diff: Diff the live version against what would be applied
- auth: Inspect authorization (can-i)
- config: View kubectl configuration contexts (read-only)
Config operations (read-only):
- current-context: Display the current context
- get-contexts: Describe one or many contexts
Examples:
- Diff config: operation='diff', resource='', args='-f pod.json'
- Check auth: operation='auth', resource='can-i', args='create pods --all-namespaces'
- Get current context: operation='config', resource='current-context', args=''
- List contexts: operation='config', resource='get-contexts', args=''Azure Kubernetes Service (AKS) official MCP server.
| Attribute | Details |
|---|---|
| Docker Image | mcp/aks |
| Author | Azure |
| Repository | https://github.com/Azure/aks-mcp |
| Attribute | Details |
|---|---|
| Dockerfile | https://github.com/Azure/aks-mcp/blob/e60444c3d739dc3606d9ff4cd3826019e02df8d9/Dockerfile |
| Commit | e60444c3d739dc3606d9ff4cd3826019e02df8d9 |
| Docker Image built by | Docker Inc. |
| Docker Scout Health Score | |
| Verify Signature | COSIGN_REPOSITORY=mcp/signatures cosign verify mcp/aks --key https://raw.githubusercontent.com/docker/keyring/refs/heads/main/public/mcp/latest.pub |
| Licence | MIT License |
| Tools provided by this Server | Short Description |
|---|---|
az_advisor_recommendation | Retrieve and manage Azure Advisor recommendations for AKS clusters |
az_aks_operations | Unified tool for managing Azure Kubernetes Service (AKS) clusters and related operations. |
az_compute_operations | Unified tool for managing Azure Virtual Machines (VMs) and Virtual Machine Scale Sets (VMSS) using Azure CLI. |
az_fleet | Run Azure Kubernetes Service Fleet management commands. |
az_monitoring | Unified tool for Azure monitoring and diagnostics operations for AKS clusters. |
az_network_resources | Unified tool for getting Azure network resource information used by AKS clusters. |
get_aks_vmss_info | Get detailed VMSS configuration for a specific node pool or all node pools in the AKS cluster (provides low-level VMSS settings not available in az aks nodepool show). |
inspektor_gadget_observability | Real-time observability tool for Azure Kubernetes Service (AKS) clusters, allowing users to manage gadgets for monitoring and debugging Apart from 'action' param: It supports 'action_params' (type=object) to specify parameters for the action.Available params are: gadget_name, duration, gadget_id, chart_version. |
kubectl_cluster | Get information about the Kubernetes cluster and API. |
kubectl_config | Work with Kubernetes configurations (read-only). |
kubectl_diagnostics | Diagnose and debug Kubernetes resources. |
kubectl_resources | View Kubernetes resources with read-only operations. |
list_detectors | List all available AKS cluster detectors |
run_detector | Run a specific AKS detector |
run_detectors_by_category | Run all detectors in a specific category |
az_advisor_recommendationRetrieve and manage Azure Advisor recommendations for AKS clusters
| Parameters | Type | Description |
|---|---|---|
operation | string | Operation to perform: list or report |
subscription_id | string | Azure subscription ID to query recommendations |
category | stringoptional | Filter by recommendation category: Cost, HighAvailability, Performance, Security |
cluster_names | stringoptional | Comma-separated list of specific AKS cluster names to filter recommendations |
format | stringoptional | Output format for reports: summary, detailed, actionable |
resource_group | stringoptional | Filter by specific resource group containing AKS clusters |
severity | stringoptional | Filter by severity level: High, Medium, Low |
This tool may perform destructive updates.
This tool interacts with external entities.
az_aks_operationsUnified tool for managing Azure Kubernetes Service (AKS) clusters and related operations.
Supported operations:
Examples:
args|string|Arguments for the operation
operation|string|The operation to perform
resource_type|stringoptional|The resource type (cluster, nodepool, account). Can be inferred from operation.This tool may perform destructive updates.
This tool interacts with external entities.
az_compute_operationsUnified tool for managing Azure Virtual Machines (VMs) and Virtual Machine Scale Sets (VMSS) using Azure CLI.
IMPORTANT: VM/VMSS resources are managed by AKS. Write operations should be used carefully and only for debugging purposes.
Use resource_type="vm" for single virtual machines or resource_type="vmss" for virtual machine scale sets.
Available operation values:
EXAMPLES: List VMSS: operation="list", resource_type="vmss", args="--resource-group myRG" Show VMSS: operation="show", resource_type="vmss", args="--name myVMSS --resource-group myRG" List VMs: operation="list", resource_type="vm", args="--resource-group myRG"
| Parameters | Type | Description |
|---|---|---|
args | string | Azure CLI arguments: '--resource-group myRG' (required for most operations), '--name myVM' (for specific resources), '--new-capacity 3' (for scaling) |
operation | string | Operation to perform. Common operations: list, show, start, stop, restart, deallocate, scale, etc. |
resource_type | string | Resource type: 'vm' (single virtual machine) or 'vmss' (virtual machine scale set) |
This tool may perform destructive updates.
This tool interacts with external entities.
az_fleetRun Azure Kubernetes Service Fleet management commands.
Available operations and resources:
Examples:
args|string|Additional arguments for the command (e.g., '--name myFleet --resource-group myRG')
operation|string|The operation to perform. Valid values: list, show, create, update, delete, start, stop, get-credentials
resource|string|The resource type to operate on. Valid values: fleet, member, updaterun, updatestrategy, clusterresourceplacementThis tool may perform destructive updates.
This tool interacts with external entities.
az_monitoringUnified tool for Azure monitoring and diagnostics operations for AKS clusters.
Supported Operations:
Metrics - Query Azure Monitor metrics for AKS clusters and nodes
Use for: CPU usage, memory consumption, network traffic, pod counts, node health Required parameters: resource (Azure resource ID) Additional for 'list': metrics (metric names) Optional: aggregation, start-time, end-time, interval, filter
Resource Health - Get Azure Resource Health events for AKS clusters Use for: Cluster availability issues, platform problems, service health events Required parameters: subscription_id, resource_group, cluster_name, start_time Optional: end_time, status (Available, Unavailable, Degraded, Unknown)
Application Insights - Execute KQL queries against Application Insights telemetry Use for: Application performance monitoring, custom telemetry analysis, trace correlation Required parameters: subscription_id, resource_group, app_insights_name, query Optional: start_time + end_time OR timespan (not both)
Diagnostics - Check AKS cluster diagnostic settings configuration Use for: Verify logging is enabled, check log retention, validate diagnostic configuration Required parameters: subscription_id, resource_group, cluster_name
Control Plane Logs - Query AKS control plane logs Supported log categories:
Use This Tool When You Need To:
Examples:
metrics:
resource_health:
app_insights:
diagnostics:
control_plane_logs:
operation|string|The monitoring operation to perform: 'metrics' (CPU/memory/network), 'resource_health' (cluster availability), 'app_insights' (telemetry analysis), 'diagnostics' (logging config), 'control_plane_logs' (Kubernetes logs like kube-apiserver, kube-audit, guard, etc.)
parameters|string|JSON string with operation parameters. metrics: resource (required), metrics (required for 'list' query_type), aggregation/start-time/end-time/interval/filter (optional). resource_health: start_time, end_time, status. app_insights: app_insights_name, query, start_time/end_time OR timespan (optional). diagnostics: none required. control_plane_logs: log_category (kube-apiserver/kube-audit/guard/etc), start_time, end_time, max_records, log_level
cluster_name|stringoptional|AKS cluster name (required for resource_health, diagnostics, control_plane_logs)
query_type|stringoptional|For metrics operations only: 'list' (get metric values), 'list-definitions' (available metrics), 'list-namespaces' (metric categories)
resource_group|stringoptional|Resource group name (required for resource_health, app_insights, diagnostics, control_plane_logs)
subscription_id|stringoptional|Azure subscription ID (required for resource_health, app_insights, diagnostics, control_plane_logs)This tool may perform destructive updates.
This tool interacts with external entities.
az_network_resourcesUnified tool for getting Azure network resource information used by AKS clusters.
Supported resource types:
Examples:
cluster_name|string|Name of the AKS cluster
resource_group|string|Azure Resource Group containing the AKS cluster
resource_type|string|The type of network resource to query
subscription_id|string|Azure Subscription ID
filters|stringoptional|Optional filters for the queryThis tool may perform destructive updates.
This tool interacts with external entities.
get_aks_vmss_infoGet detailed VMSS configuration for a specific node pool or all node pools in the AKS cluster (provides low-level VMSS settings not available in az aks nodepool show). Leave node_pool_name empty to get info for all node pools.
| Parameters | Type | Description |
|---|---|---|
cluster_name | string | Name of the AKS cluster |
resource_group | string | Azure Resource Group containing the AKS cluster |
subscription_id | string | Azure Subscription ID |
node_pool_name | stringoptional | Name of the node pool to get VMSS information for. Leave empty to get info for all node pools. |
This tool may perform destructive updates.
This tool interacts with external entities.
inspektor_gadget_observabilityReal-time observability tool for Azure Kubernetes Service (AKS) clusters, allowing users to manage gadgets for monitoring and debugging
Apart from 'action' param:
It supports 'action_params' (type=object) to specify parameters for the action.Available params are: gadget_name, duration, gadget_id, chart_version. Available Gadget names are: observe_dns, observe_tcp, observe_file_open, observe_process_execution, observe_signal, observe_system_calls, top_file, top_tcp, tcpdump. Example: {'action': 'run', 'action_params': {'gadget_name': 'observe_dns', 'duration': 10}}
It supports 'filter_params' (type=object) to filter the data captured by the gadget. Available params are: namespace, pod, container, selector,observe_signal.signal, observe_dns.nameserver, observe_dns.minimum_latency, observe_dns.response_code, observe_dns.unsuccessful_only, observe_tcp.destination_port, observe_tcp.event_type, observe_file_open.path, observe_dns.name, observe_file_open.unsuccessful_only, observe_process_execution.command, observe_system_calls.syscall, top_tcp.max_entries, tcpdump.pcap-filter, observe_tcp.unsuccessful_only, observe_tcp.source_port, top_file.max_entries. Example: {'action': 'run', 'filter_params': {'namespace': 'default', 'selector': 'app=myapp', 'observe_dns.unsuccessful_only': true}}
| Parameters | Type | Description |
|---|---|---|
action | string | Action to perform on the gadget: run to run a gadget for a specific duration, start to start a gadget for continuous observation, stop to stop a running gadget using gadget_id, get_results to retrieve results of a gadget run using gadget_id (only available before stopping the gadget), list_gadgets to list all running (not available) gadgetsdeploy to deploy Inspektor Gadget, undeploy to undeploy Inspektor Gadgetupgrade to upgrade Inspektor Gadget, is_deployed to check if Inspektor Gadget is deployed |
action_params | objectoptional | Parameters for the action |
filter_params | objectoptional | Parameters to filter the data captured by the gadget |
This tool may perform destructive updates.
This tool interacts with external entities.
kubectl_clusterGet information about the Kubernetes cluster and API.
Available operations:
Examples:
args|string|Additional flags and options
operation|string|The operation to perform: cluster-info, api-resources, api-versions, explain
resource|string|The resource type for explain operation, or empty string '' for cluster-info/api-resources/api-versionsThis tool may perform destructive updates.
This tool interacts with external entities.
kubectl_configWork with Kubernetes configurations (read-only).
Available operations:
Config operations (read-only):
Examples:
args|string|Operation-specific arguments
operation|string|The operation to perform: diff, auth, config
resource|string|Subcommand for auth/certificate/config operations, or empty string '' for diff operationThis tool may perform destructive updates.
This tool interacts with external entities.
kubectl_diagnosticsDiagnose and debug Kubernetes resources.
Available operations:
Examples:
args|string|Resource names and operation-specific flags
operation|string|The operation to perform: logs, events, top, exec, cp
resource|string|The resource type: 'node'/'pod' for top, empty string '' for logs/events/exec/cpThis tool may perform destructive updates.
This tool interacts with external entities.
kubectl_resourcesView Kubernetes resources with read-only operations.
Available operations:
Common resources: pods, deployments, services, configmaps, secrets, namespaces, etc.
Examples:
args|string|Additional arguments like resource names, namespaces, and flags
operation|string|The operation to perform: get, describe
resource|string|The resource type (e.g., pods, deployments, services) or empty string '' for file-based operations (create -f, apply -f, patch -f, replace -f, delete -f)This tool may perform destructive updates.
This tool interacts with external entities.
list_detectorsList all available AKS cluster detectors
| Parameters | Type | Description |
|---|---|---|
cluster_resource_id | string | AKS cluster resource ID |
This tool may perform destructive updates.
This tool interacts with external entities.
run_detectorRun a specific AKS detector
| Parameters | Type | Description |
|---|---|---|
cluster_resource_id | string | AKS cluster resource ID |
detector_name | string | Name of the detector to run |
end_time | string | End time in UTC ISO format (within last 30 days, max 24h from start). Example: 2025-07-11T14:55:13Z |
start_time | string | Start time in UTC ISO format (within last 30 days). Example: 2025-07-11T10:55:13Z |
This tool may perform destructive updates.
This tool interacts with external entities.
run_detectors_by_categoryRun all detectors in a specific category
| Parameters | Type | Description |
|---|---|---|
category | string | Detector category to run (Best Practices, Cluster and Control Plane Availability and Performance, Connectivity Issues, Create/Upgrade/Delete and Scale, Deprecations, Identity and Security, Node Health, Storage) |
cluster_resource_id | string | AKS cluster resource ID |
end_time | string | End time in UTC ISO format (within last 30 days, max 24h from start). Example: 2025-07-11T14:55:13Z |
start_time | string | Start time in UTC ISO format (within last 30 days). Example: 2025-07-11T10:55:13Z |
This tool may perform destructive updates.
This tool interacts with external entities.
{
"mcpServers": {
"aks": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-v",
"/local-directory:/local-directory",
"mcp/aks",
"--transport=stdio",
"--access-level={{aks.access_level}}",
"--allow-namespaces={{aks.allow_namespaces}}",
"--additional-tools={{aks.additional_tools}}"
]
}
}
}