教學:控制程式代理程式在 GitHub MCP 上的存取權

在這個教學中,你將使用 Unity Catalog 和 AI Gateway 來管理程式代理對 GitHub 的存取權。 假設你的團隊使用像 Claude Code 或游標這類程式代理來讀取倉庫和拉取請求,但你想阻擋寫入操作並審核每一個工具呼叫。

你使用 Azure Databricks 提供的 MCP 服務,因此不需要架設或註冊 MCP 伺服器,也不需要建立 Unity 目錄連線。system.ai.github 你會附加內建 的服務政策 來阻擋寫入操作,授權團隊存取權限,連接程式代理,並確認每個工具呼叫都有記錄。

先決條件

步驟 1:以內建政策封鎖寫入操作

附上內建的 GitHub 服務政策並啟用「不允許寫入」。 這會封鎖可在 GitHub 上建立、修改或刪除資料的工具,同時允許唯讀工具。 這項原則由平台管理,因此你不需要撰寫原則函式。

UI

  1. 在工作區側邊欄,點選 AI 閘道。
  2. 在 MCP 標籤中,選擇 system.ai.github。
  3. 打開 政策 標籤,然後點選 新政策。
  4. 輸入一個政策名稱,例如 block_github_writes。
  5. 在護欄類型中,選擇 GitHub。
  6. 選擇 不允許寫入,然後點 選建立政策。

REST API

API 政策使用 system.ai.github_policy 將 disallow_writes 設定為 true的處理器:

databricks api patch \
  "/api/2.1/unity-catalog/mcp-services/system.ai.github?update_mask=config.service_policies" \
  --json '{
    "config": {
      "service_policies": [
        {
          "name": "block_github_writes",
          "policy_type": "POLICY_TYPE_BUILTIN",
          "handler": "system.ai.github_policy",
          "options": { "disallow_writes": "true" }
        }
      ]
    }
  }'

它 PATCH 取代了服務的政策清單。 如果該服務已經有政策,請將其包含在 service_policies 中,讓這些政策保持附加。

附加政策後, tools/call 寫入工具的 A 會被拒絕,包括建立拉取請求的工具。 若要允許部分寫入工具同時阻擋破壞性操作,請建立 自訂服務政策 。 欲了解更多可用服務與政策控制,請參閱 Databricks 提供的 MCP 服務 與 服務政策。

步驟二:與您的團隊分享 MCP 服務

依照 共享 MCP,讓你的團隊(例如 dev_team)能存取 system.ai.github。 該指南涵蓋了 Databricks 提供的 MCP 的管理員權限與繼承的存取權限。

步驟三:連接你的編碼代理

如果你還沒有支援 MCP 的程式代理 程式,建議安裝。 使用 Unity Gateway CLI(ug) 來設定閘道連線,並在你的裝置上啟動代理程式。 例如, ug claude 會用這種配置開啟 Claude Code。 若要自行設定客戶端,請依照以下手動設定操作。

  1. 如果 ug 還沒安裝,請安裝並檢查版本。 你需要 Python 3.12 或以上版本和 uv。 請參閱 編碼代理快速入門 頁面以了解安裝細節。

    uv tool install git+https://github.com/databricks/unity-gateway
    ug --version
    
  2. 為你的工作區設定程式代理,並在提示時登入。 如果你的裝置已經設定好,可以跳過這個步驟。

    ug configure --workspace https://<workspace-hostname>
    
  3. 將 GitHub MCP 服務加入你設定的代理程式中。 如果你的管理員已發布的設定已經加入了,請跳過這個步驟。

    ug mcp add --names system.ai.github
    
  4. 確認服務是否顯示在您的設定連線中:

    ug mcp list
    
  5. 啟動或重啟你的客服人員以便使用該服務。 例如,啟動 Claude Code:

    ug claude
    

    在 Claude Code 中輸入 /mcp 以檢查連線狀態。 關於其他啟動指令和 MCP 設定選項,請參見 「新增工具與技能 」以及 ug CLI 參考。

手動設定時,請在 支援的程式設計與工作代理程式中選擇您的客戶端。 使用此 MCP 端點來支援內建服務:

https://<workspace-url>/ai-gateway/mcp-services/system.ai.github

關於調用範例,包括 OpenAI Agents SDK,請參見 在 Python 代理程式中使用 MCP 工具。

步驟四:確認活動已被管理並記錄

確認治理是否從兩端都能有效運作:

  • 政策強制執行:代理程式成功使用唯讀工具,而寫入工具(如建立拉取請求)則因政策錯誤被拒絕。

  • 使用記錄:查詢使用系統資料表以確認通話記錄:

    SELECT service_name, mcp_metadata.tool_name AS tool_name, status_code, COUNT(*) AS calls
    FROM system.ai_gateway.usage
    WHERE service_type = 'MCP_SERVICE'
      AND service_name = 'system.ai.github'
    GROUP BY service_name, mcp_metadata.tool_name, status_code
    ORDER BY calls DESC;
    

欲了解更多監控資訊,請參閱 監控使用。

下一步