Condividi tramite


Connettere l'agente di codifica Di GitHub Copilot al server MCP di Azure

Questo articolo illustra come configurare e connettere l'agente di codifica Di GitHub Copilot al server MCP di Azure in modo che l'agente di codifica possa comprendere i file specifici di Azure e le risorse di Azure per apportare modifiche ai file di codice.

Nel tuo repository GitHub, assegnare i problemi di GitHub al coding agent di GitHub Copilot, crea una pull request con le modifiche apportate al tuo codice. Se le modifiche richieste richiedono l'accesso alle risorse di Azure, l'agente di codifica di GitHub Copilot deve usare il server MCP di Azure. Prima che l'agente di codifica di GitHub Copilot possa usare il server MCP di Azure per apportare modifiche al progetto basato su Azure, è necessario configurare l'agente di codifica di GitHub Copilot e assegnargli le autorizzazioni appropriate in Azure. È possibile configurare manualmente tutti gli elementi, tuttavia molti passaggi vengono automatizzati usando azd, l'interfaccia della riga di comando per sviluppatori di Azure e l'estensione coding-agent .

Prerequisiti

  • Un account Azure e l'accesso a una sottoscrizione di Azure. Per informazioni dettagliate su come configurarle, vedere la pagina dei prezzi per gli account Azure.

  • Un account GitHub e una sottoscrizione di GitHub Copilot. Per informazioni dettagliate su come configurarle, vedere Creazione di un account in GitHub e Avvio rapido rispettivamente per GitHub Copilot.

  • Un clone locale esistente di un repository GitHub. Poiché questo articolo descrive come configurare la connessione tra l'agente di codifica di GitHub Copilot nel server MCP di Azure, il repository GitHub deve includere script di distribuzione in Azure, ad esempio modelli Bicep o Terraform.

Configurare il repository GitHub per l'uso del server MCP di Azure

L'estensione azd coding-agent semplifica i passaggi necessari per configurare in modo sicuro la connessione tra l'agente di codifica Di GitHub Copilot e il server MCP di Azure per la sottoscrizione di Azure. Prima di tutto, crea un account nella sottoscrizione di Azure e lo assegna a un ruolo con le autorizzazioni necessarie. In secondo luogo, fornisce un frammento JSON necessario per introdurre il server MCP di Azure all'agente di codifica di GitHub Copilot.

  1. Se non è già azd installato, seguire le istruzioni per installarlo.

  2. Nel terminale passare al clone locale del repository con cui si vuole lavorare.

  3. Richiamare l'estensione azd coding agent con il comando: azd coding-agent config.

  4. Durante l'installazione, viene chiesto di selezionare il proprio:

    • Sottoscrizione di Azure
    • Quale repository GitHub sarà utilizzato dall'agente di codifica Copilot
    • Se si vuole creare un'identità gestita dall'utente nuova o esistente
    • Una località di Azure
    • Un gruppo di risorse di Azure
    • Repository GitHub in cui verrà creato un nuovo ramo contenente il file di installazione del flusso di lavoro GitHub Actions generato

    Quando si seleziona la posizione e il gruppo di risorse, potrebbe essere desiderabile usare la stessa posizione di destinazione e lo stesso gruppo di risorse delle risorse di Azure nell'applicazione.

  5. Dopo alcuni istanti, l'estensione dell'agente azd di codifica crea (o usa l'identità gestita dall'utente esistente) e lo assegna a un ruolo, archivia i valori di identità nell'ambiente del repository GitHub e crea ed esegue il push di un ramo contenente il file di installazione del flusso di lavoro GitHub Actions generato.

  6. Nella console verrà visualizzato un messaggio:

    (!)
    (!) NOTE: Some tasks must still be completed, manually:
    (!)
    

    Di solito ci sono tre attività:

    • Unire il ramo contenente il file di installazione del flusso di lavoro di GitHub Actions generato.
    • Configurare i ruoli di identità gestita dell'agente di codifica Copilot nel portale di Azure. Per impostazione predefinita, viene assegnato il ruolo "Lettore". Tuttavia, è possibile concedere altre autorizzazioni in base a ciò che si vuole che l'agente di codifica eseseguono autonomamente.
    • Visitare il collegamento per configurare la configurazione MCP. Per spostarsi manualmente, in GitHub passare a Impostazioni Configurazione > MCP dell'agente > di codifica Copilot > e incollare il frammento di codice JSON fornito. Ecco un esempio:
    {
        "mcpServers": {
            "Azure": {
                "type": "local",
                "command": "npx",
                "args": [
                    "-y",
                    "@azure/mcp@latest",
                    "server",
                    "start"
                ],
                "tools": [
                    "*"
                ]
            }
        }
    }
    
  7. Infine, è possibile consentire all'estensione dell'agente azd di codifica di aprire il browser in modo da poter creare il pull request per unire il ramo contenente il file di configurazione del workflow di GitHub Actions generato.

Creare un problema in GitHub per avviare l'agente di codifica di GitHub Copilot

A questo punto, è stato configurato correttamente l'agente di codifica di GitHub Copilot per usare il server MCP di Azure per eventuali problemi di GitHub assegnati all'agente di codifica di GitHub Copilot che richiede una conoscenza delle distribuzioni e delle risorse di Azure.

Si supponga, ad esempio, di voler aumentare la memoria allocata a PostgreSQL quando viene distribuita in Database di Azure per PostgreSQL. Si creerebbe un problema per modificare il modello Bicep per usare il livello di archiviazione successivo disponibile e assegnarlo a GitHub Copilot.

Annotazioni

Il ruolo della User Managed Identity è impostato su "Reader" per impostazione predefinita, quindi le modifiche che richiedi dovrebbero riguardare la modifica degli script di distribuzione, come i modelli Bicep o Terraform. La richiesta di modificare direttamente le risorse esistenti nella sottoscrizione di Azure non è autorizzata a causa delle autorizzazioni del ruolo "Lettore".

  1. In GitHub, nel repository contenente il progetto basato su Azure in cui è stato abilitato il server MCP di Azure, passare a Problemi.

  2. Selezionare il pulsante "Nuovo problema". Descrivere la modifica da apportare all'agente di codifica di GitHub Copilot nei campi titolo e descrizione. Selezionare il pulsante "Crea".

    Prendendo in prestito l'esempio precedente, è possibile usare il testo seguente per descrivere il problema.

    Title: Increase database storage
    
    Currently, when deploying to Azure via Bicep, we're creating a PostgreSQL database with 32gb of storage. I need the next tier higher -- whatever that is.
    

    Questo problema di esempio rende una richiesta semplice e chiara anche se l'utente non sa esattamente cosa richiede. Consente al server MCP di Azure di eseguire ricerche sui livelli di archiviazione disponibili per il server PostgreSQL flessibile nel Database Azure e sull'impostazione necessaria nel modello Bicep per apportare tale modifica.

    Importante

    Assicurarsi di usare la parola "Azure" nel prompt per assicurarsi che GitHub Copilot richieda gli strumenti dal server MCP di Azure.

  3. Selezionare il pulsante "Assegna a Copilot" in Assegnatari. Viene visualizzata la finestra di dialogo "Assegna copilot al problema" che consente di modificare il repository di destinazione, il ramo di base e aggiungere un prompt facoltativo. Selezionare il pulsante "Assegna".

  4. Dopo aver assegnato il problema all'agente di codifica di GitHub Copilot, viene visualizzato un collegamento alla richiesta pull preceduta da "[WIP]" che informa che il lavoro è in fase di avvio.

  5. Selezionare il collegamento "[WIP]" per visualizzare la richiesta di pull.

  6. Nel corpo della richiesta pull selezionare il collegamento per visualizzare la sessione di codifica. Questo mostra lo stato di avanzamento dell'agente di codifica Copilot nella richiesta, simile all'esperienza in Visual Studio.

  7. Al termine, l'agente di codifica di GitHub Copilot richiede una revisione del codice. Usare il normale flusso di lavoro per eseguire l'iterazione con GitHub, trattando l'agente di codifica di GitHub Copilot come collega.

  8. Quando si approvano le modifiche e si unisce la richiesta pull, GitHub Copilot risolve il problema originale creato.