call_azLABSCO SUMMARY
Lets an AI assistant inspect and manage your clusters on Azure Kubernetes Service (AKS).
It runs the Azure CLI, kubectl and related tools on your own computer, under whatever Azure identity you're signed in with. It starts read-only; changing a cluster takes a setting you add on purpose. Telemetry collection is on by default; set AKS_MCP_COLLECT_TELEMETRY=false to turn it off.
What it is
Microsoft's own MCP server for AKS, the company's hosted service for running containerized apps. It runs only as a local process that your MCP client starts, for one trusted user; the project doesn't support putting it on a network.
What you get
- Two general tools by default: call_az takes one Azure CLI command (no pipes or redirects) and call_kubectl takes kubectl arguments
- Dedicated tools, also on by default, for the cluster's networking (virtual networks, subnets, security groups, route tables, load balancers, private endpoints), monitoring and resource health, Azure's built-in diagnostics and Advisor recommendations, node details and node logs, and Azure Fleet for managing several clusters together
- Helm, cilium and hubble commands, plus Inspektor Gadget for live tracing of DNS, TCP and process activity inside the cluster
- Older single-purpose tools in place of call_az and call_kubectl, only if you set USE_LEGACY_TOOLS=true: az_aks_operations, az_compute_operations and six kubectl_* tools. Three of the kubectl ones (diagnostics, workloads, metadata) load only at readwrite or admin
- --access-level readonly (the default), readwrite or admin sets which operations are allowed
Requirements
The Azure CLI installed and signed in (az login), with permissions on the clusters you want it to reach.
Know first
- Whoever can call it has your access. It runs every command as the identity it's signed in with and doesn't check who's asking. That includes reading Kubernetes Secrets, which the access level doesn't block, and in readwrite or admin mode deploying workloads. Sign it in with an identity that has only the permissions the work needs
- Read-only is a guardrail, not a lock. The default readonly level allows read operations only; scaling, upgrading or other changes need readwrite or admin. Microsoft describes the setting as a way to reduce accidental damage, not as a security boundary
- Local only. It's supported only as a process your MCP client starts on your machine; running it behind HTTP, a container service, a proxy or a gateway is outside what the project supports
- Telemetry collection is on by default. Set AKS_MCP_COLLECT_TELEMETRY=false in the server's environment to turn it off
- To narrow what it touches, --enabled-components limits which groups of tools load and --allow-namespaces limits which Kubernetes namespaces it can use
- Node log collection works on Linux nodes only, one collection at a time per node. Windows nodes and standalone VMs aren't supported yet
- To sign in without a browser, set the AZURE_* variables the README lists for a service principal, workload identity or managed identity; otherwise it uses your existing az login
Setup effort
Follow the published steps — Install the Azure CLI and authenticate first: az login — the server shells out to az and inherits that identity
USE CASES
Working out why pods will not schedule
Look at the workloads and cluster state, then run the diagnostics kubectl would give you.
A cluster cannot reach something it should
Read the vnet, subnet, NSG and route table together, and run the outbound connectivity check.
Something failed and the pod logs say nothing
Pull kubelet or containerd logs from the node itself, filtered to errors in the last hour.
Deciding whether to upgrade
Check the available Kubernetes versions and read what Azure Advisor recommends for the cluster.
Giving an agent a look-only view of production
Leave it at the default readonly level, so the tools refuse write operations.
Scaling a node pool for a load test
Scale it up, then back down when you are done. Scaling changes the cluster, so start the server with --access-level readwrite; the default readonly allows read operations only.
21 tools
Listed in project docs. Your client may show a different list.
call_kubectlcall_helmcall_ciliumcall_hubbleaks_network_resourcesaks_monitoringaks_detectoraks_advisor_recommendationget_aks_vmss_infocollect_aks_node_logsaz_compute_operationsaz_fleetinspektor_gadget_observabilityaz_aks_operationskubectl_resourceskubectl_diagnosticskubectl_clusterkubectl_configkubectl_workloadskubectl_metadataBEFORE YOU INSTALL
What to know first
Tools you get
21 tools named in the project's documentation. By default 13 of the 21 documented tools load, including call_az and call_kubectl. USE_LEGACY_TOOLS=true swaps those two for up to 8 older single-purpose tools: 5 at the default --access-level readonly, all 8 at readwrite or admin. Readonly refuses writes; --enabled-components loads fewer tools.
Requires
Azure CLI (az) on PATH, signed in with az login
INSTALLATION
Connect your client
Server setup
Install the Azure CLI and authenticate first: az login — the server shells out to az and inherits that identity
Recommended route: install the official Microsoft 'Azure Kubernetes Service' extension in VS Code, then run 'AKS: Setup AKS MCP Server' from the Command Palette; the extension downloads and updates the binary and writes the configuration for you
Manual route: download the binary for your platform from the releases page (aks-mcp-windows-amd64.exe / aks-mcp-darwin-arm64 / aks-mcp-linux-amd64 / …) and chmod +x aks-mcp on Unix
Point your MCP client at that binary — .vscode/mcp.json or VS Code user settings using the servers shape, or a mcpServers entry for Claude Desktop / other clients
Optional: raise permissions by adding "--access-level", "readwrite" (or "admin") to the args array; the default is readonly
Optional: restrict surface with --enabled-components and --allow-namespaces
MCP Clients
VS Code — AKS extension
AKS: Setup AKS MCP ServerVS Code — workspace, user-level
{
"servers": {
"aks-mcp-server": {
"type": "stdio",
"command": "<YOUR_FILE_PATH>",
"args": []
}
}
}VS Code — Windows via WSL
{
"servers": {
"aks-mcp": {
"type": "stdio",
"command": "wsl",
"args": [
"--",
"/home/<YOUR_USERNAME>/.vs-kubernetes/tools/aks-mcp/aks-mcp"
]
}
}
}VS Code — inside WSL
{
"servers": {
"aks-mcp": {
"type": "stdio",
"command": "bash",
"args": [
"-c",
"/home/<YOUR_USERNAME>/.vs-kubernetes/tools/aks-mcp/aks-mcp"
]
}
}
}Claude Desktop, Any MCP client
{
"mcpServers": {
"aks": {
"command": "<YOUR_PATH_BINARY_AKS_MCP>",
"args": []
}
}
}