AKS-MCP
Permite que assistentes de IA interajam com clusters do Azure Kubernetes Service (AKS).
Documentação
AKS-MCP
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:
-
Service Principal (client secret): Quando as variáveis de ambiente
AZURE_CLIENT_ID,AZURE_CLIENT_SECRET,AZURE_TENANT_IDestã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 -
Workload Identity (token federado): Quando as variáveis de ambiente
AZURE_CLIENT_ID,AZURE_TENANT_ID,AZURE_FEDERATED_TOKEN_FILEestã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 -
Managed Identity atribuída pelo usuário (client ID da managed identity): Quando apenas a variável de ambiente
AZURE_CLIENT_IDestá presente, um login de managed identity atribuída pelo usuário é realizado usando o seguinte comando:az login --identity -u CLIENT_ID -
Managed Identity atribuída pelo sistema: Quando
AZURE_MANAGED_IDENTITYestá definido comosystem, um login de managed identity atribuída pelo sistema é realizado usando o seguinte comando:az login --identity -
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_IDestiver definido, o AKS-MCP executaráaz account set --subscription SUBSCRIPTION_IDapós o login.
Notas e segurança:
- O arquivo de token federado deve ter exatamente
/var/run/secrets/azure/tokens/azure-identity-tokene é 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_IDAZURE_CLIENT_IDAZURE_CLIENT_SECRETAZURE_FEDERATED_TOKEN_FILEAZURE_SUBSCRIPTION_IDAZURE_MANAGED_IDENTITY(definido comosystempara 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:
- Navegue até o arquivo mcp.json, ou vá para MCP: List Servers -> AKS-MCP -> Show Configuration Details na Command Palette (Para VSCode;
Ctrl+Shift+Pno Windows/Linux ouCmd+Shift+Pno macOS). - 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 clusterlist: Listar clusters na assinatura/grupo de recursosget-versions: Obter versões disponíveis do Kubernetescheck-network: Realizar verificação de conectividade de rede de saídanodepool-list: Listar pools de nós no clusternodepool-show: Mostrar detalhes do pool de nósaccount-list: Listar assinaturas do Azure
-
Leitura-gravação (níveis de acesso
readwrite/admin):create: Criar novo clusterdelete: Excluir clusterscale: Dimensionar contagem de nós do clusterstart: Iniciar um cluster paradostop: Parar um cluster em execuçãoupdate: Atualizar configuração do clusterupgrade: Atualizar versão do Kubernetesnodepool-add: Adicionar pool de nós ao clusternodepool-delete: Excluir pool de nósnodepool-scale: Dimensionar pool de nósnodepool-upgrade: Atualizar pool de nósaccount-set: Definir assinatura ativalogin: 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 redevnet: Informações da Virtual Networksubnet: Informações da Subnetnsg: Informações do Network Security Grouproute_table: Informações da Route Tableload_balancer: Informações do Load Balancerprivate_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 recursosresource_health: Recuperar eventos de integridade de recursos para clusters AKSapp_insights: Executar consultas KQL contra dados de telemetria do Application Insightsdiagnostics: Verificar se o cluster AKS tem configurações de diagnóstico definidascontrol_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 AKSvmss_name: Nome do VMSS (obter deget_aks_vmss_infooukubectl get nodes)instance_id: ID da instância do VMSSlog_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 sobrelineslevel: 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/VMSSlist: Listar VMs/VMSS na assinatura ou grupo de recursosget-instance-view: Obter status de tempo de execuçãostart: Iniciar VMstop: Parar VMrestart: Reiniciar instâncias de VM/VMSSreimage: 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íveisrun: Executar um detector de diagnóstico específico do AKSrun_by_category: Executar todos os detectores em uma categoria específica
Parâmetros:
operation(obrigatório): Operação a ser executada (list,runourun_by_category)aks_resource_id(obrigatório): ID do recurso do cluster AKSdetector_name(obrigatório para a operaçãorun): Nome do detector a ser executadocategory(obrigatório para a operaçãorun_by_category): Categoria do detectorstart_time(obrigatório para as operaçõesrunerun_by_category): Hora de início no formato ISO UTC (dentro dos últimos 30 dias)end_time(obrigatório para as operaçõesrunerun_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 filtroreport: 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 leiturakubectl_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 clusteris_deployed: Verificar status da implantaçãorun: Executar gadgets de uso únicostart: Iniciar gadgets contínuosstop: Parar gadgets em execuçãoget_results: Recuperar resultados de gadgetslist_gadgets: Listar gadgets disponíveis
Gadgets disponíveis:
observe_dns: Monitorar solicitações e respostas de DNSobserve_tcp: Monitorar conexões TCPobserve_file_open: Monitorar operações do sistema de arquivosobserve_process_execution: Monitorar execução de processosobserve_signal: Monitorar entrega de sinaisobserve_system_calls: Monitorar chamadas de sistematop_file: Principais arquivos por operações de I/Otop_tcp: Principais conexões TCP por tráfegotcpdump: Capturar pacotes de rede
Como instalar
Pré-requisitos
-
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
- Abra o VS Code e vá para Extensões (
Ctrl+Shift+Xno Windows/Linux ouCmd+Shift+Xno macOS). - Pesquise por Azure Kubernetes Service.
- Instale a extensão oficial do AKS da Microsoft.
Passo 2: Inicie o Servidor AKS-MCP
- Abra a Paleta de Comandos (
Ctrl+Shift+Pno Windows/Linux ouCmd+Shift+Pno macOS). - 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:
| Plataforma | Arquitetura | Link de Download |
|---|---|---|
| Windows | AMD64 | 📥 aks-mcp-windows-amd64.exe |
| ARM64 | 📥 aks-mcp-windows-arm64.exe | |
| macOS | Intel (AMD64) | 📥 aks-mcp-darwin-amd64 |
| Apple Silicon (ARM64) | 📥 aks-mcp-darwin-arm64 | |
| Linux | AMD64 | 📥 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:
- Abra as Configurações do VS Code (Ctrl+, ou Cmd+,)
- Pesquise por "mcp" nas configurações
- 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
- 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.
- Abra o GitHub Copilot no VS Code e mude para o modo Agente
- Clique no botão Ferramentas ou execute /list na janela do GitHub Copilot para ver a lista de ferramentas disponíveis
- Você deve ver as ferramentas do AKS-MCP na lista
- Experimente um prompt como: "Listar todos os meus clusters AKS na assinatura xxx"
- 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:
- Baixe a versão mais recente na página de releases
- Extraia o binário para o local de sua preferência
- Torne-o executável (em sistemas Unix):
chmod +x aks-mcp - 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 comotruepara usar ferramentas especializadas legadas em vez de ferramentas unificadas (padrão:false)false(padrão): Usacall_azpara operações do Azure ecall_kubectlpara operações do Kubernetestrue: Usa ferramentas legadas comoaz_aks_operations,az_compute_operationse 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.xinstalado 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.xou posterior
Nota: Se o seu shell de login for diferente (por exemplo,
zshno macOS), você não precisa alterá-lo — o Makefile define variáveis para executar todas as receitas embashpara 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
- Pré-requisitos: Go ≥ 1.24.x, Azure CLI, Git
- Configuração: Faça um fork do repositório, clone localmente, execute
make deps && make build - Teste: Execute
make testemake check - 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.