Connettere il cluster del servizio Azure Kubernetes agli agenti di intelligenza artificiale usando il server MCP (Model Context Protocol)

Il server MCP (Model Context Protocol) del servizio Azure Kubernetes consente agli assistenti di intelligenza artificiale di interagire con i cluster del servizio Azure Kubernetes con chiarezza, sicurezza e controllo. Funge da ponte tra gli strumenti di intelligenza artificiale (ad esempio GitHub Copilot, Claude e altri assistenti di intelligenza artificiale compatibili con MCP) e il servizio Azure Kubernetes, traducendo le richieste in linguaggio naturale nelle operazioni del servizio Azure Kubernetes e restituendo i risultati in un formato comprensibile degli strumenti di intelligenza artificiale.

Il server MCP del servizio Azure Kubernetes si connette ad Azure usando Azure SDK e fornisce un set di strumenti che gli assistenti di intelligenza artificiale possono usare per interagire con le risorse del servizio Azure Kubernetes. Questi strumenti consentono agli agenti di intelligenza artificiale di eseguire attività come:

  • Risoluzione dei problemi e diagnostica
  • Analizzare lo stato di salute del cluster
  • Operare le risorse AKS (CRUD)
  • Ottenere i dettagli correlati ai cluster AKS (reti virtuali, subnet, gruppi di sicurezza di rete (NSG), tabelle di routing, ecc.).
  • Abilitazione delle procedure consigliate e delle funzionalità consigliate
  • Gestire le operazioni della flotta di Azure per scenari multi-cluster

Il server MCP di AKS è un progetto completamente open source. Per il codice sorgente e le versioni, vedere il repository GitHub di AKS MCP.

Quando usare il server MCP di AKS (Azure Kubernetes Service)

Il server MCP di AKS può essere utilizzato con qualsiasi assistente di intelligenza artificiale compatibile, inclusa la CLI agente per AKS e Microsoft Copilot. I casi d'uso comuni includono:

  • Porre domande sugli assistenti di intelligenza artificiale, ad esempio:
    • "Perché i pod sono in sospeso in questo cluster?"
    • Qual è la configurazione di rete del mio cluster AKS?
    • "Creare un posizionamento per distribuire carichi di lavoro nginx nei cluster con l'etichetta app=frontend".
  • Consentire agli strumenti di intelligenza artificiale di:
    • Leggere lo stato e la configurazione del cluster
    • Esaminare metriche, eventi e log
    • Correlare i segnali tra Kubernetes e le risorse di Azure
    • Applicare le modifiche e abilitare nuove funzionalità direttamente nel cluster

Tutte le azioni eseguite tramite il server MCP di AKS sono vincolate da Kubernetes Role-Based Controllo di accesso (RBAC) e Azure RBAC. Il server MCP di AKS eredita le tue autorizzazioni quando accede al cluster e alle risorse Azure.

Strumenti disponibili

Il server MCP del servizio Azure Kubernetes offre un set completo di strumenti per interagire con i cluster del servizio Azure Kubernetes e le risorse associate. Per impostazione predefinita, il server usa strumenti unificati (call_az per le operazioni di Azure e call_kubectl per le operazioni Kubernetes) che offrono un'interfaccia più flessibile per interagire con Kubernetes e le risorse di Azure.

Sono disponibili tre set di autorizzazioni che è possibile abilitare per il server MCP del servizio Azure Kubernetes: sola lettura (impostazione predefinita), lettura/scrittura e amministratore. Alcuni strumenti richiedono autorizzazioni di lettura/scrittura o amministratore per eseguire azioni come la distribuzione di pod di debug o azioni CRUD nel cluster. Per abilitare le autorizzazioni di lettura/scrittura o amministratore per il server AKS-MCP, aggiungere il parametro del livello di accesso al file di configurazione MCP:

  1. Passare al file mcp.json oppure passare a MCP: Elenca server -> AKS-MCP -> Mostra dettagli di configurazione nel riquadro comandi (per VS Code; Ctrl+Shift+P in Windows/Linux o Cmd+Shift+P in macOS).
  2. Nella sezione "args" di AKS-MCP aggiungere i parametri seguenti: "--access-level", "readwrite" o "admin"

Per esempio:

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

Questi strumenti sono progettati per offrire funzionalità complete tramite interfacce unificate:

Operazioni dell'interfaccia della riga di comando di Azure (strumento unificato)

Strumento:call_az

Strumento unificato per l'esecuzione diretta dei comandi dell'interfaccia della riga di comando di Azure. Questo strumento fornisce un'interfaccia flessibile per eseguire qualsiasi comando dell'interfaccia della riga di comando di Azure.

Parametri:

  • cli_command: comando completo della CLI di Azure da eseguire. Ad esempio, az aks list --resource-group myRG o az vm list --subscription <sub-id>.
  • timeout: timeout opzionale in secondi (valore predefinito: 120)

Esempio di utilizzo:

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

Controllo di accesso:

  • readonly: sono consentite solo operazioni di lettura
  • readwrite/admin: sono consentite operazioni di lettura e scrittura

Importante

I comandi devono essere semplici chiamate dell'interfaccia della riga di comando di Azure senza funzionalità della shell come pipe (|), reindirizzamenti (>, <), sostituzione dei comandi o punto e virgola (;).

Operazioni Kubernetes (strumento unificato)

Strumento kubectl unificato

Strumento:call_kubectl

Strumento unificato per l'esecuzione diretta di comandi kubectl. Questo strumento fornisce un'interfaccia flessibile per eseguire qualsiasi kubectl comando con supporto completo degli argomenti.

Parametri:

  • args: argomenti del comando kubectl. Ad esempio, get pods, describe node mynode o apply -f deployment.yaml.

Esempio di utilizzo:

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

Controllo di accesso: Le operazioni sono limitate in base al livello di accesso configurato:

  • readonly: sono consentite solo operazioni di lettura (get, describe, logs e così via)
  • readwrite/admin: tutte le operazioni, inclusi i comandi di modifica (creazione, eliminazione, applicazione e così via)

Helm

Strumento:call_helm

Gestione pacchetti Helm per Kubernetes.

Cilium

Strumento:call_cilium

Interfaccia della riga di comando di Cilium per la sicurezza e la rete basata su eBPF.

Hubble

Strumento:call_hubble

Osservabilità della rete hubble per Cilium.

Gestione risorse di rete

Strumento:aks_network_resources

Strumento unificato per ottenere informazioni sulle risorse di rete di Azure usate dai cluster di AKS.

Tipi di risorse disponibili:

  • all: ottenere informazioni su tutte le risorse di rete
  • vnet: informazioni sulla rete virtuale
  • subnet: informazioni sulla subrete
  • nsg: informazioni sul gruppo di sicurezza di rete
  • route_table: informazioni sulla tabella di routing
  • load_balancer: informazioni sul servizio di bilanciamento del carico
  • private_endpoint: informazioni sull'endpoint privato
Monitoraggio e diagnostica

Strumento:aks_monitoring

Strumento unificato per le operazioni di monitoraggio e diagnostica di Azure per i cluster AKS.

Operazioni disponibili:

  • metrics: elencare i valori delle metriche per le risorse
  • resource_health: ottenere gli eventi di integrità delle risorse per i cluster AKS
  • app_insights: eseguire query KQL sui dati di telemetria di Application Insights
  • diagnostics: Controllare se il cluster AKS ha impostazioni diagnostiche configurate
  • control_plane_logs: eseguire query sui log del piano di controllo AKS con vincoli di sicurezza e convalida dell'intervallo temporale
Risorse di calcolo

Strumento:get_aks_vmss_info

  • Ottenere una configurazione dettagliata dei Set di Scalabilità delle Macchine Virtuali (pool di nodi) nel cluster AKS.
Gestione della flotta

Strumento:az_fleet

Gestione completa della flotta di Azure per scenari multi-cluster.

Operazioni disponibili:

  • Operazioni della flotta: list, show, create, update, delete, ottieni credenziali
  • Operazioni del membro: elenca, mostra, crea, aggiorna, elimina
  • Aggiornare le operazioni di esecuzione: elenco, visualizzazione, creazione, avvio, arresto, eliminazione
  • Operazioni di strategia di aggiornamento: elenco, visualizzazione, creazione, eliminazione
  • Operazioni ClusterResourcePlacement: elencare, mostrare, ottenere, creare, eliminare

Supporta sia la gestione della flotta di Azure che le operazioni CRD di Kubernetes ClusterResourcePlacement.

Rilevatori di diagnostica

Strumento:aks_detector

Strumento unificato per eseguire operazioni del detector diagnostico AKS.

Operazioni disponibili:

  • list: elenca tutti i rilevatori di cluster AKS disponibili
  • run: eseguire un detettore diagnostico specifico per AKS
  • run_by_category: eseguire tutti i rilevatori in una categoria specifica

Parametri:

  • operation (obbligatorio): operazione da eseguire (list, runo run_by_category)
  • aks_resource_id (obbligatorio): ID risorsa cluster del servizio Azure Kubernetes
  • detector_name (obbligatorio per run l'operazione): nome del rilevatore da eseguire
  • category (necessario per l'operazione di run_by_category): categoria rilevatore
  • start_time (obbligatorio per run le operazioni e run_by_category ): ora di inizio in formato ISO UTC (negli ultimi 30 giorni)
  • end_time (obbligatorio per run le operazioni e run_by_category ): ora di fine in formato ISO UTC (negli ultimi 30 giorni, massimo 24 ore dall'inizio)

Categorie disponibili:

  • Migliori pratiche
  • Disponibilità e prestazioni del piano di controllo e del cluster
  • Problemi di connettività
  • Creare, aggiornare, eliminare e ridimensionare
  • Elementi deprecati
  • Identità e sicurezza
  • Integrità nodo
  • Storage

Esempio di utilizzo:

Strumento: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

Strumento:aks_advisor_recommendation

Recuperare e gestire i consigli di Azure Advisor per i cluster AKS.

Operazioni disponibili:

  • list: elencare le raccomandazioni con le opzioni di filtro
  • report: Generare rapporti di raccomandazione
  • Opzioni filtro: resource_group, cluster_names, categoria (Costo, HighAvailability, Prestazioni, Sicurezza), gravità (Alto, Medio, Basso)
Osservabilità in tempo reale

Strumento:inspektor_gadget_observability

Strumento di osservabilità in tempo reale per i cluster del servizio Azure Kubernetes usando eBPF.

Azioni disponibili:

  • deploy: distribuire Inspektor Gadget nel cluster
  • undeploy: Rimuovere l'ispettore Gadget dal cluster
  • is_deployed: controllare lo stato della distribuzione
  • run: eseguire gadget a singolo uso
  • start: avviare gadget continui
  • stop: arresta l'esecuzione di widget
  • get_results: recuperare i risultati dei gadget
  • list_gadgets: Elenca i gadget disponibili

Gadget disponibili:

  • observe_dns: monitorare le richieste e le risposte DNS
  • observe_tcp: monitorare le connessioni TCP
  • observe_file_open: monitorare le operazioni del file system
  • observe_process_execution: monitorare l'esecuzione del processo
  • observe_signal: monitorare il recapito dei segnali
  • observe_system_calls: monitorare le chiamate di sistema
  • top_file: file principali per operazioni di I/O
  • top_tcp: connessioni TCP principali per traffico
  • tcpdump: Acquisizione di pacchetti di rete

Introduzione al server MCP di AKS

Il server MCP viene eseguito nel computer locale e si connette ad AKS usando le autorizzazioni esistenti. È possibile configurare rapidamente l'agente di intelligenza artificiale locale con competenze e strumenti per AKS. Il server usa il contesto del cluster corrente e applica le autorizzazioni Kubernetes e Azure RBAC.

Annotazioni

A partire dalla versione 0.0.20, i deployment remoti con Helm o contenitori non sono supportati. Usa il binario locale.

Prerequisiti

Prima di installare il server MCP di AKS, configurare l'interfaccia della riga di comando di Azure ed eseguire l'autenticazione:

az login

Il modo più semplice per iniziare a usare AKS-MCP consiste nell'usare l'estensione del servizio Azure Kubernetes per VS Code. L'estensione del servizio Azure Kubernetes gestisce automaticamente i download binari, gli aggiornamenti e la configurazione, assicurandosi di avere sempre la versione più recente con impostazioni ottimali.

Passaggio 1: Installare l'estensione AKS

  1. Aprire VS Code e passare a Estensioni (Ctrl+Shift+X in Windows/Linux o Cmd+Shift+X in macOS).
  2. Cercare il servizio Azure Kubernetes.
  3. Installare l'estensione ufficiale Microsoft AKS.

Passaggio 2: Avviare il server AKS-MCP

  1. Aprire il riquadro comandi (Ctrl+Shift+P in Windows/Linux o Cmd+Shift+P in macOS).
  2. Cercare ed eseguire: AKS: Configurare il server MCP AKS.

Al termine dell'installazione, il server viene visualizzato in MCP: Elenco server (tramite Palette dei comandi). Da qui è possibile avviare il server MCP o visualizzarne lo stato.

Passaggio 3: Iniziare a usare AKS-MCP

Dopo l'avvio, il server MCP viene visualizzato nell'elenco a discesa Copilot Chat: Configure Tools in MCP Server: AKS MCP, pronto per migliorare le richieste contestuali in base al tuo ambiente AKS. Per impostazione predefinita, tutti gli strumenti server AKS-MCP sono abilitati. È possibile esaminare l'elenco degli strumenti disponibili e disabilitare qualsiasi elemento non necessario per lo scenario in uso.

Provare un prompt come "Elenca tutti i miei cluster AKS" per iniziare a usare gli strumenti dal server AKS-MCP.

Suggerimento

Configurazione WSL: se si usa VS Code in Windows con WSL, usare "command": "wsl" per richiamare il file binario WSL. Se VS Code è in esecuzione in WSL (Remote-WSL), chiamare direttamente il file binario o usare un wrapper bash.

Disinstallare il server AKS MCP

VS Code con estensione AKS (Azure Kubernetes Service)

  1. Aprire il riquadro comandi (Ctrl+Shift+P in Windows/Linux o Cmd+Shift+P in macOS).
  2. Eseguire MCP: Mostra Server.
  3. Selezionare AKS MCP dall'elenco.
  4. Selezionare Arresta server per arrestare il server in esecuzione.
  5. Per rimuovere la configurazione, selezionare Elimina configurazione server.

In alternativa, rimuovere manualmente la configurazione del server:

  1. Aprire il .vscode/mcp.json file o le impostazioni utente di VS Code.
  2. Eliminare l'aks-mcp-server elemento dall'oggetto servers o github.copilot.chat.mcp.servers.
  3. Eliminare il file binario AKS-MCP dal sistema (il percorso varia in base al metodo di installazione).

Altri clienti MCP

Rimuovere la voce aks o aks-mcp dal file di configurazione del client MCP, ad esempio Claude Desktop di claude_desktop_config.json.

Problemi comuni e risoluzione dei problemi

Questa sezione descrive i problemi comuni di installazione e runtime, i relativi sintomi e come risolverli.

Il server MCP del servizio Azure Kubernetes non può accedere al cluster

Sintomi:

  • Gli strumenti restituiscono errori di autorizzazione
  • Nessuna risorsa visibile

Cause probabili:

  • L'utente non dispone di autorizzazioni sufficienti
  • Contesto kubeconfig configurato in modo errato

Risoluzione:

  • Verificare di disporre di autorizzazioni sufficienti per accedere al cluster. Verificare di essere nel contesto corretto del cluster e della sottoscrizione.

Passaggi successivi

Altre informazioni sulle funzionalità intelligenti integrate in modo nativo per AKS:

  • Informazioni sulla CLI agente per il servizio Azure Kubernetes (AKS)
  • Installare e utilizzare l'agentic CLI per AKS