Conectar GitHub Copilot agente de nuvem ao servidor MCP do Azure

Este artigo mostra como configurar e conectar o agente de nuvem GitHub Copilot ao servidor MCP Azure. Ao conectar o agente de nuvem ao servidor, o agente pode entender seus arquivos específicos do Azure e os recursos do Azure para fazer alterações nos seus arquivos de código.

No seu repositório do GitHub, atribuir issues do GitHub ao agente de nuvem do GitHub Copilot gera uma solicitação de pull com as alterações feitas no seu código. Se as alterações solicitadas exigirem acesso aos recursos do Azure, o agente de nuvem GitHub Copilot precisará usar o servidor MCP Azure. Antes de o agente de nuvem do GitHub Copilot poder usar o Azure MCP Server para fazer alterações de forma autônoma no seu projeto baseado no Azure, você precisa configurar o agente de nuvem do GitHub Copilot e conceder a ele as permissões adequadas no Azure. Você pode configurar tudo manualmente, mas muitas etapas são automatizadas usando azd e a coding-agent extensão. GitHub agora usa o nome de exibição "agente de nuvem Copilot" na interface, mas o identificador estável da extensão permanece azure.coding-agent, e o comando da CLI permanece azd coding-agent ....

Pré-requisitos

  • Uma conta do Azure e acesso a uma assinatura do Azure. Para obter detalhes sobre como configurá-los, consulte a página de preços das contas do Azure.

  • Uma conta do GitHub e uma assinatura do GitHub Copilot. Para obter detalhes sobre como configurá-los, consulte Criar uma conta no GitHub e Início Rápido para o GitHub Copilot, respectivamente.

  • Um clone local existente de um repositório GitHub. Como este artigo descreve como configurar a conexão entre GitHub Copilot agente de nuvem e o servidor MCP Azure, o repositório GitHub deve incluir scripts de implantação para Azure, como modelos Bicep ou Terraform.

Configurar o repositório GitHub para usar o Servidor MCP do Azure

A azd extensão do agente de codificação simplifica as etapas necessárias para configurar com segurança a conexão entre o agente de nuvem GitHub Copilot e o servidor MCP Azure para sua assinatura de Azure. Primeiro, ele cria uma conta em sua assinatura do Azure e atribui a ela uma função com as permissões necessárias. Em segundo lugar, ele fornece um snippet JSON necessário para introduzir o servidor MCP Azure ao agente de nuvem GitHub Copilot.

  1. Se você ainda não tiver azd instalado, siga as instruções para instalá-lo.

  2. No terminal, navegue até o clone local do repositório com o qual você deseja trabalhar.

  3. Chame a extensão coding-agent para azd usando o comando azd coding-agent config.

  4. Durante a instalação, você será solicitado a escolher seu:

    • Assinatura do Azure
    • GitHub repositório que usa o agente de nuvem Copilot
    • Se você deseja criar uma identidade gerenciada de usuário nova ou existente
    • Uma localização do Azure
    • Um grupo de recursos do Azure
    • O repositório GitHub em que um novo branch será criado contendo o arquivo de configuração de fluxo de trabalho do GitHub Actions gerado

    Ao selecionar o local e o grupo de recursos, talvez você queira usar o mesmo local de destino e grupo de recursos que os recursos do Azure no aplicativo.

  5. Após alguns instantes, a extensão coding-agent para azd cria (ou usa a identidade gerenciada existente atribuída pelo usuário), atribui uma função a ela, armazena os valores da identidade no ambiente do repositório do GitHub e cria e faz push de um branch que contém o arquivo de configuração de fluxo de trabalho do GitHub Actions gerado.

  6. Você verá uma mensagem no console:

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

    Normalmente, há três tarefas:

    • Mescle a ramificação que contém o arquivo gerado de configuração do fluxo de trabalho do GitHub Actions.
    • Configure as funções da identidade gerenciada do agente de nuvem do Copilot no portal do Azure. Por padrão, a função "Reader" é atribuída. No entanto, talvez você queira conceder outras permissões com base no que deseja que o agente de nuvem faça de forma autônoma.
    • Visite o link para configurar a configuração do MCP. Para acessar manualmente, no GitHub, vá para Configurações>Copilot>agente de nuvem>configuração do MCP e cole o trecho de JSON fornecido. Veja um exemplo:
    {
        "mcpServers": {
            "Azure": {
                "type": "local",
                "command": "npx",
                "args": [
                    "-y",
                    "@azure/mcp@latest",
                    "server",
                    "start"
                ],
                "tools": [
                    "*"
                ]
            }
        }
    }
    
  7. Por fim, você pode permitir que a extensão coding-agent para azd abra o navegador para criar a solicitação de pull e mesclar a ramificação que contém o arquivo gerado de configuração do fluxo de trabalho do GitHub Actions.

Criar um problema no GitHub para iniciar GitHub Copilot agente de nuvem

Neste ponto, você configurou com êxito o agente de nuvem do GitHub Copilot para usar o Servidor MCP do Azure em quaisquer issues do GitHub que você atribuir ao agente de nuvem do GitHub Copilot e que exijam um entendimento das implantações e dos recursos do Azure.

Por exemplo, suponha que você queira aumentar a memória atribuída ao PostgreSQL quando ele for implantado no Banco de Dados do Azure para PostgreSQL. Você criaria um problema para modificar o modelo Bicep para usar a próxima camada de armazenamento disponível e atribuí-lo ao GitHub Copilot.

Observação

Por padrão, a função da Identidade Gerenciada pelo Usuário é definida como "Leitor", portanto, as alterações solicitadas devem se limitar à modificação de scripts de implantação, como modelos Bicep ou Terraform. Não é permitido solicitar a modificação direta de recursos existentes na sua assinatura do Azure devido às permissões da função "Leitor".

  1. No GitHub, no repositório que contém seu projeto baseado no Azure em que você habilitou o Servidor MCP do Azure, vá para Problemas.

  2. Selecione o botão Novo Problema . Descreva a alteração que você deseja que GitHub Copilot agente de nuvem faça nos campos de título e descrição. Selecione o botão Criar.

    Ao usar o exemplo anteriormente, você pode usar o texto a seguir para descrever o 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.
    

    Este problema de exemplo torna uma solicitação simples e clara, mesmo que o usuário não saiba exatamente o que está solicitando. Ele permite que o Azure MCP Server pesquise as camadas de armazenamento disponíveis para o Banco de Dados do Azure para PostgreSQL Flexible Server e qual configuração no template do Bicep é necessária para fazer essa alteração.

    Importante

    Use a palavra "Azure" em seu prompt para garantir que o GitHub Copilot solicite ferramentas do Servidor MCP do Azure.

  3. Selecione o botão "Atribuir ao Copilot" em Responsáveis. A caixa de diálogo "Atribuir Copilot à issue" é exibida, permitindo alterar o repositório de destino, a ramificação base e adicionar um prompt opcional. Selecione o botão "Atribuir".

  4. Depois que o problema for atribuído a GitHub Copilot agente de nuvem, você verá um link para a solicitação de pull prefixada com "[WIP]", informando que o trabalho está sendo iniciado.

  5. Selecione o link "[WIP]" para exibir a solicitação de pull.

  6. No corpo da solicitação de pull, selecione o link para exibir a sessão de codificação. Isso mostra o progresso que o agente de nuvem Copilot está fazendo na solicitação, semelhante à experiência em Visual Studio.

  7. Ao terminar, o agente de nuvem do GitHub Copilot solicita uma revisão de código. Siga seu fluxo de trabalho habitual para iterar com o GitHub, tratando o agente de nuvem do GitHub Copilot como um colaborador.

  8. Quando você aprova as alterações e mescla a solicitação de pull, o GitHub Copilot resolve o problema original que você criou.