AKS-MCP

Permite que assistentes de IA interajam com clusters do Azure Kubernetes Service (AKS).

Documentação

AKS-MCP

SafeSkill 92/100 O AKS-MCP é um servidor Model Context Protocol (MCP) que permite que assistentes de IA interajam com clusters do Azure Kubernetes Service (AKS). Ele atua como uma ponte entre ferramentas de IA (como GitHub Copilot, Claude e outros assistentes de IA compatíveis com MCP) e o AKS, traduzindo solicitações em linguagem natural em operações do AKS e retornando os resultados em um formato que as ferramentas de IA possam entender.

Ele permite que ferramentas de IA:

  • Operem (CRUD) recursos do AKS
  • Recuperem detalhes relacionados a clusters do AKS (VNets, Subnets, NSGs, Route Tables, etc.)
  • Gerenciem operações do Azure Fleet para cenários de múltiplos clusters

Modelo de Implantação Suportado e Considerações de Segurança

O AKS-MCP foi projetado para ser executado localmente, por um único usuário confiável, como uma ponte entre o assistente de IA do próprio usuário e seus próprios recursos do Azure/AKS. Este é o único modelo de implantação que o projeto suporta e para o qual é endurecido.

O limite de confiança

O AKS-MCP executa ferramentas de linha de comando — incluindo az, kubectl, helm, cilium e hubble — usando a identidade do processo sob o qual ele é executado. Ele não realiza autorização por chamador e não tenta isolar em sandbox os comandos que executa. Portanto:

Qualquer pessoa que possa invocar as ferramentas do AKS-MCP efetivamente tem todos os privilégios do Azure e do Kubernetes da identidade sob a qual o AKS-MCP está sendo executado.

Isso inclui a capacidade de obter credenciais reutilizáveis. Por exemplo, no modo readwrite ou admin, um chamador pode alcançar o Azure Resource Manager e o AKS com a autoridade total da identidade do servidor, e kubectl ou helm podem ser usados para ler Secrets, cunhar tokens de conta de serviço ou implantar cargas de trabalho arbitrárias no cluster. Esta é uma consequência inerente de expor uma superfície de execução de CLI — não é impedida pelo --access-level.

Comandos específicos da Azure CLI que retornam credenciais (como az account get-access-token e az aks get-credentials) são rejeitados por uma lista de bloqueio explícita. Essa lista de bloqueio reduz a exposição acidental — ela não é um limite de segurança, não cobre as superfícies kubectl, helm, cilium ou hubble e não deve ser usada para conter um chamador não confiável.

Trate a capacidade de chamar o AKS-MCP como equivalente a entregar um shell que já está conectado como a identidade do servidor.

Exposição de rede e autoridade local

A remoção dos transportes HTTP/SSE e dos artefatos oficiais de implantação remota remove o serviço acessível pela rede suportado e seu modelo de ameaça de chamador remoto. Na configuração suportada, o AKS-MCP não possui listener que aceite solicitações da rede.

Isso não torna o cliente MCP local, seus prompts ou --access-level um limite de autorização. Uma pessoa ou processo que controle o cliente local, sua configuração de servidor ou o AKS-MCP normalmente pode executar os mesmos comandos de CLI sob a mesma identidade sem o AKS-MCP. Proteger a estação de trabalho, a configuração do cliente e as credenciais locais continua sendo responsabilidade do operador.

O que --access-level é e não é

--access-level (readonly / readwrite / admin) é uma salvaguarda para reduzir danos acidentais de um assistente de IA que interpreta mal uma solicitação. Ele não é um limite de segurança contra um chamador deliberadamente malicioso e não deve ser usado para conter uma parte não confiável. Não exponha o AKS-MCP a chamadores aos quais você não concederia as credenciais subjacentes do Azure/Kubernetes diretamente.

Configuração recomendada (suportada)

  • Execute como um subprocesso local, iniciado sob demanda pelo seu cliente MCP local.
  • Autentique-se com sua própria identidade de desenvolvedor via az login.
  • Conceda à identidade apenas as permissões do Azure/Kubernetes que você realmente precisa.

Modelos de implantação não suportados

O AKS-MCP suporta apenas stdio e deve ser iniciado como um subprocesso local por um cliente MCP. Não o exponha por HTTP, SSE, serviço de contêiner, Helm, Kubernetes, proxy ou gateway. Qualquer ponte de terceiros está fora do limite de segurança e suporte do projeto.

Como funciona

O AKS-MCP conecta-se ao Azure usando o SDK do Azure e fornece um conjunto de ferramentas que assistentes de IA podem usar para interagir com recursos do AKS. Ele aproveita o Model Context Protocol (MCP) para facilitar essa comunicação, permitindo que ferramentas de IA façam chamadas de API ao Azure e interpretem as respostas.

Autenticação da Azure CLI

O AKS-MCP usa a Azure CLI (az) para operações do AKS. A autenticação da Azure CLI é tentada nesta ordem:

  1. Service Principal (client secret): Quando as variáveis de ambiente AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, AZURE_TENANT_ID estão presentes, um login de service principal é realizado usando o seguinte comando: az login --service-principal -u CLIENT_ID -p CLIENT_SECRET --tenant TENANT_ID

  2. Workload Identity (token federado): Quando as variáveis de ambiente AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_FEDERATED_TOKEN_FILE estão presentes, um login de token federado é realizado usando o seguinte comando: az login --service-principal -u CLIENT_ID --tenant TENANT_ID --federated-token TOKEN

  3. Managed Identity atribuída pelo usuário (client ID da managed identity): Quando apenas a variável de ambiente AZURE_CLIENT_ID está presente, um login de managed identity atribuída pelo usuário é realizado usando o seguinte comando: az login --identity -u CLIENT_ID

  4. Managed Identity atribuída pelo sistema: Quando AZURE_MANAGED_IDENTITY está definido como system, um login de managed identity atribuída pelo sistema é realizado usando o seguinte comando: az login --identity

  5. Login existente: Quando nenhuma das variáveis de ambiente acima está definida, o AKS-MCP assume que você já autenticou (por exemplo, via az login) e usa a sessão existente.

Seleção opcional de assinatura:

  • Se AZURE_SUBSCRIPTION_ID estiver definido, o AKS-MCP executará az account set --subscription SUBSCRIPTION_ID após o login.

Notas e segurança:

  • O arquivo de token federado deve ter exatamente /var/run/secrets/azure/tokens/azure-identity-token e é estritamente validado; outros caminhos são rejeitados.
  • Após cada login, o AKS-MCP verifica a autenticação com az account show --query id -o tsv.
  • Certifique-se de que a Azure CLI esteja instalada e no PATH.

Variáveis de ambiente usadas:

  • AZURE_TENANT_ID
  • AZURE_CLIENT_ID
  • AZURE_CLIENT_SECRET
  • AZURE_FEDERATED_TOKEN_FILE
  • AZURE_SUBSCRIPTION_ID
  • AZURE_MANAGED_IDENTITY (definido como system para optar pela managed identity atribuída pelo sistema)

Ferramentas Disponíveis

O servidor AKS-MCP fornece ferramentas consolidadas para interagir com clusters do AKS. Por padrão, o servidor usa ferramentas unificadas (call_az para operações do Azure e call_kubectl para operações do Kubernetes) que fornecem uma interface mais flexível. Para compatibilidade reversa, você pode habilitar ferramentas especializadas legadas definindo a variável de ambiente USE_LEGACY_TOOLS=true.

Algumas ferramentas exigirão permissões de leitura-gravação ou administrador para executar pods de depuração no seu cluster. Para habilitar permissões de leitura-gravação ou administrador para o servidor AKS-MCP, adicione o parâmetro access level ao seu arquivo de configuração MCP:

  1. Navegue até o arquivo mcp.json, ou vá para MCP: List Servers -> AKS-MCP -> Show Configuration Details na Command Palette (Para VSCode; Ctrl+Shift+P no Windows/Linux ou Cmd+Shift+P no macOS).
  2. Na seção "args" do AKS-MCP, adicione os seguintes parâmetros: "--access-level", "readwrite" / "admin"

Por exemplo:

"args": [
  "--access-level",
  "readwrite"
]

Essas ferramentas foram projetadas para fornecer funcionalidade abrangente por meio de interfaces unificadas:

Operações da Azure CLI (Ferramenta Unificada)

Ferramenta: call_az (padrão, disponível quando USE_LEGACY_TOOLS não está definido ou está definido como false)

Ferramenta unificada para executar comandos da Azure CLI diretamente. Esta ferramenta fornece uma interface flexível para executar qualquer comando da Azure CLI.

Parâmetros:

  • cli_command: O comando completo da Azure CLI a ser executado (por exemplo, az aks list --resource-group myRG, az vm list --subscription <sub-id>)
  • timeout: Tempo limite opcional em segundos (padrão: 120)

Exemplo de uso:

{
  "cli_command": "az aks list --resource-group myResourceGroup --output json"
}

Controle de acesso:

  • readonly: Apenas operações de leitura são permitidas
  • readwrite/admin: Operações de leitura e gravação são permitidas

Importante: Os comandos devem ser invocações simples da Azure CLI, sem recursos de shell como pipes (|), redirecionamentos (>, <), substituição de comandos ou ponto e vírgula (;).

Gerenciamento de Clusters AKS (Ferramenta Legada)

Ferramenta: az_aks_operations (disponível quando USE_LEGACY_TOOLS=true)

Ferramenta unificada para gerenciar clusters do Azure Kubernetes Service (AKS) e operações relacionadas.

Operações disponíveis:

  • Somente leitura (todos os níveis de acesso):

    • show: Mostrar detalhes do cluster
    • list: Listar clusters na assinatura/grupo de recursos
    • get-versions: Obter versões disponíveis do Kubernetes
    • check-network: Realizar verificação de conectividade de rede de saída
    • nodepool-list: Listar pools de nós no cluster
    • nodepool-show: Mostrar detalhes do pool de nós
    • account-list: Listar assinaturas do Azure
  • Leitura-gravação (níveis de acesso readwrite/admin):

    • create: Criar novo cluster
    • delete: Excluir cluster
    • scale: Dimensionar contagem de nós do cluster
    • start: Iniciar um cluster parado
    • stop: Parar um cluster em execução
    • update: Atualizar configuração do cluster
    • upgrade: Atualizar versão do Kubernetes
    • nodepool-add: Adicionar pool de nós ao cluster
    • nodepool-delete: Excluir pool de nós
    • nodepool-scale: Dimensionar pool de nós
    • nodepool-upgrade: Atualizar pool de nós
    • account-set: Definir assinatura ativa
    • login: Autenticação do Azure
  • Somente administrador (nível de acesso admin):

    • get-credentials: Obter credenciais do cluster para acesso kubectl
Gerenciamento de Recursos de Rede

Ferramenta: aks_network_resources

Ferramenta unificada para obter informações de recursos de rede do Azure usados por clusters AKS.

Tipos de recursos disponíveis:

  • all: Obter informações sobre todos os recursos de rede
  • vnet: Informações da Virtual Network
  • subnet: Informações da Subnet
  • nsg: Informações do Network Security Group
  • route_table: Informações da Route Table
  • load_balancer: Informações do Load Balancer
  • private_endpoint: Informações do private endpoint
Monitoramento e Diagnóstico

Ferramenta: aks_monitoring

Ferramenta unificada para operações de monitoramento e diagnóstico do Azure para clusters AKS.

Operações disponíveis:

  • metrics: Listar valores de métricas para recursos
  • resource_health: Recuperar eventos de integridade de recursos para clusters AKS
  • app_insights: Executar consultas KQL contra dados de telemetria do Application Insights
  • diagnostics: Verificar se o cluster AKS tem configurações de diagnóstico definidas
  • control_plane_logs: Consultar logs do plano de controle do AKS com restrições de segurança e validação de intervalo de tempo
Recursos de Computação

Ferramenta: get_aks_vmss_info

  • Obter configuração detalhada do VMSS para pools de nós no cluster AKS

Ferramenta: collect_aks_node_logs

Coletar logs do sistema de nós VMSS do AKS para depuração e solução de problemas.

Parâmetros:

  • aks_resource_id: ID do recurso do cluster AKS
  • vmss_name: Nome do VMSS (obter de get_aks_vmss_info ou kubectl get nodes)
  • instance_id: ID da instância do VMSS
  • log_type: Tipo de logs a coletar (kubelet, containerd, kernel, syslog)
  • lines: Número de linhas de log recentes a retornar (padrão: 500, máximo: 2000)
  • since: Intervalo de tempo para logs (por exemplo, 1h, 30m, 2d) - tem precedência sobre lines
  • level: Filtro de nível de log (ERROR, WARN, INFO)
  • filter: Filtrar logs por palavra-chave (correspondência de texto sem diferenciar maiúsculas de minúsculas)

Exemplo de uso:

{
  "aks_resource_id": "/subscriptions/.../managedClusters/myAKS",
  "vmss_name": "aks-nodepool1-12345678-vmss",
  "instance_id": "0",
  "log_type": "kubelet",
  "since": "1h",
  "level": "ERROR",
  "filter": "ImagePullBackOff"
}

Limitações:

  • Suporta apenas nós VMSS Linux (nós Windows e VMs autônomas ainda não são suportados)
  • Apenas um comando de execução pode ser executado por vez por instância do VMSS

Ferramenta: az_compute_operations Ferramenta unificada para gerenciar Azure Virtual Machines (VMs) e Virtual Machine Scale Sets (VMSS) usados pelo AKS.

Operações disponíveis:

  • show: Obter detalhes de uma VM/VMSS
  • list: Listar VMs/VMSS na assinatura ou grupo de recursos
  • get-instance-view: Obter status de tempo de execução
  • start: Iniciar VM
  • stop: Parar VM
  • restart: Reiniciar instâncias de VM/VMSS
  • reimage: Reimagear instâncias de VMSS (VM não suporta reimage)

Tipos de recursos: vm (máquinas virtuais individuais), vmss (conjuntos de escala de máquinas virtuais)

Gerenciamento de Frota

Ferramenta: az_fleet

Gerenciamento abrangente de frota do Azure para cenários de múltiplos clusters.

Operações disponíveis:

  • Operações de Frota: listar, mostrar, criar, atualizar, excluir, obter credenciais
  • Operações de Membro: listar, mostrar, criar, atualizar, excluir
  • Operações de Execução de Atualização: listar, mostrar, criar, iniciar, parar, excluir
  • Operações de Estratégia de Atualização: listar, mostrar, criar, excluir
  • Operações de ClusterResourcePlacement: listar, mostrar, obter, criar, excluir

Suporta operações de gerenciamento de frota do Azure e operações de CRD do Kubernetes ClusterResourcePlacement.

Detectores de Diagnóstico

Ferramenta: aks_detector

Ferramenta unificada para executar operações de detectores de diagnóstico do AKS.

Operações disponíveis:

  • list: Listar todos os detectores de cluster AKS disponíveis
  • run: Executar um detector de diagnóstico específico do AKS
  • run_by_category: Executar todos os detectores em uma categoria específica

Parâmetros:

  • operation (obrigatório): Operação a ser executada (list, run ou run_by_category)
  • aks_resource_id (obrigatório): ID do recurso do cluster AKS
  • detector_name (obrigatório para a operação run): Nome do detector a ser executado
  • category (obrigatório para a operação run_by_category): Categoria do detector
  • start_time (obrigatório para as operações run e run_by_category): Hora de início no formato ISO UTC (dentro dos últimos 30 dias)
  • end_time (obrigatório para as operações run e run_by_category): Hora de término no formato ISO UTC (dentro dos últimos 30 dias, máximo 24h a partir do início)

Categorias disponíveis:

  • Melhores Práticas
  • Disponibilidade e Desempenho do Cluster e do Plano de Controle
  • Problemas de Conectividade
  • Criar, Atualizar, Excluir e Escalar
  • Depreciações
  • Identidade e Segurança
  • Saúde do Nó
  • Armazenamento

Exemplo de uso:

{
  "operation": "list",
  "aks_resource_id": "/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.ContainerService/managedClusters/xxx"
}
{
  "operation": "run",
  "aks_resource_id": "/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.ContainerService/managedClusters/xxx",
  "detector_name": "node-health-detector",
  "start_time": "2025-01-15T10:00:00Z",
  "end_time": "2025-01-15T12:00:00Z"
}
Azure Advisor

Ferramenta: aks_advisor_recommendation

Recuperar e gerenciar recomendações do Azure Advisor para clusters AKS.

Operações disponíveis:

  • list: Listar recomendações com opções de filtro
  • report: Gerar relatórios de recomendações
  • Opções de Filtro: resource_group, cluster_names, categoria (Custo, Alta Disponibilidade, Desempenho, Segurança), severidade (Alta, Média, Baixa)
Operações do Kubernetes

Nota: Todas as ferramentas do Kubernetes (kubectl, helm, cilium, hubble) estão habilitadas por padrão. Use --enabled-components para habilitar seletivamente componentes específicos.

Ferramenta kubectl Unificada (Padrão)

Ferramenta: call_kubectl (padrão, disponível quando USE_LEGACY_TOOLS não está definido ou definido como false)

Ferramenta unificada para executar comandos kubectl diretamente. Esta ferramenta fornece uma interface flexível para executar qualquer comando kubectl com suporte completo a argumentos.

Parâmetros:

  • args: Os argumentos do comando kubectl (por exemplo, get pods, describe node mynode, apply -f deployment.yaml)

Exemplo de uso:

{
  "args": "get pods -n kube-system -o wide"
}

Controle de Acesso: As operações são restritas com base no nível de acesso configurado:

  • somente leitura: Apenas operações de leitura (get, describe, logs, etc.) são permitidas
  • leitura/escrita/admin: Todas as operações, incluindo comandos de mutação (create, delete, apply, etc.)

Ferramentas kubectl Legadas (Especializadas)

Disponíveis quando USE_LEGACY_TOOLS=true:

  • Somente Leitura (todos os níveis de acesso):

    • kubectl_resources: Visualizar recursos (get, describe) - filtrado para operações somente leitura no modo somente leitura
    • kubectl_diagnostics: Depurar e diagnosticar (logs, events, top, exec, cp)
    • kubectl_cluster: Informações do cluster (cluster-info, api-resources, api-versions, explain)
    • kubectl_config: Gerenciamento de configuração (diff, auth, config) - filtrado para operações somente leitura no modo somente leitura
  • Leitura/Escrita/Admin (níveis de acesso readwrite/admin):

    • kubectl_resources: Gerenciamento completo de recursos (get, describe, create, delete, apply, patch, replace, cordon, uncordon, drain, taint)
    • kubectl_workloads: Ciclo de vida de cargas de trabalho (run, expose, scale, autoscale, rollout)
    • kubectl_metadata: Gerenciamento de metadados (label, annotate, set)
    • kubectl_config: Gerenciamento completo de configuração (diff, auth, certificate, config)

Helm

Ferramenta: call_helm

Gerenciador de pacotes Helm para Kubernetes.

Cilium

Ferramenta: call_cilium

CLI do Cilium para rede e segurança baseadas em eBPF.

Hubble

Ferramenta: call_hubble

Observabilidade de rede do Hubble para Cilium.

Observabilidade em Tempo Real

Ferramenta: inspektor_gadget_observability

Ferramenta de observabilidade em tempo real para clusters do Azure Kubernetes Service (AKS) usando eBPF.

Ações disponíveis:

  • deploy: Implantar o Inspektor Gadget no cluster (via extensão de cluster do AKS)
  • undeploy: Remover a extensão de cluster do Inspektor Gadget do cluster
  • is_deployed: Verificar status da implantação
  • run: Executar gadgets de uso único
  • start: Iniciar gadgets contínuos
  • stop: Parar gadgets em execução
  • get_results: Recuperar resultados de gadgets
  • list_gadgets: Listar gadgets disponíveis

Gadgets disponíveis:

  • observe_dns: Monitorar solicitações e respostas de DNS
  • observe_tcp: Monitorar conexões TCP
  • observe_file_open: Monitorar operações do sistema de arquivos
  • observe_process_execution: Monitorar execução de processos
  • observe_signal: Monitorar entrega de sinais
  • observe_system_calls: Monitorar chamadas de sistema
  • top_file: Principais arquivos por operações de I/O
  • top_tcp: Principais conexões TCP por tráfego
  • tcpdump: Capturar pacotes de rede

Como instalar

Pré-requisitos

  1. Configure o Azure CLI e autentique-se:

    az login
    

VS Code com GitHub Copilot (Recomendado)

Instalação com um Clique usando a Extensão do AKS

A maneira mais fácil de começar com o AKS-MCP é através da Extensão do Azure Kubernetes Service para VS Code.

Passo 1: Instale a Extensão do AKS

  1. Abra o VS Code e vá para Extensões (Ctrl+Shift+X no Windows/Linux ou Cmd+Shift+X no macOS).
  2. Pesquise por Azure Kubernetes Service.
  3. Instale a extensão oficial do AKS da Microsoft.

Passo 2: Inicie o Servidor AKS-MCP

  1. Abra a Paleta de Comandos (Ctrl+Shift+P no Windows/Linux ou Cmd+Shift+P no macOS).
  2. Pesquise e execute: AKS: Configurar Servidor MCP do AKS.

Após a instalação bem-sucedida, o servidor agora estará visível em MCP: Listar Servidores (via Paleta de Comandos). A partir daí, você pode iniciar o servidor MCP ou visualizar seu status.

Passo 3: Comece a Usar o AKS-MCP

Uma vez iniciado, o servidor MCP aparecerá no menu suspenso Copilot Chat: Configurar Ferramentas sob MCP Server: AKS MCP, pronto para aprimorar prompts contextuais com base no seu ambiente AKS. Por padrão, todas as ferramentas do servidor AKS-MCP estão habilitadas. Você pode revisar a lista de ferramentas disponíveis e desabilitar qualquer uma que não seja necessária para o seu cenário específico.

Experimente um prompt como "Listar todos os meus clusters AKS", que começará a usar ferramentas do servidor AKS-MCP.

Configuração do WSL

A configuração do MCP difere dependendo se o VS Code está rodando no Windows ou dentro do WSL:

🪟 Host Windows (VS Code no Windows): Use "command": "wsl" para invocar o binário WSL a partir do Windows:

{
  "servers": {
    "aks-mcp": {
      "type": "stdio",
      "command": "wsl",
      "args": [
        "--",
        "/home/you/.vs-kubernetes/tools/aks-mcp/aks-mcp"
      ]
    }
  }
}

🐧 Remote-WSL (VS Code rodando dentro do WSL): Chame o binário diretamente ou use um wrapper de shell:

{
  "servers": {
    "aks-mcp": {
      "type": "stdio",
      "command": "bash",
      "args": [
        "-c",
        "/home/you/.vs-kubernetes/tools/aks-mcp/aks-mcp"
      ]
    }
  }
}

🔧 Solução de Problemas de Erros ENOENT

Se você vir erros "spawn ENOENT", verifique seu ambiente VS Code:

  • Host Windows: Verifique se o caminho do binário WSL está correto e acessível via wsl -- ls /path/to/aks-mcp
  • Remote-WSL: NÃO use "command": "wsl" - use caminhos diretos ou wrapper bash como mostrado acima

💡 Benefícios: A extensão do AKS lida com downloads de binários, atualizações e configuração automaticamente, garantindo que você sempre tenha a versão mais recente com configurações ideais.

Métodos Alternativos de Instalação

Instalação Manual do Binário

Passo 1: Baixe o Binário

Escolha sua plataforma e baixe o binário mais recente do AKS-MCP:

PlataformaArquiteturaLink de Download
WindowsAMD64📥 aks-mcp-windows-amd64.exe
ARM64📥 aks-mcp-windows-arm64.exe
macOSIntel (AMD64)📥 aks-mcp-darwin-amd64
Apple Silicon (ARM64)📥 aks-mcp-darwin-arm64
LinuxAMD64📥 aks-mcp-linux-amd64
ARM64📥 aks-mcp-linux-arm64

Passo 2: Configure o VS Code

Após o download, crie um arquivo .vscode/mcp.json na raiz do seu workspace com o caminho para o binário baixado.

Opção A: Script de Configuração Automatizado

Para configuração rápida, você pode usar estes scripts de uma linha que baixam o binário e criam a configuração:

Windows (PowerShell):

# Download binary and create VS Code configuration
mkdir -p .vscode ; Invoke-WebRequest -Uri "https://github.com/Azure/aks-mcp/releases/latest/download/aks-mcp-windows-amd64.exe" -OutFile "aks-mcp.exe" ; @{servers=@{"aks-mcp-server"=@{type="stdio";command="$PWD\aks-mcp.exe";args=@()}}} | ConvertTo-Json -Depth 3 | Out-File ".vscode/mcp.json" -Encoding UTF8

macOS/Linux (Bash):

# Download binary and create VS Code configuration
mkdir -p .vscode && curl -sL https://github.com/Azure/aks-mcp/releases/latest/download/aks-mcp-linux-amd64 -o aks-mcp && chmod +x aks-mcp && echo '{"servers":{"aks-mcp-server":{"type":"stdio","command":"'$PWD'/aks-mcp","args":[]}}}' > .vscode/mcp.json
Opção B: Configuração Manual

✨ Configuração Simples: Baixe o binário para sua plataforma e use a configuração manual abaixo para configurar o servidor MCP no VS Code.

Configuração Manual do VS Code

Você pode configurar o servidor AKS-MCP de duas maneiras:

1. Configuração específica do workspace (recomendada para uso específico do projeto):

Crie um arquivo .vscode/mcp.json no seu workspace com o caminho para o binário baixado:

{
  "servers": {
    "aks-mcp-server": {
      "type": "stdio",
      "command": "<enter the file path>",
      "args": []
    }
  }
}

2. Configuração no nível do usuário (persistente em todos os workspaces):

Para uma configuração persistente que funcione em todos os seus workspaces do VS Code, adicione o servidor MCP às configurações de usuário do VS Code:

  1. Abra as Configurações do VS Code (Ctrl+, ou Cmd+,)
  2. Pesquise por "mcp" nas configurações
  3. Adicione o seguinte ao JSON de Configurações do Usuário:
{
  "github.copilot.chat.mcp.servers": {
    "aks-mcp-server": {
      "type": "stdio",
      "command": "<enter the file path>",
      "args": []
    }
  }
}

Passo 3: Carregue as ferramentas do servidor AKS-MCP no GitHub Copilot

  1. Se estiver rodando em uma versão mais antiga do VS Code: reinicie o VS Code, ou seja, feche e reabra o VS Code para carregar a nova configuração do servidor MCP.
  2. Abra o GitHub Copilot no VS Code e mude para o modo Agente
  3. Clique no botão Ferramentas ou execute /list na janela do GitHub Copilot para ver a lista de ferramentas disponíveis
  4. Você deve ver as ferramentas do AKS-MCP na lista
  5. Experimente um prompt como: "Listar todos os meus clusters AKS na assinatura xxx"
  6. O agente usará automaticamente as ferramentas do AKS-MCP para concluir sua solicitação

💡 Dica: Se você não vir as ferramentas do AKS-MCP após reiniciar, verifique o painel de saída do VS Code para erros de conexão do servidor MCP e verifique o caminho do binário em .vscode/mcp.json.

Nota: Certifique-se de ter autenticado com o Azure CLI (az login) para que o servidor acesse seus recursos do Azure.

Outros Clientes Compatíveis com MCP

Instalação em Cliente Personalizado

Para outros clientes de IA compatíveis com MCP, como Claude Desktop ou GitHub Copilot CLI, configure o servidor na sua configuração MCP:

{
  "mcpServers": {
    "aks": {
      "command": "<path of binary aks-mcp>",
      "args": []
    }
  }
}

🤖 Instalação em Cliente MCP Personalizado

Você pode configurar qualquer cliente compatível com MCP para usar o servidor AKS-MCP executando o binário diretamente:

# Run the server directly
./aks-mcp

🔧 Instalação Manual do Binário

Para uso direto do binário sem gerenciadores de pacotes:

  1. Baixe a versão mais recente na página de releases
  2. Extraia o binário para o local de sua preferência
  3. Torne-o executável (em sistemas Unix):
    chmod +x aks-mcp
    
  4. Configure seu cliente MCP para usar o caminho do binário

Opções

Argumentos de linha de comando:

Usage of ./aks-mcp:
      --access-level string       Access level (readonly, readwrite, admin) (default "readonly")
      --enabled-components string Comma-separated list of enabled components (empty means all components enabled). Available: az_cli,monitor,fleet,network,compute,detectors,advisor,inspektorgadget,kubectl,helm,cilium,hubble
      --allow-namespaces string   Comma-separated list of allowed Kubernetes namespaces (empty means all namespaces)
      --otlp-endpoint string      OTLP endpoint for OpenTelemetry traces (e.g. localhost:4317)
      --timeout int               Timeout for command execution in seconds, default is 600s (default 600)
      --log-level string          Log level (debug, info, warn, error) (default "info")

Variáveis de ambiente:

  • USE_LEGACY_TOOLS: Defina como true para usar ferramentas especializadas legadas em vez de ferramentas unificadas (padrão: false)
    • false (padrão): Usa call_az para operações do Azure e call_kubectl para operações do Kubernetes
    • true: Usa ferramentas legadas como az_aks_operations, az_compute_operations e ferramentas kubectl especializadas
  • As variáveis de ambiente padrão de autenticação do Azure são suportadas (AZURE_TENANT_ID, AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, AZURE_SUBSCRIPTION_ID)

Desenvolvimento

Pré-requisitos

  • Go ≥ 1.24.x instalado em sua máquina local
  • Bash disponível como /usr/bin/env bash (os alvos do Makefile usam receitas de múltiplas linhas com modo fail-fast)
  • GNU Make 4.x ou posterior

Nota: Se o seu shell de login for diferente (por exemplo, zsh no macOS), você não precisa alterá-lo — o Makefile define variáveis para executar todas as receitas em bash para comportamento consistente entre plataformas.

Compilando a partir do Código-Fonte

Este projeto inclui um Makefile para desenvolvimento, compilação e testes convenientes. Para ver todos os alvos disponíveis:

make help

Início Rápido

# Build the binary
make build

# Run tests
make test

# Run tests with coverage
make test-coverage

# Format and lint code
make check

# Build for all platforms
make release

Tarefas Comuns de Desenvolvimento

# Install dependencies
make deps

# Build and run with --help
make run

# Clean build artifacts
make clean

# Install binary to GOBIN
make install

Compilação Manual

Se você preferir compilar sem o Makefile:

go build -o aks-mcp ./cmd/aks-mcp

Uso

Faça qualquer pergunta sobre seus clusters AKS no seu cliente de IA, por exemplo:

List all my AKS clusters in my subscription xxx.

What is the network configuration of my AKS cluster?

Show me the network security groups associated with my cluster.

Create a new Azure Fleet named prod-fleet in eastus region.

List all members in my fleet.

Create a placement to deploy nginx workloads to clusters with app=frontend label.

Show me all ClusterResourcePlacements in my fleet.

Telemetria

A coleta de telemetria está ativada por padrão.

Para desativar, defina a variável de ambiente AKS_MCP_COLLECT_TELEMETRY=false.

Contribuindo

Aceitamos contribuições para o AKS-MCP! Seja corrigindo bugs, adicionando recursos ou melhorando a documentação, sua ajuda torna este projeto melhor.

📖 Leia nosso Guia de Contribuição detalhado para informações abrangentes sobre:

  • Configuração do seu ambiente de desenvolvimento
  • Executando o AKS-MCP localmente e testando com agentes de IA
  • Compreendendo a arquitetura do código-fonte
  • Adicionando novas ferramentas e recursos MCP
  • Diretrizes de teste e melhores práticas
  • Enviando pull requests

Início Rápido para Contribuidores

  1. Pré-requisitos: Go ≥ 1.24.x, Azure CLI, Git
  2. Configuração: Faça um fork do repositório, clone localmente, execute make deps && make build
  3. Teste: Execute make test e make check
  4. Desenvolva: Siga a arquitetura baseada em componentes em CONTRIBUTING.md

Contrato de Licença do Contribuidor

A maioria das contribuições exige que você concorde com um Contrato de Licença do Contribuidor (CLA) declarando que você tem o direito de, e de fato concede, os direitos de uso da sua contribuição. Para detalhes, visite https://cla.opensource.microsoft.com.

Quando você envia um pull request, um bot de CLA determinará automaticamente se você precisa fornecer um CLA e decorará o PR adequadamente (por exemplo, verificação de status, comentário). Basta seguir as instruções fornecidas pelo bot. Você só precisará fazer isso uma vez em todos os repositórios que usam nosso CLA.

Este projeto adotou o Código de Conduta de Código Aberto da Microsoft. Para mais informações, consulte as Perguntas Frequentes sobre o Código de Conduta ou entre em contato com opencode@microsoft.com para quaisquer perguntas ou comentários adicionais.

Marcas Registradas

Este projeto pode conter marcas registradas ou logotipos de projetos, produtos ou serviços. O uso autorizado de marcas registradas ou logotipos da Microsoft está sujeito e deve seguir as Diretrizes de Marcas Registradas e Marca da Microsoft. O uso de marcas registradas ou logotipos da Microsoft em versões modificadas deste projeto não deve causar confusão ou implicar patrocínio da Microsoft. Qualquer uso de marcas registradas ou logotipos de terceiros está sujeito às políticas desses terceiros.