Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O servidor AKS Model Context Protocol (MCP) permite que assistentes de IA interajam com clusters Azure Kubernetes Service (AKS) com clareza, segurança e controlo. Serve como uma ponte entre ferramentas de IA (como GitHub Copilot, Claude e outros assistentes de IA compatíveis com MCP) e o AKS, traduzindo pedidos em linguagem natural para operações AKS e devolvendo os resultados num formato que as ferramentas de IA conseguem compreender.
O servidor MCP do AKS liga-se ao Azure usando o Azure SDK e fornece um conjunto de ferramentas que os assistentes de IA podem usar para interagir com os recursos do AKS. Estas ferramentas permitem aos agentes de IA realizar tarefas como:
- Resolução de problemas e diagnóstico
- Analise a saúde do seu cluster
- Operar recursos AKS (CRUD)
- Recuperar detalhes relacionados com clusters AKS (VNets, Sub-redes, Grupos de Segurança de Rede (NSGs), Tabelas de Rota, etc.)
- Permitir boas práticas e funcionalidades recomendadas
- Gerir operações Azure Fleet para cenários multi-cluster
O servidor AKS MCP é um projeto totalmente open-source, com modelos de exemplo e configurações Helm disponíveis no repositório GitHub.
Quando usar o servidor MCP do AKS
O servidor AKS MCP pode ser usado com qualquer assistente de IA compatível, incluindo a CLI agentic para AKS e a Microsoft Copilot. Os casos de uso comuns incluem:
- Fazer perguntas aos assistentes de IA como:
- "Porque é que as cápsulas estão pendentes neste aglomerado?"
- "Qual é a configuração de rede do meu cluster AKS?"
- "Criar um posicionamento para implementar cargas de trabalho nginx em clusters com app=etiqueta frontend."
- Permitir que as ferramentas de IA:
- Ler o estado e a configuração do cluster
- Inspecionar métricas, eventos e registos
- Correlacionar sinais entre Kubernetes e recursos Azure
- Aplique alterações e ative novas funcionalidades diretamente no seu cluster
Todas as ações realizadas através do servidor AKS MCP são limitadas pelo Kubernetes Role-Based Access Control (RBAC) e Azure RBAC. Por defeito, o servidor AKS MCP herda as permissões do utilizador ao aceder ao cluster e aos recursos Azure. Para personalizar os papéis e permissões do servidor AKS MCP, implemente o modo remoto de servidor AKS MCP com controlo RBAC incorporado.
Ferramentas disponíveis
O servidor AKS MCP fornece um conjunto abrangente de ferramentas para interagir com clusters AKS e recursos associados. Por defeito, o servidor utiliza ferramentas unificadas (call_az para as operações do Azure e call_kubectl para as operações do Kubernetes) que proporcionam uma interface mais flexível para interagir com Kubernetes e recursos do Azure.
Existem três conjuntos de permissões que pode ativar para o servidor AKS MCP: apenas leitura (por defeito), leitura-escrita e administrador. Algumas ferramentas requerem permissões de leitura-escrita ou de administrador para realizar ações como a implementação de pods de depuração ou ações CRUD no seu cluster. Para permitir permissões de leitura-escrita ou de administrador para o servidor AKS-MCP, adicione o parâmetro de nível de acesso ao seu ficheiro de configuração MCP:
- Navegue até ao seu ficheiro mcp.json, ou vá para MCP: Listar Servidores -> AKS-MCP -> Mostrar Detalhes de Configuração na Paleta de Comandos (para VS Code;
Ctrl+Shift+Pno Windows/Linux ouCmd+Shift+Pno macOS). - Na secção "args" do AKS-MCP, adicione os seguintes parâmetros: "--nível de acesso", "readwrite" ou "admin"
Por exemplo:
"args": [
"--transport",
"stdio",
"--access-level",
"readwrite"
]
Estas ferramentas foram concebidas para fornecer funcionalidades abrangentes através de interfaces unificadas:
Azure CLI Operations (Unified Tool)
Ferramenta:call_az
Ferramenta unificada para executar comandos Azure CLI diretamente. Esta ferramenta oferece uma interface flexível para executar qualquer comando Azure CLI.
Parâmetros:
-
cli_command: O comando completo do Azure CLI para executar. Por exemplo,az aks list --resource-group myRGouaz vm list --subscription <sub-id>. -
timeout: Tempo de espera opcional em segundos (padrão: 120)
Exemplo de Utilização:
{
"cli_command": "az aks list --resource-group myResourceGroup --output json"
}
Controlo de Acesso:
- readonly: Apenas operações de leitura são permitidas
- readwrite/admin: São permitidas tanto operações de leitura como de escrita
Importante
Os comandos devem ser invocações simples do Azure CLI sem características de shell como pipes (|), redirecionamentos (>, <), substituição de comandos ou pontos e vírgulas (;).
Kubernetes Operations (Ferramenta Unificada)
Ferramenta kubectl unificada
Ferramenta:call_kubectl
Ferramenta unificada para executar comandos kubectl diretamente. Esta ferramenta oferece uma interface flexível para executar qualquer kubectl comando com suporte total de argumentos.
Parâmetros:
-
args: Os argumentos do comando Kubectl. Por exemplo,get pods,describe node mynode, ouapply -f deployment.yaml.
Exemplo de Utilização:
{
"args": "get pods -n kube-system -o wide"
}
Controlo de Acesso: As operações são restringidas com base no nível de acesso configurado:
- readonly: Apenas operações de leitura (get, describe, logs, etc.) são permitidas
- readwrite/admin: Todas as operações, incluindo comandos de mutação (criar, eliminar, aplicar, etc.)
Leme
Ferramenta:call_helm
Gestor de pacotes Helm para Kubernetes.
Cilium
Ferramenta:call_cilium
CLI Cilium para redes e segurança baseadas em eBPF.
Hubble
Ferramenta:call_hubble
Observabilidade da rede Hubble para Cilium.
Gestão de Recursos de Rede
Ferramenta:aks_network_resources
Ferramenta unificada para obter informação de recursos de rede Azure usada por clusters AKS.
Tipos de Recursos Disponíveis:
-
all: Obter informações sobre todos os recursos da rede -
vnet: Informação da Rede Virtual -
subnet: Informação de sub-redes -
nsg: Informação do Network Security Group -
route_table: Informação da tabela de rotas -
load_balancer: Informação do Load Balancer -
private_endpoint: Informação privada do endpoint
Monitorização e Diagnóstico
Ferramenta:aks_monitoring
Ferramenta unificada para operações de monitorização e diagnóstico Azure para clusters AKS.
Operações Disponíveis:
-
metrics: Listar valores de métrica para recursos -
resource_health: Recuperar eventos de integridade dos recursos para clusters AKS -
app_insights: Executar consultas KQL com dados de telemetria do Application Insights -
diagnostics: Verifica se o cluster AKS tem definições de diagnóstico definidas -
control_plane_logs: Consulta aos registos do plano de controlo do AKS com restrições de segurança e validação de intervalo temporal
Recursos de Computação
Ferramenta:get_aks_vmss_info
- Obtenha uma configuração detalhada dos seus Conjuntos de Escala de Máquina Virtual (pools de nós) no cluster AKS
Gestão de Frotas
Ferramenta:az_fleet
Gestão abrangente de frotas Azure para cenários multi-cluster.
Operações Disponíveis:
- Operações de Frota: listar, mostrar, criar, atualizar, eliminar, obter credenciais
- Operações de Membros: listar, mostrar, criar, atualizar, eliminar
- Atualizar Operações de Execução: listar, mostrar, criar, iniciar, parar, eliminar
- Atualizar Operações de Estratégia: listar, mostrar, criar, eliminar
- ClusterResourcePlacement Operations: listar, mostrar, obter, criar, eliminar
Suporta tanto a gestão de frotas Azure como as operações do Kubernetes ClusterResourcePlacement CRD.
Detetores de Diagnóstico
Ferramenta:aks_detector
Ferramenta unificada para executar operações de detetor de diagnóstico AKS.
Operações Disponíveis:
-
list: Lista de todos os detectores de cluster AKS disponíveis -
run: Executar um detector de diagnóstico AKS específico -
run_by_category: Operar todos os detectores numa categoria específica
Parâmetros:
-
operation(obrigatório): Operação para executar (list,run, ourun_by_category) -
aks_resource_id(obrigatório): ID de recurso do cluster AKS -
detector_name(necessário pararunoperação): Nome do detector a operar -
category(necessário pararun_by_categoryoperação): Categoria do detetor -
start_time(necessário pararunerun_by_categoryoperações): Hora de início no formato UTC ISO (nos últimos 30 dias) -
end_time(obrigatório pararunerun_by_categoryoperações): Hora de término em formato UTC ISO (nos últimos 30 dias, máximo 24 horas desde o início)
Categorias Disponíveis:
- Melhores práticas
- Disponibilidade e Desempenho do Cluster e do Plano de Controlo
- Problemas de Conectividade
- Criar, Atualizar, Eliminar e Escalar
- Deprecações
- Identidade e Segurança
- Saúde dos Nós
- Armazenamento
Exemplo de Utilização:
Ferramenta:run_detectors_by_category
{
"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 gerir recomendações do Azure Advisor para clusters AKS.
Operações Disponíveis:
-
list: Lista recomendações com opções de filtragem -
report: Gerar relatórios de recomendação - Opções de Filtro: resource_group, cluster_names, categoria (Custo, Alta Disponibilidade, Desempenho, Segurança), Gravidade (Alta, Média, Baixa)
Observabilidade em tempo real
Ferramenta:inspektor_gadget_observability
Ferramenta de observabilidade em tempo real para clusters Azure Kubernetes Service (AKS) usando eBPF.
Ações Disponíveis:
-
deploy: Implantar o Inspektor Gadget para o cluster -
undeploy: Remover o Inspetor Gadget do cluster -
is_deployed: Verificar o estado da implantação -
run: Executar gadgets de um só tiro -
start: Iniciar dispositivos contínuos -
stop: Parem de executar os dispositivos -
get_results: Recuperar resultados do gadget -
list_gadgets: Lista de gadgets disponíveis
Gadgets Disponíveis:
-
observe_dns: Monitorizar pedidos e respostas DNS -
observe_tcp: Monitorizar as ligações TCP -
observe_file_open: Monitorizar as operações do sistema de ficheiros -
observe_process_execution: Monitorizar a execução do processo -
observe_signal: Monitorizar a entrega do sinal -
observe_system_calls: Monitorizar chamadas de sistema -
top_file: Principais ficheiros por operações de E/S -
top_tcp: Principais ligações TCP por tráfego -
tcpdump: Capturar pacotes de rede
Começar com o servidor AKS MCP
O servidor AKS MCP tem dois modos: local e remoto. Nesta secção, abordamos os casos de uso e processos de instalação para ambos os modos.
Servidor MCP local
No modo local, o servidor MCP corre na máquina local do programador e liga-se ao AKS usando as permissões existentes do programador. Este modo é ideal para configurar rapidamente o seu agente de IA local com conhecimentos e ferramentas em AKS, sem necessidade de componentes adicionais no cluster. O modo local pode usar o contexto atual do cluster e aplicar as permissões Kubernetes e Azure RBAC do programador. Por defeito, o servidor local AKS MCP suporta os modos de transporte STDIO e SSE.
Pré-requisitos
Antes de instalar o servidor AKS MCP, configure o Azure CLI e autentique:
az login
- Visual Studio Code com GitHub Copilot (Recomendado)
- Instalação Manual de Arquivos Binários
- Docker
- Instalação Personalizada de Cliente
A forma mais fácil de começar com AKS-MCP é através da Extensão de Serviço Azure Kubernetes para VS Code. A extensão AKS gere automaticamente downloads binários, atualizações e configurações, garantindo que tem sempre a versão mais recente com as definições ótimas.
Passo 1: Instalar a extensão AKS
- Abre o VS Code e vai a Extensões (
Ctrl+Shift+Xno Windows/Linux ouCmd+Shift+Xno macOS). - Pesquisar por Azure Kubernetes Service.
- Instala a extensão oficial Microsoft AKS.
Passo 2: Iniciar o AKS-MCP Server
- Abra a paleta de comandos (
Ctrl+Shift+Pno Windows/Linux ouCmd+Shift+Pno macOS). - Pesquisar e executar: AKS: Configurar o servidor AKS MCP.
Após a instalação bem-sucedida, o servidor aparece em MCP: List Servers (via Command Palette). A partir daí, podes iniciar o servidor MCP ou ver o seu estado.
Passo 3: Começar a usar AKS-MCP
Uma vez iniciado, o servidor MCP aparece no menu suspenso Copilot Chat: Configure Tools em MCP Server: AKS MCP, pronto para melhorar prompts contextuais com base no seu ambiente AKS. Por defeito, todas as ferramentas de servidor AKS-MCP estão ativadas. Podes rever a lista de ferramentas disponíveis e desativar as que não são necessárias para o teu cenário.
Experimenta um prompt como "Lista todos os meus clusters AKS" para começares a usar ferramentas do servidor AKS-MCP.
Sugestão
Configuração WSL: Se estiver a usar VS Code no Windows com WSL, use "command": "wsl" para invocar o binário WSL. Se o VS Code estiver a correr dentro do WSL (Remote-WSL), chame diretamente o binário ou use um wrapper bash em vez disso.
Servidor MCP remoto
Em modo remoto, o servidor MCP corre como uma carga de trabalho dentro do cluster AKS ou em qualquer computação à sua escolha. Este modo é ideal para ambientes de produção com ferramentas partilhadas, permissões consistentes entre utilizadores e controlo total de acesso usando o Kubernetes ServiceAccount e Workload Identity. O servidor remoto AKS MCP utiliza o protocolo HTTP para facilitar as interações entre o seu assistente de IA e o cluster AKS.
Pré-requisitos
- Cluster AKS utilizando Kubernetes 1.19+
- Helm 3.8+
- Azure CLI instalado e autenticado (
az login)
Instalar com o Helm chart
Clone o repositório e instale o gráfico AKS-MCP Helm:
git clone https://github.com/Azure/aks-mcp.git
cd aks-mcp/chart
helm install aks-mcp . --namespace aks-mcp --create-namespace
Para a lista completa de parâmetros de configuração, consulte a documentação do Helm chart.
Configurar a autenticação
Escolha um método de autenticação com base no seu ambiente e nos requisitos de segurança:
- Identidade da Carga de Trabalho (Recomendado)
- OAuth para acesso de leitura e escrita
- Principal de Serviço com Segredo Existente
- Credenciais Diretas
A Identidade de Carga de Trabalho fornece autenticação sem palavra-passe ao ligar uma Conta de Serviço Kubernetes a uma Identidade Gerida Azure.
1. Ativar o OIDC no seu cluster AKS
az aks update \
--resource-group <your-resource-group> \
--name <your-aks-cluster> \
--enable-oidc-issuer \
--enable-workload-identity
2. Criar uma Identidade Gerida e atribuir permissões RBAC
# Create identity
az identity create --resource-group <your-resource-group> --name aks-mcp-identity --location <your-location>
# Get IDs
IDENTITY_CLIENT_ID=$(az identity show --resource-group <your-resource-group> --name aks-mcp-identity --query "clientId" -o tsv)
IDENTITY_PRINCIPAL_ID=$(az identity show --resource-group <your-resource-group> --name aks-mcp-identity --query "principalId" -o tsv)
# Assign Reader role (use Contributor for readwrite access)
az role assignment create --role "Reader" --assignee-object-id $IDENTITY_PRINCIPAL_ID --assignee-principal-type ServicePrincipal --scope "/subscriptions/<subscription-id>"
3. Criar uma credencial de identidade federada
AKS_OIDC_ISSUER=$(az aks show --resource-group <your-resource-group> --name <your-aks-cluster> --query "oidcIssuerProfile.issuerUrl" -o tsv)
az identity federated-credential create \
--name "aks-mcp-federated-credential" \
--identity-name aks-mcp-identity \
--resource-group <your-resource-group> \
--issuer $AKS_OIDC_ISSUER \
--subject "system:serviceaccount:aks-mcp:aks-mcp" \
--audience api://AzureADTokenExchange
Importante
Crie a credencial federada antes de instalar o Helm chart.
4. Instalar com Identidade de Carga de Trabalho ativada
helm install aks-mcp . \
--namespace aks-mcp \
--create-namespace \
--set workloadIdentity.enabled=true \
--set azure.clientId=$IDENTITY_CLIENT_ID \
--set azure.subscriptionId=<your-subscription-id>
Ativar o Ingress com o Azure App Routing
Expor o servidor MCP externamente usando Azure App Routing:
# Enable App Routing on your cluster
az aks approuting enable --resource-group <your-resource-group> --name <your-cluster-name>
# Install with Ingress enabled
helm install aks-mcp . \
--namespace aks-mcp \
--create-namespace \
--set ingress.enabled=true \
--set ingress.hosts[0].host=aks-mcp.example.com \
--set ingress.hosts[0].paths[0].path=/ \
--set ingress.hosts[0].paths[0].pathType=Prefix \
--set azure.existingSecret=azure-credentials
Ligue o seu cliente MCP
Após a implementação, ligue o seu assistente de IA ao servidor MCP remoto:
# Port forward for local testing
kubectl port-forward svc/aks-mcp 8000:8000 -n aks-mcp
Configure o seu cliente MCP para se ligar:
{
"mcpServers": {
"aks-mcp": {
"url": "http://localhost:8000",
"transport": "streamable-http"
}
}
}
Para acesso dentro do cluster, utilize: http://aks-mcp.aks-mcp.svc.cluster.local:8000
Referência de configuração do Helm
| Parâmetro | Description | Predefinido |
|---|---|---|
workloadIdentity.enabled |
Ativar Identidade de Carga de Trabalho do Azure | false |
azure.clientId |
Azure Client ID | "" |
azure.tenantId |
ID do Locatário do Azure | "" |
azure.clientSecret |
Segredo do Cliente Azure | "" |
azure.subscriptionId |
ID da Subscrição do Azure | "" |
azure.existingSecret |
Usar um segredo Kubernetes existente | "" |
app.accessLevel |
Nível de acesso: readonly, readwrite, admin |
readonly |
app.transport |
Transporte: stdio, sse, streamable-http |
streamable-http |
oauth.enabled |
Ativar autenticação OAuth | false |
ingress.enabled |
Ativar Ingress | false |
Desinstalar o servidor MCP do AKS
O processo de desinstalar o servidor MCP do AKS depende do modo de implementação e de onde está a correr atualmente.
Código VS com extensão AKS
- Abra a paleta de comandos (
Ctrl+Shift+Pno Windows/Linux ouCmd+Shift+Pno macOS). - Executa MCP: Servidores de Listas.
- Selecione o AKS MCP da lista.
- Seleciona Parar Servidor para parar o servidor em execução.
- Para remover a configuração, selecione Eliminar Configuração do Servidor.
Em alternativa, remova manualmente a configuração do servidor:
- Abra o seu
.vscode/mcp.jsonficheiro ou as Definições de Utilizador do VS Code. - Apaga a entrada do
aks-mcp-serverdo objetoserversougithub.copilot.chat.mcp.servers. - Apaga o AKS-MCP binário do teu sistema (a localização varia consoante o método de instalação).
Docker
Se estiver a usar o Docker MCP Toolkit:
- Abre o Docker Desktop.
- Selecione MCP Toolkit na barra lateral esquerda.
- Encontra o servidor AKS-MCP e desativa-o.
Se usar uma configuração containerizada, pare e remova o contentor:
docker stop <container-id>
docker rm <container-id>
Outros Clientes MCP
Remova a entrada aks ou aks-mcp do ficheiro de configuração do cliente MCP (por exemplo, Claude Desktop claude_desktop_config.json).
Problemas comuns e resolução de problemas
Esta secção descreve problemas comuns de configuração e execução, os seus sintomas e como os resolver.
O servidor MCP do AKS não consegue aceder ao cluster
Sintomas:
- As ferramentas devolvem erros de autorização
- Não há recursos visíveis
Causas prováveis:
- A identidade do utilizador ou MCP não tem permissões suficientes
- Vinculação incorreta da ServiceAccount
- Contexto kubeconfig mal configurado (modo local)
Resolução:
- Modo local: Verifique se tem permissões suficientes para aceder ao cluster. Verifica se estás no cluster e contexto de subscrição certos.
- Modo remoto: Verificar as ligações ClusterRole para a ServiceAccount usada pelo servidor MCP
As chamadas da API do Azure falham.
Sintomas:
- As ferramentas "call_az" devolvem erros de autenticação ou autorização.
Causas prováveis:
- Identidade de Workload não ativada para o seu cluster
- ServiceAccount não federada
- Faltam as atribuições "Azure RBAC"
Resolução:
- Verifique se a Identidade da Carga de Trabalho está ativada no seu cluster
- Verificar configuração de identidade federada
- Atribuir papéis Azure apropriados à identidade gerida
Próximos passos
Saiba mais sobre as funcionalidades inteligentes criadas nativamente para AKS:
- Sobre a CLI agencial para AKS
- Instale e use a CLI agente para AKS