本頁說明如何使用自訂 Model Context Protocol (MCP) 伺服器連結資料來源,讓 Gemini Enterprise 安全存取公司的私有資料。
總覽
自訂 MCP 資料儲存庫可讓您將公開和私人工具,以及符合 MCP 規範的第三方系統,直接整合至 Gemini Enterprise。如果無法使用標準連接器,這種方法可提供統一的方式來連結舊版系統。AI 代理可透過這項整合機制,存取基礎架構中的重要業務資訊和專用邏輯。
存取公開 MCP 伺服器時,流量會透過 Google 代管的網路轉送。如要啟用 Agent Gateway 輸出至私人網路,必須在 Gemini Enterprise 應用程式中註冊自訂 MCP 伺服器,並設定透過 Agent Gateway 轉送私人流量 (us-central1 和 europe-west1 支援)。
限制
自訂 MCP 伺服器有下列限制:
伺服器傳送事件 (SSE):不支援舊版
SSE傳輸。連接器僅支援較新的StreamableHTTP傳輸。TLS 憑證規定:使用由公開信任的憑證授權單位 (CA) 簽署的 TLS 憑證設定自訂 MCP 伺服器,但有以下例外狀況:
- 透過 Agent Gateway 使用私人 MCP 伺服器:如果透過 Agent Gateway 轉送輸出流量,您可以在代理連線範本中設定自訂 TLS 信任錨點 (
tlsConfig),使用私人 CA 或自行簽署的憑證。
- 透過 Agent Gateway 使用私人 MCP 伺服器:如果透過 Agent Gateway 轉送輸出流量,您可以在代理連線範本中設定自訂 TLS 信任錨點 (
動作數量限制:為確保最佳效能,自訂 MCP 伺服器資料儲存庫中,一次最多只能啟用 100 個動作。詳情請參閱「啟用動作」。
Agent Gateway 繫結限制:Gemini Enterprise 應用程式會繫結至單一 egress Agent Gateway,但多個 Gemini Enterprise 應用程式可以共用同一個 Agent Gateway。
在應用程式範圍內建立:您無法將獨立的自訂 MCP 伺服器資料儲存庫連結至 Gemini Enterprise 應用程式。請直接在應用程式的「Connected Data Stores」(已連結的資料儲存庫) 下方建立資料儲存庫。
VPC Service Controls:輸出控制項是透過組織政策限制 (例如
allowedEgressFqdns和allowedDataSources) 強制執行,而非執行階段流量強制執行。在已啟用 VPC Service Controls 的專案中,只要明確允許必要的輸出網域和資料來源,即可使用自訂 MCP 伺服器。詳情請參閱「覆寫自訂 MCP 資料儲存庫的組織政策」。
事前準備
設定自訂 MCP 伺服器連線前,請務必完成下列事項:
自訂 MCP 資料儲存庫適用多項組織政策限制。您必須:
覆寫禁止建立自訂 MCP 資料儲存庫的組織政策限制。詳情請參閱「覆寫自訂 MCP 資料儲存庫的組織政策」。
明確允許自訂 MCP 伺服器網址、授權網址和權杖網址的完整網域名稱 (FQDN)。詳情請參閱「設定允許的輸出 FQDN」。
如果專案已啟用強制執行功能,或受到 VPC Service Controls 保護,您必須將
custom_mcp新增至允許的資料來源。請參閱「設定允許的資料來源」。如果透過 Agent Gateway 轉送輸出流量,請確認專案組織政策允許將 Gemini Enterprise 應用程式繫結至閘道。詳情請參閱「限制 Gemini Enterprise 只能繫結至核准的 Agent Gateway」。
選用:如果自訂 MCP 伺服器託管於私人虛擬私有雲 (VPC) 網路,請先完成網路連結、閘道和防火牆設定。詳情請參閱「使用虛擬私有雲連線能力設定自訂 MCP 伺服器資料儲存庫的必要條件」。
授予 Discovery Engine 編輯者角色 (
roles/discoveryengine.editor)。管理員必須具備這個角色,才能建立資料儲存庫。請按照下列步驟操作來授予這個角色:
向識別資訊提供者 (例如 Okta、Azure AD 或 Google) 註冊 Gemini Enterprise,做為 OAuth 用戶端應用程式。
如要註冊應用程式,請按照下列步驟操作:
將授權重新導向網址設為
https://vertexaisearch.cloud.google.com/oauth-redirect。將必要的 OAuth 範圍授予用戶端應用程式。
註冊用戶端應用程式後,請取得
client_id和client_secret,以便在後續步驟中設定自訂 MCP 伺服器資料儲存庫。如果自訂 MCP 伺服器託管於 Cloud Run,且需要驗證,請將 Cloud Run 叫用者 (
roles/run.invoker) 角色授予服務代理。詳情請參閱「在 Cloud Run 為自訂 MCP 伺服器設定驗證機制」。
在 Cloud Run 設定自訂 MCP 伺服器的驗證機制
如果自訂 MCP 伺服器託管於 Cloud Run 且需要驗證,Gemini Enterprise 可以安全連線至不允許公開存取的私人服務。
驗證機制的運作方式
連線至 Cloud Run 服務時,Gemini Enterprise 會自動在每項要求中傳送下列授權標頭:
X-Serverless-Authorization:包含 Google 簽署的 ID 權杖,用於驗證 Gemini Enterprise 服務代理。Authorization:完整保留使用者的 OAuth 權杖。
將存取權授予服務代理
如要授權 Gemini Enterprise 叫用私人 Cloud Run 服務,請將Cloud Run 叫用者 (roles/run.invoker) 角色授予接收服務上的 Gemini Enterprise 服務代理。
服務代理電子郵件地址的格式如下:
service-PROJECT_NUMBER@gcp-sa-discoveryengine.iam.gserviceaccount.com
將 PROJECT_NUMBER 替換為託管 Gemini Enterprise 應用程式的Google Cloud 專案編號。
如要瞭解如何授予服務的 IAM 角色,請參閱「驗證服務對服務」。
建立自訂 MCP 伺服器資料儲存庫
如要設定設定流程,請按照下列步驟操作:
前往 Google Cloud 控制台的「Gemini Enterprise」頁面。
在導覽選單中,按一下「Apps」(應用程式),然後選取需要自訂 MCP 資料儲存庫連線能力的應用程式。
按一下「連結的資料儲存庫」。
按一下「 New data store」(新增資料儲存庫)。
在「Select a data source」(選取資料來源) 頁面的「Search sources」(搜尋來源) 欄位中,輸入「Custom MCP 伺服器」。系統會顯示「Custom MCP Server」(自訂 MCP 伺服器) 資訊卡。
按一下「新增 MCP 伺服器」。「MCP Server Configuration」(MCP 伺服器設定) 頁面隨即顯示。
選用:如要透過 Agent Gateway 轉送傳出流量,請勾選「Route egress through Agent Gateway」(透過 Agent Gateway 轉送輸出流量) 核取方塊。如果符合下列任一情況,請選取這個選項:
- 私人網路託管:在虛擬私有雲網路中,以私人方式託管自訂 MCP 伺服器。
- 靜態 IP egress:您在外部託管自訂 MCP 伺服器 (例如地端部署或透過第三方供應商),並要求傳入的要求必須來自保留的靜態 IP 位址。透過 Agent Gateway 將流量轉送至虛擬私有雲網路,即可透過具有固定 IP 位址的閘道輸出流量,因此您可以在外部伺服器上設定 IP 防火牆許可清單。
在「Engine resource name」(引擎資源名稱) 欄位中,輸入輸出流量轉送至的引擎資源名稱,格式如下:
projects/PROJECT_NUMBER/locations/LOCATION/collections/default_collection/engines/APP_ID更改下列內容:
PROJECT_NUMBER:您的 Google Cloud 專案編號。LOCATION:應用程式的位置,例如global、us或eu。APP_ID:應用程式 ID。
如何取得引擎資源名稱
如果不知道應用程式的引擎資源名稱,可以使用 Discovery Engine API 列出專案中的引擎:
curl -s -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "X-Goog-User-Project: PROJECT_ID" \ "https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION/collections/default_collection/engines" \ | jq -r '.engines[]? | "App Name: \(.displayName)\nEngine Resource Name: \(.name)\n"'
更改下列內容:
PROJECT_ID:專案 ID。ENDPOINT_LOCATION:API 要求適用的多區域。請指定下列其中一個值:us適用於美國多區域eu代表歐盟多區域global適用於全域位置
PROJECT_NUMBER: Google Cloud 專案的編號。LOCATION:應用程式的位置 (例如global、us或eu)。
輸出內容範例:
App Name: Cymbal Math App Engine Resource Name: projects/1234567890/locations/global/collections/default_collection/engines/chat-app-cymbal
在「Authentication settings」(驗證設定) 部分,選取下列其中一個選項:
OAuth 2.0:選取這個選項即可新增驗證。
在下列必填欄位中輸入值:
欄位 說明 MCP 伺服器網址 這是託管 MCP 伺服器的端點。必須是 HTTPS 網址。Gemini Enterprise 僅支援 StreamableHTTP傳輸。網址通常以/mcp結尾。例如:https://mcp.cymbal.com/mcp。授權網址 使用者授權 Gemini Enterprise 存取 MCP 伺服器的基準網址。例如: https://mcp.cymbal.com/authorize。授權網址參數 選用。授權網址所需的任何其他參數。例如,如要從 Google MCP 伺服器取得更新權杖,請輸入 &access_type=offline&prompt=consent。
如果授權伺服器需要audience參數,您可以在這項設定中新增該參數。例如:&audience=https://api.cymbal.com/v1/。權杖網址 在 OAuth 驗證期間,用於交換授權碼和存取權杖的端點。例如: https://mcp.cymbal.com/token。用戶端 ID 您在識別資訊提供者中註冊的 OAuth 應用程式專屬 ID,用於代表 Gemini Enterprise。 用戶端密鑰 與 OAuth 應用程式相關聯的機密金鑰,該應用程式是在識別資訊提供者中註冊,代表 Gemini Enterprise。 範圍 定義 Gemini Enterprise 可代表使用者執行的動作,或可在 MCP 伺服器存取的資料。Gemini Enterprise 會在使用者授權期間要求這些範圍。設定 OAuth 應用程式,支援這些範圍。
指定範圍時,請考量下列事項:- 請提供以空格分隔的範圍清單。舉例來說,如果是 Box,請提供:
root_readwrite manage_managed_users manage_groups。 - 請確認提供的範圍足以讓使用者登入,並使用管理員啟用的工具或動作,否則代理無法存取您的應用程式。
- 常見的範圍是
offline_access,可讓應用程式要求更新權杖。
啟用 PKCE 支援 選用。勾選這個核取方塊,即可啟用 Proof Key for Code Exchange (PKCE, RFC 7636),進一步提升 OAuth 安全性。如果 MCP 伺服器的 OAuth 供應商支援 PKCE,請啟用這項設定。 使用 HTTP 基本驗證 選用。預設為選取。使用基本驗證,在 HTTP Authorization標頭中傳送用戶端 ID 和用戶端密鑰,而不是在權杖要求主體中傳送。- 請提供以空格分隔的範圍清單。舉例來說,如果是 Box,請提供:
點按「確認你的身分」。
按一下「繼續」。
不需驗證:如果 MCP 伺服器不需要驗證,請選取這個選項。
輸入 MCP 伺服器網址。這是託管 MCP 伺服器的端點。必須是 HTTPS 網址。Gemini Enterprise 僅支援
StreamableHTTP傳輸。網址通常會以/mcp結尾。例如:https://mcp.cymbal.com/mcp。按一下「繼續」。
選用:在「Advanced options」(進階選項) 部分的「MCP Server Description」(MCP 伺服器說明) 欄位中,說明 MCP 伺服器的用途和使用方式。
按一下「繼續」。
在「Configure your data connector」(設定資料連接器) 部分,從「Multi-region」(多區域) 欄位清單中,選取「Location of your data connector」(資料連接器的位置)。
在「Your data connector name」(資料連接器名稱) 欄位,輸入資料儲存庫的名稱。
選用:在「Tag」(標記) 欄位中輸入標記,以便在不同版本中識別這個資料連接器。這個標記建立後即無法變更。
選用:在「Sensitive Data Protection policy」(Sensitive Data Protection 政策) 欄位中,輸入 Sensitive Data Protection 政策的資源路徑,檢查並遮蓋要求中的機密資料。請使用下列格式:
projects/PROJECT_ID/locations/LOCATION/contentPolicies/POLICY_ID。點選「建立」。Gemini Enterprise 會隨即建立資料儲存庫,並在「Connected Data Stores」(連結的資料儲存庫) 頁面上顯示。
確認自訂 MCP 伺服器的狀態
如要驗證自訂 MCP 伺服器的狀態,請執行下列操作:
在「連結的資料儲存庫」清單中,點選資料儲存庫。畫面上會顯示資料儲存庫的詳細資料。
監控資料儲存庫的狀態,直到狀態變更為
Active為止。資料儲存庫狀態從Creating變更為Active後,即可使用自訂 MCP 伺服器資料儲存庫。
啟用動作
根據預設,所有動作都會關閉。連結 MCP 伺服器時,系統會匯入伺服器的所有工具,並在 Gemini Enterprise 資料儲存庫中顯示為動作。為確保最佳體驗,一次最多可啟用 100 個動作。如要為使用者啟用這些動作,請按照下列步驟操作:
- 前往自訂 MCP 伺服器資料儲存庫。
依序點選「動作」>「重新載入自訂動作」,重新驗證。
選取要啟用的動作。
按一下「啟用動作」。
設定註解,略過使用者確認
將 MCP 伺服器的工具匯入 Gemini Enterprise 資料儲存庫做為動作時,Gemini Enterprise 會檢查工具註解,判斷是否需要使用者確認。根據預設,所有動作呼叫都需要使用者確認,因為 Gemini Enterprise 假設任何作業都可能造成破壞,並可能變更資料。
如果伺服器提供唯讀功能 (例如查詢資料庫),而您想略過這項確認,提供更流暢的使用者體驗,可以在匯入 MCP 工具做為動作前,先在工具規格中設定註解。
如要管理資料儲存庫動作的使用者確認設定,請在 MCP 工具定義中設定下列註解:
readOnlyHint:如果作業不會破壞資料,且只會讀取資料,請在工具定義中加入這個註解。工具執行時會略過使用者確認。destructiveHint:如果工具會修改資料,請明確使用這個註解。這會維持預設的確認行為。
例如,在 Python 中:
@mcp.tool(annotations={ "destructiveHint": False, "readOnlyHint": True })
為確保變更反映在設定中,請重新載入自訂動作。 詳情請參閱「啟用動作」。
效能和穩定性最佳做法
使用自訂 MCP 伺服器時,請遵循下列最佳做法,盡可能縮短回應延遲時間,並避免要求逾時:
- 工具說明和結構定義應簡潔扼要:工具說明和輸入參數結構定義應簡潔扼要,縮短提示處理延遲時間。
- 對長時間執行的作業使用分頁或非同步輪詢:對大型查詢結果進行分頁,確保個別工具呼叫快速完成。如果是長時間執行的後端作業 (例如大型資料倉儲查詢或報表生成),請實作非同步工具模式,讓一項工具啟動工作並立即傳回工作 ID,另一項工具則輪詢工作狀態並擷取結果。
- 要求離線存取永久 OAuth 權杖:設定 OAuth 2.0 驗證時,請在初始設定中加入
offline_access範圍 (或在授權網址參數中加入&access_type=offline&prompt=consent,適用於需要此參數的提供者),讓識別資訊提供者核發更新權杖,避免初始存取權杖到期後,要求失敗或逾時。 - 關閉未使用的動作和資料儲存庫,或狀態不佳的動作和資料儲存庫:只啟用使用者需要的動作,並關閉未使用或維護中的自訂 MCP 伺服器資料儲存庫,以免無法連線的端點增加對話回合的延遲時間。
後續步驟
- 如要防範惡意輸入和輸出內容,請啟用 Model Armor。詳情請參閱「啟用 Model Armor」。
- 如要使用自訂代理 (而非 Gemini Enterprise 助理) 查詢 MCP 伺服器,請參閱「建立代理」。
- 如要使用連結至自訂 MCP 伺服器的代理,請參閱「使用代理」。
- 如要在 Gemini Enterprise 使用自訂 MCP 伺服器上的工具回答問題時,顯示來源引用資訊方塊,請參閱「設定自訂 MCP 資料儲存庫的引用資訊」。