Condividi tramite


Concetti relativi al server MCP di Azure

Questo articolo illustra i concetti essenziali per l'uso efficace del server MCP di Azure, tra cui come usare più servizi di Azure, gestire errori, ottimizzare le prestazioni e applicare modelli comuni per scenari reali.

Flussi di lavoro multiservizio

Il server MCP di Azure può orchestrare le operazioni tra più servizi di Azure in un'unica conversazione o flusso di lavoro. Questa funzionalità consente di concatenare le operazioni tra servizi come Archiviazione di Azure, Azure Cosmos DB e Azure Key Vault senza cambiare contesto.

Modalità server per operazioni multiservizio

Il server MCP di Azure supporta diverse modalità che influiscono sulla modalità di esposizione degli strumenti e sul modo in cui si interagisce con più servizi:

Modalità Namespace (predefinita)

La modalità spazio dei nomi raggruppa gli strumenti per servizio Azure, esponendo uno strumento per ogni namespace del servizio. Questa modalità offre un approccio bilanciato per i flussi di lavoro multiservizio.

{
  "mcpServers": {
    "Azure MCP Server": {
      "command": "npx",
      "args": ["-y", "@azure/mcp@latest", "server", "start"]
    }
  }
}

Con la modalità "namespace", è possibile effettuare richieste come:

  • "Elencare gli account di archiviazione e quindi visualizzare i contenitori nel primo account"
  • Ottieni segreti dal Key Vault e usali per collegarti al database Cosmos DB

La modalità consolidata raggruppa le operazioni correlate in strumenti curati ottimizzati per gli agenti di intelligenza artificiale. Questa modalità offre il miglior equilibrio tra funzionalità e usabilità.

{
  "mcpServers": {
    "Azure MCP Server": {
      "command": "npx",
      "args": ["-y", "@azure/mcp@latest", "server", "start", "--mode", "consolidated"]
    }
  }
}

Gli strumenti consolidati sono denominati in base alle finalità dell'utente, ad esempio get_azure_databases_details, rendendoli più intuitivi per le interazioni in linguaggio naturale.

Per un elenco completo delle modalità server disponibili e delle relative configurazioni, vedere la guida alla risoluzione dei problemi.

Tutte le modalità

La all modalità espone separatamente 200 singoli strumenti. Questa modalità è utile quando è necessario un controllo granulare, ma può superare i limiti degli strumenti in alcuni client.

{
  "mcpServers": {
    "Azure MCP Server": {
      "command": "npx",
      "args": ["-y", "@azure/mcp@latest", "server", "start", "--mode", "all"]
    }
  }
}

Concatenamento delle operazioni tra servizi

È possibile concatenare le operazioni tra più servizi di Azure in una singola conversazione. Ad esempio, puoi:

  1. Interrogare Azure Key Vault per le credenziali del database
  2. Usare queste credenziali per connettersi ad Azure Cosmos DB
  3. Interrogare i dati di Cosmos DB
  4. Archiviare i risultati in Archiviazione di Azure

Esempi di prompt che concatenano operazioni tra i servizi includono:

  • Ottenere la stringa di connessione del database dall'Azure Key Vault 'my-vault', connettersi al database e visualizzare le collezioni.
  • "Elencare tutti gli account di archiviazione nella sottoscrizione, quindi per ogni account vengono visualizzati i contenitori"
  • "Creare un nuovo contenitore di archiviazione e caricare il segreto del mio archivio chiavi in un blob"

Filtro degli strumenti in base al servizio

È possibile configurare il server MCP di Azure per esporre solo servizi specifici usando l'opzione --namespace . Questo approccio è utile per i flussi di lavoro incentrati o quando si usano più istanze del server MCP.

{
  "mcpServers": {
    "Azure Storage": {
      "command": "npx",
      "args": ["-y", "@azure/mcp@latest", "server", "start", "--namespace", "storage"]
    },
    "Azure KeyVault": {
      "command": "npx",
      "args": ["-y", "@azure/mcp@latest", "server", "start", "--namespace", "keyvault"]
    }
  }
}

Questa configurazione crea istanze del server MCP separate per Archiviazione e Key Vault, consentendo di organizzare gli strumenti in base ai requisiti del dominio o del progetto.

Gestione degli errori e logica di ripetizione

Il server MCP di Azure gestisce vari scenari di errore che possono verificarsi durante l'interazione con i servizi di Azure. Comprendere questi modelli consente di risolvere i problemi e creare flussi di lavoro resilienti.

Errori di autenticazione

L'autenticazione è un'origine comune di errori durante l'uso delle risorse di Azure.

401 Errori non autorizzati

Un errore 401 indica che il token di accesso non è valido o mancante. Questo errore può verificarsi quando:

  • L'autorizzazione locale (chiavi di accesso) è disabilitata nella risorsa
  • Il token di autenticazione è scaduto
  • Non sono disponibili credenziali valide

Approcci di risoluzione:

  • Verificare di essere autenticati in Azure usando az login o il metodo di autenticazione preferito
  • Verificare che la risorsa consenta il metodo di autenticazione in uso
  • Per le risorse con chiavi di accesso disabilitate, assicurarsi di avere le appropriate autorizzazioni di controllo degli accessi basato sul ruolo.

403 Errori non consentiti

Un errore 403 indica che l'utente autenticato non dispone di autorizzazioni sufficienti per accedere alla risorsa richiesta.

Cause comuni:

  • Autorizzazioni RBAC mancanti a livello di gruppo di risorse o sottoscrizione
  • Ambiente di sottoscrizione o tenant errato
  • Uso di un account non intenzionato quando ci si è connessi a più account

Approcci di risoluzione:

  • Verificare che le autorizzazioni RBAC siano assegnate allo scopo appropriato
  • Specificare esplicitamente la sottoscrizione e il tenant nelle istruzioni: "Elenca tutti i miei account di archiviazione nella sottoscrizione subscription-name, situata nel tenant tenant-name"
  • Impostare la AZURE_MCP_ONLY_USE_BROKER_CREDENTIAL variabile di ambiente su true per richiedere la selezione dell'account

Restrizioni di rete e firewall

Gli ambienti aziendali hanno spesso controlli di rete che possono influire sulla connettività del server MCP di Azure.

Endpoint necessari per l'autenticazione:

  • login.microsoftonline.com:443
  • login.windows.net:443
  • management.azure.com:443
  • graph.microsoft.com:443

Gli endpoint specifici delle risorse dipendono dai servizi di Azure in uso, ad esempio:

  • Archiviazione di Azure: *.blob.core.windows.net:443
  • Azure Key Vault: *.vault.azure.net:443
  • Azure Cosmos DB: *.documents.azure.com:443

Se si è dietro un proxy aziendale, configurare le impostazioni proxy usando le variabili di ambiente:

export HTTP_PROXY=http://proxy.company.com:8080
export HTTPS_PROXY=http://proxy.company.com:8080
export NO_PROXY=localhost,127.0.0.1

Errori temporanei

Il server MCP di Azure si basa sugli SDK di Azure, che hanno una logica di ripetizione dei tentativi predefinita per gli errori temporanei. Questi SDK gestiscono automaticamente:

  • Problemi relativi alla connettività di rete
  • Limitazione dei servizi e limiti di frequenza
  • Indisponibilità temporanea del servizio

Le politiche di ritentativo usano il backoff esponenziale per evitare di sovraccaricare i servizi durante scenari con carico elevato o incidenti.

Messaggi di errore e diagnostica

Quando si verificano errori, il server MCP di Azure fornisce messaggi di errore dettagliati che consentono di comprendere e risolvere i problemi. Per indicazioni complete sulla risoluzione dei problemi, vedere la guida alla risoluzione dei problemi.

Suggerimenti per l'ottimizzazione

L'ottimizzazione della configurazione del server MCP di Azure migliora le prestazioni, riduce l'utilizzo dei token e migliora l'esperienza utente.

Gestione dei conteggi degli strumenti

Alcuni client MCP hanno limiti al numero di strumenti che possono gestire. Ad esempio, Visual Studio Code Copilot ha un limite di 128 strumenti per ogni richiesta.

Usare la modalità consolidata

La modalità consolidata offre funzionalità complete pur rimanendo ben al di sotto dei limiti degli strumenti client:

{
  "mcpServers": {
    "Azure MCP": {
      "command": "npx",
      "args": ["-y", "@azure/mcp@latest", "server", "start", "--mode", "consolidated"]
    }
  }
}

Questa configurazione espone strumenti curati che raggruppano le operazioni correlate, ottimizzando sia la funzionalità che l'efficacia dell'agente di intelligenza artificiale.

Usare il caricamento selettivo degli strumenti

Caricare solo gli strumenti necessari per il flusso di lavoro specifico:

{
  "mcpServers": {
    "Azure Essentials": {
      "command": "npx",
      "args": [
        "-y",
        "@azure/mcp@latest",
        "server",
        "start",
        "--tool",
        "azmcp_subscription_list",
        "--tool",
        "azmcp_group_list",
        "--tool",
        "azmcp_storage_account_get"
      ]
    }
  }
}

Usare le modalità di chat personalizzate

Visual Studio Code supporta modalità di chat personalizzate che consentono di configurare set di strumenti diversi per diversi scenari. Questo approccio consente di passare da una configurazione degli strumenti all'altra in base all'attività corrente pur rimanendo entro i limiti del client.

Gestione di token

La gestione efficace dei token migliora i tempi di risposta e riduce i costi quando si usano modelli linguistici.

Usare richieste specifiche

Richieste specifiche riducono il numero di chiamate agli strumenti e la quantità di contesto necessaria:

Meno efficace:

  • "Informazioni sulle risorse di Azure"

Più efficace:

  • Elenca gli account di archiviazione nell'abbonamento 'my-subscription' nel gruppo di risorse 'my-rg'
  • "Mostra la stringa di connessione per l'account di archiviazione 'mystorageaccount'"

Definire appropriatamente le operazioni di ambito

Quando possibile, definire l'ambito delle operazioni per risorse o gruppi di risorse specifici anziché eseguire query su intere sottoscrizioni:

Meno efficiente:

  • "Elencare tutte le risorse nella sottoscrizione e filtrare per gli account di archiviazione"

Più efficiente:

  • "Elencare gli account di archiviazione nel gruppo di risorse 'production-rg'"

Operazioni batch

Il server MCP di Azure supporta le operazioni batch per determinati scenari. Quando si usano più risorse:

Operazioni sequenziali:

List storage accounts, then for each one show the containers

Operazioni parallele quando appropriato:

Get details for storage accounts 'account1', 'account2', and 'account3'

Il server MCP di Azure e gli SDK di Azure sottostanti gestiscono automaticamente l'invio in batch quando appropriato, ottimizzando le chiamate di rete e riducendo la latenza.

Memorizzazione nella cache e riutilizzo

Il server MCP di Azure mantiene lo stato di connessione durante una sessione. Per ottimizzare le prestazioni

  • Mantenere le istanze del server MCP in esecuzione anziché avviare e arrestare frequentemente
  • Riutilizzare le informazioni sulla sottoscrizione e sul gruppo di risorse nelle query successive
  • Memorizzare nella cache i dettagli delle risorse nel flusso di lavoro quando è necessario farvi riferimento più volte

Casi d'uso comuni

Il server MCP di Azure supporta un'ampia gamma di scenari reali. In questa sezione vengono forniti esempi di modelli e flussi di lavoro comuni.

Distribuzione di un nuovo servizio

Quando si distribuisce un nuovo servizio di Azure, è possibile usare il server MCP di Azure per automatizzare l'installazione e la configurazione dell'infrastruttura:

  1. Creare risorse e gruppi di risorse:

    Create a resource group called 'webapp-prod' in East US, 
    then create a storage account called 'webappdata' in that resource group
    
  2. Configurare le risorse:

    Get the storage account connection string and store it as a secret 
    in key vault 'webapp-kv' with name 'StorageConnectionString'
    
  3. Verificare la distribuzione:

    List all resources in resource group 'webapp-prod' 
    and verify that the storage account and key vault exist
    

Debug di un problema su un sito web in produzione

Il server MCP di Azure consente di diagnosticare e risolvere i problemi di produzione:

  1. Controllare l'integrità delle risorse:

    Check the health status of App Service 'my-webapp' 
    and list any recent service health incidents
    
  2. Log di query:

    Query Application Insights for exceptions in the last hour 
    from application 'my-webapp'
    
  3. Esaminare la configurazione:

    Get the application settings for App Service 'my-webapp' 
    and check if the database connection string is configured correctly
    
  4. Verificare la presenza di dipendenze:

    List the databases in SQL server 'my-sql-server' 
    and verify connectivity to database 'my-database'
    

Gestione di segreti e configurazione

Un modello comune prevede la gestione dei segreti e della configurazione in ambienti diversi:

  1. Controlla i segreti:

    List all secrets in key vault 'production-kv' 
    and show me which ones are expiring in the next 30 days
    
  2. Ruotare i segreti:

    Generate a new connection string for storage account 'mystore', 
    update the secret 'StorageConnection' in key vault 'production-kv', 
    and restart App Service 'my-webapp'
    
  3. Configurazione della sincronizzazione:

    Get all key-value pairs from App Configuration 'my-appconfig' 
    with label 'production' and compare them to the staging environment
    

Operazioni sui dati tra servizi

Il server MCP di Azure si distingue per coordinare le operazioni sui dati tra più servizi:

  1. Estrazione, Trasformazione, Caricamento (ETL):

    Get data from Cosmos DB container 'raw-data', 
    transform it using the provided logic, 
    and upload the results to blob container 'processed-data' 
    in storage account 'analytics'
    
  2. Backup e archiviazione:

    Export all documents from Cosmos DB container 'transactions' 
    and create a snapshot in blob storage with timestamp
    
  3. Query interservizi:

    Query Azure Data Explorer for events where error count is greater than 100, 
    then lookup the associated user data from Cosmos DB
    

Controllo e conformità dell'infrastruttura

Usare il server MCP di Azure per controllare l'infrastruttura e verificare la conformità:

  1. Controllo di sicurezza:

    List all storage accounts in my subscription 
    and check which ones don't have firewall rules configured
    
  2. Analisi dei costi:

    List all SQL databases in my subscription, 
    show their pricing tiers, 
    and identify candidates for downgrading
    
  3. Assegnazione di tag alle risorse:

    List all resources in subscription 'production-sub' 
    without an 'Environment' tag and show their resource groups
    

Flussi di lavoro di sviluppo e test

Gli sviluppatori possono usare il server MCP di Azure per semplificare i flussi di lavoro di sviluppo:

  1. Configurazione dell'ambiente:

    Create a development environment with a storage account, 
    key vault, and App Service in resource group 'dev-environment'
    
  2. Gestione dei dati di test:

    Copy data from production storage container 'data' 
    to development storage container 'test-data', 
    anonymizing sensitive fields
    
  3. Gestione della configurazione:

    Compare App Service settings between 'staging-webapp' 
    and 'production-webapp' and highlight differences