共用方式為


將 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、Azure 開發人員 CLI 及其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 訂用帳戶 Azure MCP 伺服器之間連線所需的步驟。 首先,它會在您的 Azure 訂用帳戶中建立帳戶,並為其指派具有必要權限的角色。 其次,它提供將 Azure MCP 伺服器引入 GitHub Copilot 編碼代理程式所需的 JSON 程式碼片段。

  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 工作流程設定檔案的分支。
    • 在 Azure 入口網站中設定 Copilot 編碼代理程式的受控識別角色。 預設情況下,會指派「讀者」角色。 不過,您可能想要根據您希望編碼代理程式自主執行的動作,給予它其他許可權。
    • 請造訪連結以設定 MCP 組態。 若要手動瀏覽該處,請在 GitHub 中移至 設定 > Copilot > 編碼代理程式 > MCP 設定,然後貼上提供的 JSON 程式碼片段。 以下為範例:
    {
        "mcpServers": {
            "Azure": {
                "type": "local",
                "command": "npx",
                "args": [
                    "-y",
                    "@azure/mcp@latest",
                    "server",
                    "start"
                ],
                "tools": [
                    "*"
                ]
            }
        }
    }
    
  7. 最後,您可以允許 azd 編碼代理程式延伸模組開啟瀏覽器,以便建立提取要求,以合併包含所產生 GitHub Actions 工作流程設定檔案的分支。

在 GitHub 中建立問題以起始 GitHub Copilot 編碼代理程式

此時,您已成功設定 GitHub Copilot 編碼代理程式,以針對您指派給 GitHub Copilot 編碼代理程式的任何 GitHub 問題使用 Azure MCP 伺服器,這些問題需要瞭解 Azure 部署和資源。

例如,假設您想要在部署至適用於 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 會解決您建立的原始問題。