Łączenie agenta GitHub Copilot w chmurze z serwerem Azure MCP

W tym artykule pokazano, jak skonfigurować i połączyć agenta GitHub Copilot w chmurze z serwerem MCP Azure. Po połączeniu agenta w chmurze z serwerem agent może rozumieć pliki specyficzne dla platformy Azure oraz zasoby platformy Azure i wprowadzać zmiany w plikach kodu.

W repozytorium GitHub przypisanie zgłoszeń GitHub agentowi chmurowemu GitHub Copilot tworzy pull request zawierający zmiany w kodzie. Jeśli żądane zmiany wymagają dostępu do zasobów Azure, agent GitHub Copilot w chmurze musi korzystać z serwera Azure MCP. Zanim agent chmurowy GitHub Copilot będzie mógł korzystać z serwera Azure MCP do autonomicznego wprowadzania zmian w projekcie opartym na platformie Azure, musisz skonfigurować agenta chmurowego GitHub Copilot i nadać mu odpowiednie uprawnienia na platformie Azure. Możesz ręcznie skonfigurować wszystko, ale wiele kroków jest zautomatyzowanych za pomocą azd i rozszerzenia coding-agent. GitHub używa teraz w interfejsie użytkownika wyświetlanej nazwy „agent chmurowy Copilot”, ale stabilny identyfikator rozszerzenia pozostaje azure.coding-agent, a polecenie CLI pozostaje azd coding-agent ....

Prerequisites

  • Konto platformy Azure i dostęp do subskrypcji platformy Azure. Aby uzyskać szczegółowe informacje na temat sposobu ich konfigurowania, zobacz stronę cennika kont platformy Azure.

  • Konto GitHub i subskrypcja GitHub Copilot. Aby uzyskać szczegółowe informacje na temat sposobu ich konfigurowania, zobacz Tworzenie konta na GitHub i Quickstart dla GitHub Copilot odpowiednio.

  • Istniejący lokalny klon repozytorium GitHub. Ponieważ w tym artykule opisano sposób konfigurowania połączenia między agentem GitHub Copilot w chmurze a serwerem Azure MCP, repozytorium GitHub powinno zawierać skrypty wdrażania do Azure, takie jak szablony Bicep lub Terraform.

Konfigurowanie repozytorium GitHub do korzystania z serwera Azure MCP

azd Rozszerzenie agenta kodowania upraszcza kroki wymagane do bezpiecznego skonfigurowania połączenia między agentem chmury GitHub Copilot a serwerem MCP Azure dla subskrypcji Azure. Najpierw tworzy konto w ramach subskrypcji platformy Azure i przypisuje mu rolę z niezbędnymi uprawnieniami. Po drugie udostępnia fragment kodu JSON wymagany do wprowadzenia serwera Azure MCP do agenta GitHub Copilot w chmurze.

  1. Jeśli nie masz azd jeszcze zainstalowanej wersji, postępuj zgodnie z instrukcjami , aby go zainstalować.

  2. W terminalu przejdź do lokalnego klonu repozytorium, z którym chcesz pracować.

  3. Wywołaj rozszerzenie coding-agent dla azd, używając polecenia azd coding-agent config.

  4. Podczas instalacji zostanie wyświetlony monit o wybranie jednej z opcji:

    • Subskrypcja platformy Azure
    • GitHub repozytorium korzystające z agenta Copilot w chmurze
    • Czy chcesz utworzyć nową, czy istniejącą tożsamość zarządzaną użytkownika
    • Lokalizacja platformy Azure
    • Grupa zasobów platformy Azure
    • Repozytorium GitHub, w którym zostanie utworzona nowa gałąź zawierająca wygenerowany plik instalacyjny przepływu pracy funkcji GitHub Actions

    Podczas wybierania lokalizacji i grupy zasobów możesz użyć tej samej lokalizacji docelowej i grupy zasobów co zasoby platformy Azure w aplikacji.

  5. Po kilku chwilach rozszerzenie coding-agent dla azd tworzy (lub używa istniejącej) tożsamość zarządzaną przypisaną przez użytkownika, przypisuje jej rolę, zapisuje wartości tożsamości w środowisku repozytorium w usłudze GitHub oraz tworzy i wypycha gałąź zawierającą wygenerowany plik konfiguracji przepływu pracy GitHub Actions.

  6. W konsoli zostanie wyświetlony komunikat:

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

    Zwykle istnieją trzy zadania:

    • Połącz gałąź zawierającą wygenerowany plik ustawień przepływu pracy GitHub Actions.
    • Skonfiguruj role tożsamości zarządzanej agenta chmurowego Copilot w portalu Azure. Domyślnie przypisana jest rola "Czytelnik". Możesz jednak nadać mu inne uprawnienia na podstawie tego, co chcesz, aby agent chmury działał autonomicznie.
    • Odwiedź link, aby skonfigurować konfigurację mcp. Aby przejść tam ręcznie, w serwisie GitHub przejdź do Ustawienia>Copilot>Agent w chmurze>Konfiguracja MCP i wklej podany fragment JSON. Oto przykład:
    {
        "mcpServers": {
            "Azure": {
                "type": "local",
                "command": "npx",
                "args": [
                    "-y",
                    "@azure/mcp@latest",
                    "server",
                    "start"
                ],
                "tools": [
                    "*"
                ]
            }
        }
    }
    
  7. Na koniec możesz zezwolić rozszerzeniu coding-agent dla azd na otwarcie przeglądarki, aby utworzyć pull request służący do scalenia gałęzi zawierającej wygenerowany plik konfiguracji przepływu pracy usługi GitHub Actions.

Tworzenie problemu w GitHub w celu zainicjowania agenta GitHub Copilot w chmurze

W tym momencie pomyślnie skonfigurowano agenta GitHub Copilot w chmurze do korzystania z serwera Azure MCP na potrzeby wszelkich zgłoszeń w serwisie GitHub przypisanych agentowi GitHub Copilot w chmurze, które wymagają zrozumienia wdrożeń i zasobów na platformie Azure.

Załóżmy na przykład, że chcesz zwiększyć ilość pamięci przydzielonej do bazy danych PostgreSQL podczas wdrażania w usłudze Azure Database for PostgreSQL. Utworzyłbyś zgłoszenie, aby zmodyfikować szablon Bicep tak, by używał następnego dostępnego poziomu magazynu, a następnie przypisał je do usługi GitHub Copilot.

Note

Rola zarządzana przez użytkownika "Tożsamość" jest domyślnie ustawiona na "Czytelnik", więc wymagane zmiany powinny dotyczyć modyfikacji skryptów wdrożeniowych, takich jak szablony Bicep lub Terraform. Prośba o bezpośrednie zmodyfikowanie istniejących zasobów w subskrypcji platformy Azure nie jest autoryzowana ze względu na uprawnienia roli "Czytelnik".

  1. W usłudze GitHub w repozytorium zawierającym projekt oparty na platformie Azure, w którym włączono serwer MCP platformy Azure, przejdź do pozycji Problemy.

  2. Wybierz przycisk Nowe zgłoszenie. Opisz zmianę, którą ma wprowadzić agent chmurowy GitHub Copilot, w polach tytułu i opisu. Wybierz przycisk Create.

    Naśladując przykład z wcześniej, możesz użyć następującego tekstu, aby opisać swój problem.

    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.
    

    Ten przykładowy problem formułuje prośbę w sposób prosty i jednoznaczny, nawet jeśli użytkownik nie wie dokładnie, o co prosi. Umożliwia to serwerowi Azure MCP sprawdzenie dostępnych warstw magazynu dla usługi Azure Database for PostgreSQL — Flexible Server oraz ustawienia w szablonie Bicep wymaganego do wprowadzenia tej zmiany.

    Important

    Pamiętaj, aby w monicie użyć słowa "Azure", aby upewnić się, że narzędzie GitHub Copilot żąda narzędzi z serwera MCP platformy Azure.

  3. Wybierz przycisk "Przypisz do Copilot" w obszarze Przypisani. Zostanie wyświetlone okno dialogowe "Przypisz Copilot do zadania," umożliwiające zmodyfikowanie repozytorium docelowego, gałęzi podstawowej i dodanie opcjonalnej podpowiedzi. Wybierz przycisk "Przypisz".

  4. Gdy zgłoszenie zostanie przypisane do agenta chmurowego GitHub Copilot, zobaczysz link do pull requestu z prefiksem „[WIP]”, co oznacza, że prace właśnie się rozpoczynają.

  5. Wybierz link "[WIP]", aby wyświetlić żądanie ściągnięcia.

  6. W treści żądania ściągnięcia wybierz link, aby wyświetlić sesję kodowania. To pokazuje postęp, jaki agent chmurowy Copilot poczynił w realizacji żądania, podobnie jak w Visual Studio.

  7. Po zakończeniu agent GitHub Copilot w chmurze zażąda przeglądu kodu. Korzystaj ze zwykłego przepływu pracy, aby pracować iteracyjnie z GitHub, traktując GitHub Copilot Cloud Agent jak współpracownika.

  8. Po zatwierdzeniu zmian i scaleniu żądania ściągnięcia, GitHub Copilot rozwiązuje pierwotny problem, który utworzyłeś.