Connect GitHub Copilot 雲端代理到 Azure MCP 伺服器

本文將教你如何設定並連接 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 ...

先決條件

  • Azure 帳戶和 Azure 訂用帳戶的存取權。 如需如何設定它們的詳細資訊,請參閱 Azure 帳戶的定價頁面。

  • GitHub 帳戶和 GitHub Copilot 訂用帳戶。 如需如何設定帳戶的詳細資訊,請參閱 分別在 GitHub 上建立帳戶和 GitHub Copilot 快速入門。

  • 現有的 GitHub 儲存庫本機副本。 由於本文說明如何設定 GitHub Copilot 雲端代理與 Azure MCP 伺服器的連線,GitHub 儲存庫應包含部署腳本至 Azure,如 Bicep 或 Terraform 範本。

設定 GitHub 存放庫以使用 Azure MCP 伺服器

azd Coding-Agent 擴充功能簡化了安全設定 GitHub Copilot 雲端代理與 Azure MCP 伺服器連接的步驟,以滿足您的 Azure 訂閱需求。 首先,它會在您的 Azure 訂用帳戶中建立帳戶,並為其指派具有必要權限的角色。 其次,它提供一個 JSON 片段,用以將 Azure MCP 伺服器介紹給 GitHub Copilot 雲端代理。

  1. 如果您尚未 azd 安裝,請 按照指示進行 安裝。

  2. 在終端機中,移動到您要使用的儲存庫的本機複本。

  3. 使用命令 azd coding-agent config 來為 azd 呼叫 coding-agent 擴充功能。

  4. 在安裝過程中,系統會要求您選擇:

    • Azure 訂用帳戶
    • 使用 Copilot 雲端代理程式的 GitHub 倉庫
    • 無論您是要建立新的還是現有的使用者受控識別
    • Azure 位置
    • Azure 資源群組
    • 將建立新分支的 GitHub 存放庫,其中包含產生的 GitHub Actions 工作流程設定檔案

    選取位置和資源群組時,您可能想要使用與應用程式中的 Azure 資源相同的目標位置和資源群組。

  5. 幾分鐘後,coding-agent擴充azd功能會建立(或使用現有的)使用者指派管理身份,指派角色,將身份值儲存在 GitHub 倉庫環境中,並建立並推送包含產生的 GitHub Actions 工作流程設定檔的分支。

  6. 您將在控制台中看到一條消息:

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

    通常有三個任務:

    • 合併包含產生的 GitHub Actions 工作流程設定檔案的分支。
    • 在 Azure 入口中設定 Copilot 雲端代理的管理身份角色。 預設情況下,會指派「讀者」角色。 不過,你可能想根據你希望雲端代理自主執行的任務,給它其他權限。
    • 請造訪連結以設定 MCP 設定。 若要手動前往該處,請在 GitHub 中依序前往 設定>Copilot>雲端代理程式>MCP 設定,然後貼上提供的 JSON 程式碼片段。 以下為範例:
    {
        "mcpServers": {
            "Azure": {
                "type": "local",
                "command": "npx",
                "args": [
                    "-y",
                    "@azure/mcp@latest",
                    "server",
                    "start"
                ],
                "tools": [
                    "*"
                ]
            }
        }
    }
    
  7. 最後,你可以允許用於 azdcoding-agent 擴充功能開啟瀏覽器,以便建立提取要求來合併包含所產生 GitHub Actions 工作流程設定檔的分支。

在 GitHub 建立一個問題以啟動 GitHub Copilot 雲端代理程式

此時,你已成功將 GitHub Copilot 雲端代理程式設定為使用 Azure MCP Server,以處理任何你指派給 GitHub Copilot 雲端代理程式、且需要了解 Azure 部署與資源的 GitHub 議題。

例如,假設您想要在部署至適用於 PostgreSQL 的 Azure 資料庫時增加配置給 PostgreSQL 的記憶體。 您會建立問題來修改 Bicep 範本,以使用下一個可用的儲存體層,並將它指派給 GitHub Copilot。

備註

使用者受控識別角色預設會設定為 「讀者」,因此您要求的變更應該是修改部署腳本,例如 Bicep 或 Terraform 範本。 由於「讀者」角色的許可權,要求直接修改 Azure 訂用帳戶中的現有資源未獲授權。

  1. 在 GitHub 中,在包含您啟用 Azure MCP 伺服器的 Azure 型專案的存放庫中,移至 [問題]。

  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 伺服器研究 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器可用的儲存層級,以及 Bicep 範本中進行該變更所需的設定。

    這很重要

    請務必在提示中使用「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 會解決您建立的原始問題。