Подключение облачного агента GitHub Copilot к серверу MCP Azure

В этой статье показано, как настроить и подключить облачный агент GitHub Copilot к серверу AZURE MCP. Подключив облачный агент к серверу, вы позволяете ему понимать ваши файлы, связанные с Azure, и ресурсы Azure, чтобы вносить изменения в файлы кода.

В вашем репозитории GitHub назначение задач GitHub облачному агенту GitHub Copilot создает запрос на включение изменений с изменениями в вашем коде. Если запрошенные изменения требуют доступа к ресурсам Azure, GitHub Copilot облачный агент должен использовать сервер AZURE MCP. Прежде чем облачный агент GitHub Copilot сможет использовать сервер Azure MCP для автономного внесения изменений в ваш проект, размещённый в Azure, необходимо настроить облачный агент GitHub Copilot и предоставить ему соответствующие разрешения в Azure. Вы можете настроить всё вручную, но многие шаги автоматизируются при использовании azd и расширения coding-agent. GitHub теперь использует в интерфейсе отображаемое название "Copilot cloud agent", но стабильный идентификатор расширения по-прежнему остаётся azure.coding-agent, а команда CLI по-прежнему остаётся azd coding-agent ....

Prerequisites

  • Учетная запись Azure и доступ к подписке Azure. Дополнительные сведения о том, как настроить их, см. на странице с ценами для учетных записей Azure.

  • Учетная запись GitHub и подписка на GitHub Copilot. Дополнительные сведения о том, как настроить их, см. в статьях "Создание учетной записи на GitHub" и "Краткое руководство по GitHub Copilot" соответственно.

  • Существующий локальный клон репозитория GitHub. Так как в этой статье описывается настройка подключения между облачным агентом GitHub Copilot и сервером MCP Azure, репозиторий GitHub должен включать скрипты развертывания для Azure, например Bicep или шаблонов Terraform.

Настройка репозитория GitHub для использования сервера Azure MCP

Расширение azd агента кодирования упрощает действия, необходимые для безопасной настройки подключения между облачным агентом GitHub Copilot и сервером MCP Azure для подписки Azure. Во-первых, он создает учетную запись в подписке Azure и назначает ей роль с необходимыми разрешениями. Во-вторых, предоставляется фрагмент JSON, необходимый для подключения Azure MCP Server к облачному агенту GitHub Copilot.

  1. Если вы еще не azd установили, следуйте инструкциям по его установке.

  2. В терминале перейдите к локальному клону репозитория, с которым вы хотите работать.

  3. Вызовите расширение coding-agent для azd с помощью команды azd coding-agent config.

  4. Во время установки вам будет предложено выбрать:

    • подписка Azure
    • репозиторий GitHub, использующий агент облака Copilot
    • Если вы хотите создать новое или использовать имеющееся управляемое удостоверение пользователя
    • Расположение Azure
    • Группа ресурсов Azure
    • Репозиторий GitHub, в котором будет создана новая ветвь, содержащая созданный файл установки рабочего процесса GitHub Actions

    При выборе расположения и группы ресурсов может потребоваться использовать то же целевое расположение и группу ресурсов, что и ресурсы Azure в приложении.

  5. Через несколько мгновений расширение coding-agent для azd создает (или использует существующее) управляемое удостоверение, назначаемое пользователем, назначает ему роль, сохраняет значения удостоверения в окружении репозитория GitHub, а также создает и отправляет ветвь, содержащую сгенерированный файл конфигурации рабочего процесса GitHub Actions.

  6. В консоли появится сообщение:

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

    Обычно существует три задачи:

    • Объедините ветвь, содержащую созданный файл установки рабочего процесса GitHub Actions.
    • Настройте роли для управляемого удостоверения облачного агента Copilot в портале Azure. По умолчанию назначается роль "Читатель". Однако вы можете предоставить ему другие разрешения на основе того, что вы хотите, чтобы облачный агент мог выполнять автономный режим.
    • Перейдите по ссылке, чтобы настроить конфигурацию MCP. Чтобы перейти туда вручную, в GitHub откройте Настройки>Copilot>Cloud agent>Конфигурация MCP и вставьте предоставленный фрагмент JSON. Приведем пример:
    {
        "mcpServers": {
            "Azure": {
                "type": "local",
                "command": "npx",
                "args": [
                    "-y",
                    "@azure/mcp@latest",
                    "server",
                    "start"
                ],
                "tools": [
                    "*"
                ]
            }
        }
    }
    
  7. Наконец, можно разрешить расширению coding-agent для azd открыть браузер, чтобы создать pull request для слияния ветки, содержащей сгенерированный файл конфигурации рабочего процесса GitHub Actions.

Создайте задачу в GitHub, чтобы запустить облачный агент GitHub Copilot

На этом этапе вы успешно настроили облачный агент GitHub Copilot для использования сервера Azure MCP при работе с любыми задачами GitHub, которые вы назначаете облачному агенту GitHub Copilot и для решения которых требуется понимание развертываний и ресурсов Azure.

Например, предположим, что вы хотите увеличить объем памяти, выделенной для PostgreSQL при развертывании в База данных Azure для PostgreSQL. Вы бы создали задачу для изменения шаблона Bicep, чтобы использовать следующий класс хранилища, и назначили её GitHub Copilot.

Note

Роль управляемого удостоверения пользователя по умолчанию установлена на "Читатель", поэтому изменения, которые вы запрашиваете, должны быть направлены на модификацию скриптов развертывания, таких как шаблоны Bicep или Terraform. Запрос непосредственного изменения существующих ресурсов в подписке Azure не авторизован из-за разрешений роли "Читатель".

  1. В GitHub в репозитории, содержащем проект на основе Azure, где включен сервер Azure MCP, перейдите к разделу "Проблемы".

  2. Выберите кнопку Новая проблема. Опишите, какие изменения должен внести облачный агент GitHub Copilot в полях заголовка и описания. Выберите кнопку Создать.

    Взяв пример выше, вы можете использовать следующий текст, чтобы описать вашу проблему.

    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.
    

    В этом примере формулируется простой и четкий запрос, даже если пользователь точно не знает, чего именно он хочет. Он позволяет Azure MCP-серверу изучить доступные уровни хранилища для гибкого сервера База данных Azure для PostgreSQL и параметр в шаблоне Bicep, необходимый для внесения этого изменения.

    Important

    Обязательно используйте слово "Azure" в запросе, чтобы убедиться, что GitHub Copilot запрашивает инструменты с сервера Azure MCP.

  3. Нажмите кнопку "Назначить на Copilot" в разделе Назначенные. Откроется диалоговое окно "Назначить Copilot задаче", позволяющее изменить целевой репозиторий, базовую ветвь и добавить необязательное поле. Нажмите кнопку "Назначить".

  4. Когда задача будет назначена облачному агенту GitHub Copilot, вы увидите ссылку на запрос на включение изменений с префиксом "[WIP]", который означает, что работа началась.

  5. Выберите ссылку "[WIP]", чтобы посмотреть пулл-реквест.

  6. В теле пул-реквеста выберите ссылку для просмотра сеанса кодирования. Здесь отображается, как продвигается выполнение запроса облачным агентом Copilot, аналогично тому, как это показывается в Visual Studio.

  7. После завершения облачный агент GitHub Copilot запрашивает проверку кода. Используйте свой обычный рабочий процесс для итеративной работы с GitHub, воспринимая облачный агент GitHub Copilot как коллегу.

  8. Когда вы утверждаете изменения и объединяете пул-реквест, GitHub Copilot устраняет исходную проблему, которую вы создали.