在這個教學中,你將使用 Unity Catalog 和 AI Gateway 來管理程式代理對 GitHub 的存取權。 假設你的團隊使用像 Claude Code 或游標這類程式代理來讀取倉庫和拉取請求,但你想阻擋寫入操作並審核每一個工具呼叫。
你使用 Azure Databricks 提供的 MCP 服務,因此不需要架設或註冊 MCP 伺服器,也不需要建立 Unity 目錄連線。system.ai.github 你會附加內建 的服務政策 來阻擋寫入操作,授權團隊存取權限,連接程式代理,並確認每個工具呼叫都有記錄。
先決條件
- 已啟用 Unity Catalog 的工作區。 請參閱 開始使用 Unity 目錄。
- Unity Gateway 測試版功能已啟用於您的帳號。 帳號管理員可以從帳號主控台的 預覽 頁面啟用這些功能。 請參閱 管理 Azure Databricks 預覽。
- 允許致電和分享
system.ai.github,以及附加原則。 - 要在步驟 1 中使用 REST API,請讓 Azure Databricks CLI 向你的工作區進行驗證。
- 如果你的工作空間使用受限的無伺服器網路政策,帳號管理員必須允許 GitHub MCP 服務所需的目的地。
步驟 1:以內建政策封鎖寫入操作
附上內建的 GitHub 服務政策並啟用「不允許寫入」。 這會封鎖可在 GitHub 上建立、修改或刪除資料的工具,同時允許唯讀工具。 這項原則由平台管理,因此你不需要撰寫原則函式。
UI
- 在工作區側邊欄,點選 AI 閘道。
- 在 MCP 標籤中,選擇
system.ai.github。 - 打開 政策 標籤,然後點選 新政策。
- 輸入一個政策名稱,例如
block_github_writes。 - 在護欄類型中,選擇 GitHub。
- 選擇 不允許寫入,然後點 選建立政策。
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。 若要自行設定客戶端,請依照以下手動設定操作。
如果
ug還沒安裝,請安裝並檢查版本。 你需要 Python 3.12 或以上版本和uv。 請參閱 編碼代理快速入門 頁面以了解安裝細節。uv tool install git+https://github.com/databricks/unity-gateway ug --version為你的工作區設定程式代理,並在提示時登入。 如果你的裝置已經設定好,可以跳過這個步驟。
ug configure --workspace https://<workspace-hostname>將 GitHub MCP 服務加入你設定的代理程式中。 如果你的管理員已發布的設定已經加入了,請跳過這個步驟。
ug mcp add --names system.ai.github確認服務是否顯示在您的設定連線中:
ug mcp list啟動或重啟你的客服人員以便使用該服務。 例如,啟動 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;
欲了解更多監控資訊,請參閱 監控使用。