Поделиться через


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

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

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

Предпосылки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Создание проблемы в GitHub для запуска агента GitHub Copilot для написания кода

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

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

Замечание

Роль управляемого удостоверения пользователя по умолчанию установлена на "Читатель", поэтому изменения, которые вы запрашиваете, должны быть направлены на модификацию скриптов развертывания, таких как шаблоны 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, необходимые для внесения этого изменения.

    Это важно

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

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

  4. После назначения проблемы агенту кода GitHub Copilot вы увидите ссылку на pull request с префиксом "[WIP]", что означает, что работа начинается.

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

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

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

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