Conectar GitHub Copilot agente de nuvem com o servidor MCP Azure usando extensões azd

Use a extensão (azure.coding-agent) da CLI do Desenvolvedor do Azure (azd) para conceder ao agente de nuvem do GitHub Copilot acesso ao Azure seguro e com escopo definido usando uma identidade gerenciada. A extensão cria a identidade gerenciada, configura a credencial federada e configura o fluxo de trabalho do GitHub Actions em seu repositório.

Confira a visão geral de Extensões para saber como as extensões adicionam recursos a azd.

Pré-requisitos

  • Instalar a CLI do Desenvolvedor do Azure (azd). Consulte as instruções de instalação.
  • Assinatura do Azure que permite criar grupos de recursos e identidades gerenciadas.
  • Clone local do repositório do GitHub que você habilita para o agente de nuvem do Copilot.
  • Permissões de repositório para:
    • Atualize o ambiente do copilot GitHub.
    • Configure as configurações do agente de nuvem do Copilot.
    • Envie alterações por push para a .github/workflows pasta.
  • Pelo menos um git remoto configurado para o repositório (necessário para credenciais federadas).

Instalar ou atualizar a extensão do agente de nuvem Copilot

  1. Instalar pela primeira vez

    azd extension install azure.coding-agent
    

    Atualizar para a versão mais recente

    azd extension upgrade azure.coding-agent
    
  2. Verifique se ele está instalado:

    azd extension list --installed
    

    Você deve ver azure.coding-agent na lista.

Usar a extensão do agente de nuvem Copilot

A extensão do agente de nuvem Copilot automatiza a configuração do acesso Azure por meio de uma identidade gerenciada para o agente de nuvem Copilot. Você também precisa executar algumas etapas manuais para concluir a instalação.

Habilitar o acesso do Azure

  1. Dentro da raiz do diretório do repositório local, execute o seguinte comando:

    azd coding-agent config
    
  2. Siga os prompts na tela para concluir o fluxo de trabalho de extensão.

    Durante a configuração, a extensão:

    • Cria (ou reutiliza) um grupo de recursos.
    • Cria uma identidade gerenciada do Azure.
    • Atribui a função Leitor a essa identidade no escopo do grupo de recursos.
    • Estabelece credenciais federadas vinculando o repositório GitHub à identidade gerenciada.
    • Adiciona (ou atualiza) um copilot-setup-steps.yml fluxo de trabalho e ativos relacionados.
    • Orienta você a finalizar as configurações do ambiente GitHub para o ambiente copilot.

Verificar a instalação (opcional)

  1. Liste a identidade gerenciada no grupo de recursos criado (ou atualizado):

    az identity list --resource-group <resource-group-name>
    
  2. No GitHub, abra as Configurações>Ambientes> do ambiente copilot e confirme a entrada de credencial federada fazendo referência à identidade gerenciada (o emissor da entidade deve refletir o GitHub).

Configurar Azure servidor MCP para o agente de nuvem do Copilot

  1. A extensão azd coding-agent cria um pull request para uma branch com o novo workflow do GitHub no arquivo origin/azd-enable-copilot-coding-agent-with-azure. Se você quiser usar a conexão do SERVIDOR MCP do Azure em seu main branch, mescle essa PR.

    A descrição da solicitação de pull e os logs de saída da extensão no console incluem um trecho de configuração JSON que você pode usar para configurar o Servidor MCP do Azure para o agente de nuvem do Copilot:

    {
        "mcpServers": {
            "Azure": {
                "type": "local",
                "command": "npx",
                "args": [
                    "-y",
                    "@azure/mcp@latest",
                    "server",
                    "start"
                ],
                "tools": [
                    "*"
                ]
            }
        }
    }
    
  2. Para configurar o Servidor MCP do Azure, vá para a página Configurações do repositório.

  3. Selecione Copilot>agente de nuvem na navegação à esquerda.

  4. Cole o snippet JSON do PR na caixa de configuração do MCP e selecione Salvar configuração do MCP.

    Uma captura de tela mostrando como configurar Azure SERVIDOR MCP para o agente de nuvem Copilot.

Testar a extensão do agente de nuvem Copilot

  1. Navegue até o repositório no GitHub.

  2. Selecione o ícone abrir painéis de agentes na barra de navegação superior direita.

  3. No painel deslizante, selecione o repositório e o branch que você usou para o comando . Se você mesclar a pull request gerada main, selecione main.

  4. Insira um prompt que instrua especificamente o agente de nuvem Copilot a usar o servidor MCP Azure configurado, como:

    Use the Azure MCP Server to list the resource groups in my subscription.
    Do not traverse or analyze the repository at all. Use only the Azure MCP Server.
    

    Pressione Enter para executar o prompt e instrua Copilot agente de nuvem a criar e executar uma nova tarefa.

    Observação

    Você também pode executar tarefas do agente de nuvem do Copilot em um branch diferente de main selecionando esse branch no painel lateral.

  5. Selecione a tarefa que aparece na parte inferior do painel para navegar até a página de detalhes da tarefa.

    Uma captura de tela mostrando como criar uma nova tarefa para Copilot agente de nuvem.

  6. Examine a saída para ver Copilot agente de nuvem:

    • Inicie o Servidor MCP do Azure:

      Uma captura de tela mostrando o servidor MCP do Azure iniciando.

    • Chame várias ferramentas para coletar informações sobre seus recursos do Azure:

      Uma captura de tela mostrando a ferramenta de grupo de recursos sendo chamada.

    • Exiba o grupo de recursos na saída final:

      Uma captura de tela mostrando os grupos de recursos descobertos.

Configurar permissões na identidade gerenciada

A azd coding-agent extensão cria uma identidade gerenciada do Azure que o Servidor MCP do Azure usa para acessar seus recursos. Essa configuração permite que você atribua funções diferentes à identidade gerenciada para controlar os recursos e as permissões de Azure SERVIDOR MCP.

Por padrão, a extensão atribui apenas a Reader função ao escopo do grupo de recursos. Atribua funções adicionais ou amplie o escopo se o agente precisar de mais recursos. Consulte funções incorporadas.

Por exemplo, para atribuir a função Contributor no escopo do grupo de recursos:

az role assignment create --assignee <principal-id-or-client-id> --role Contributor --scope /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>

Resolução de problemas

As seções a seguir destacam problemas comuns que você pode enfrentar.

Nenhum repositório remoto Git configurado

Adicione um remoto para que as credenciais federadas possam ser geradas:

git remote add origin <https://github.com/<your-org>/<your-repo>.git>
git fetch origin

Deve ter direitos de administrador para o Repositório

Configurar um repositório GitHub para Copilot agente de nuvem requer direitos de administrador. Sem esses direitos, você não pode atualizar o ambiente de Copilot para usar credenciais de identidade gerenciada ou atualizar a configuração do MCP para o repositório.

Se você vir esse erro, precisará aumentar suas permissões.

(!) An error occurred, see the readme for troubleshooting and prerequisites:
    https://github.com/Azure/azure-dev/blob/main/cli/azd/extensions/azure.coding-agent/README.md
Error: failed to create GitHub environment copilot in repository owner/repository: exit code: 1, stdout: {"message":"Must have admin rights to Repository.","documentation_url":"https://docs.github.com/rest/deployments/environments#create-or-update-an-environment","status":"403"}, stderr: gh: Must have admin rights to Repository. (HTTP 403)

Token de atualização expirado

Entre novamente:

azd auth login

Adicione sinalizadores como --tenant-id <tenant-id> ou --use-device-code conforme necessário.

Melhorar a saída de diagnóstico

Ative o modo de depuração

azd coding-agent config --debug

Todos os comandos internos e suas saídas são exibidas no console.

Próximas etapas

Contributing

Para contribuir com os recursos da CLI do Desenvolvedor do Azure, consulte o guia de contribuição. Os pull requests podem exigir a assinatura de um Contrato de Licença de Colaborador.

Código de conduta

Este projeto segue o Código de Conduta do Microsoft Open Source.