Model Context Protocol (MCP) 可將大型語言模型 (LLM) 和 AI 應用程式/代理程式連結至外部資料來源的方式標準化。MCP 伺服器可讓您使用工具、資源和提示,從後端服務採取行動及取得更新資料。
本機和遠端 MCP 伺服器有何不同?
- 本機 MCP 伺服器
- 通常在本機執行,並使用標準輸入和輸出串流 (stdio) 在同一部裝置上的服務之間通訊。
- 遠端 MCP 伺服器
- 在服務的基礎架構上執行,並為 AI 應用程式提供 HTTP 端點,供 AI MCP 用戶端與 MCP 伺服器通訊。如要進一步瞭解 MCP 架構,請參閱 MCP 架構。
如要瞭解 Spanner 本機 MCP 伺服器,請參閱 MCP Toolbox for Databases。
Google 和 Google Cloud 遠端 MCP 伺服器
Google 和 Google Cloud 遠端 MCP 伺服器具備下列功能和優勢:- 簡化集中式探索作業
- 代管全域或區域 HTTP 端點
- 精細授權
- 使用 Model Armor 保護機制,選擇性確保提示詞和回覆安全無虞
- 集中式稽核記錄
如要瞭解其他 MCP 伺服器,以及 Google Cloud MCP 伺服器適用的安全性與控管措施,請參閱 Google Cloud MCP 伺服器總覽。
事前準備
- 登入 Google Cloud 帳戶。如果您是 Google Cloud新手,歡迎 建立帳戶,親自評估產品在實際工作環境中的成效。新客戶還能獲得價值 $300 美元的免費抵免額,可用於執行、測試及部署工作負載。
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
啟用 Spanner API。
啟用 API 時所需的角色
如要啟用 API,您需要服務使用情形管理員 IAM 角色 (
roles/serviceusage.serviceUsageAdmin),其中包含serviceusage.services.enable權限。瞭解如何授予角色。如果是新專案,系統會自動啟用 Spanner API。
必要的角色
如要取得使用 Spanner MCP 伺服器所需的權限,請要求管理員在您要使用 Spanner MCP 伺服器的專案中,授予下列 IAM 角色:
-
發出 MCP 工具呼叫:
MCP 工具使用者 (
roles/mcp.toolUser) -
建立 OAuth 用戶端 ID:
「OAuth 設定編輯器」 (
roles/oauthconfig.editor) -
使用 Spanner MCP 工具:
Cloud Spanner 管理員 (
roles/spanner.admin)
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
這些預先定義的角色具備使用 Spanner MCP 伺服器所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:
所需權限
如要使用 Spanner MCP 伺服器,必須具備下列權限:
-
呼叫 MCP 工具:
mcp.tools.call -
使用 Spanner MCP 工具:
-
spanner.instances.create -
spanner.instances.get -
spanner.databases.create -
spanner.databases.update -
spanner.sessions.create -
spanner.instanceOperations.get -
spanner.databases.getDdl -
spanner.databases.select -
spanner.databases.write
-
驗證及授權
Spanner MCP 伺服器會使用 OAuth 2.0 通訊協定搭配 Identity and Access Management (IAM) 進行驗證和授權。所有Google Cloud 身分都支援 MCP 伺服器驗證。
Spanner 遠端 MCP 伺服器不接受 API 金鑰。
建議您使用 MCP 工具為代理建立個別身分,以便控管及監控資源存取權。如要進一步瞭解驗證,請參閱「向 MCP 伺服器進行驗證」。
Spanner MCP OAuth 範圍
OAuth 2.0 會使用範圍和憑證,判斷經過驗證的主體是否獲得授權,可對資源執行特定動作。如要進一步瞭解 Google 的 OAuth 2.0 範圍,請參閱「使用 OAuth 2.0 存取 Google API」。
Spanner 具有下列 MCP 工具 OAuth 範圍:
| gcloud CLI 的範圍 URI | 說明 |
|---|---|
https://www.googleapis.com/auth/spanner.admin |
允許存取權,可管理 Spanner 執行個體和資料庫。 |
https://www.googleapis.com/auth/spanner.data |
可檢視及管理 Spanner 資料庫中的資料。 |
如要進一步瞭解這些範圍,請參閱「Spanner API」。
設定 MCP 用戶端,以使用 Spanner MCP 伺服器
主機程式 (例如 Claude 或 Gemini CLI) 可以例項化 MCP 用戶端,連線至單一 MCP 伺服器。主機程式可以有多個連線至不同 MCP 伺服器的用戶端。如要連線至遠端 MCP 伺服器,MCP 用戶端至少必須知道遠端 MCP 伺服器的網址。
請按照下列操作說明設定 MCP 用戶端,連線至遠端 Spanner MCP 伺服器。
Gemini CLI
如要將 Spanner 遠端 MCP 伺服器新增至 Gemini CLI,請將其設定為擴充功能。
-
在下列位置建立擴充功能檔案:
~/.gemini/extensions/EXT_NAME/gemini-extension.json,其中~/是您的主目錄,EXT_NAME 則是您要為擴充功能命名的名稱。 -
在擴充功能檔案中新增下列內容:
{ "name": "EXT_NAME", "version": "1.0.0", "mcpServers": { "Spanner MCP Server": { "httpUrl": "https://spanner.googleapis.com/mcp", "authProviderType": "google_credentials", "oauth": { "scopes": ["https://www.googleapis.com/auth/cloud-platform"] }, "timeout": 30000, "headers": { "x-goog-user-project": "PROJECT_ID" } } } }
-
儲存擴充功能檔案。
-
啟動 Gemini CLI:
gemini
-
在 CLI 中執行
/mcp,即可查看設定的 MCP 伺服器及其工具。回覆內容大致如下:
Configured MCP servers: 🟢 Spanner MCP Server (from spanner ) - get_database_ddl - get_instance - get_operation - create_database - create_instance - create_session - commit - execute_sql - list_databases - list_instances
現在可以在 Gemini CLI 中使用遠端 MCP 伺服器。
Claude.ai
如要在 Claude.ai 中設定 Google 和 Google Cloud MCP 伺服器,必須使用 Claude Enterprise、Pro、Max 或 Team 方案。如要查看定價資訊,請參閱「Claude 定價」。
如要將 Spanner 遠端 MCP 伺服器新增至 Claude.ai,請使用 OAuth 用戶端 ID 和 OAuth 用戶端密鑰設定自訂連接器:
建立 OAuth 2.0 用戶端 ID 和密鑰
-
在 Google Cloud 控制台中,依序前往「Google Auth Platform」>「Clients」>「Create client」。
如果沒有選取專案,系統會提示您建立專案。
在「應用程式類型」清單中,選取「網頁應用程式」。
在「Name」(名稱) 欄位中,輸入應用程式的名稱。
在「已授權的重新導向 URI」部分,按一下「+ 新增 URI」,然後在「URI」欄位中新增
https://claude.ai/api/mcp/auth_callback。點按「Create」(建立)。已建立用戶端。如要存取用戶端 ID,請前往 Google Cloud 控制台的「Google Auth Platform」>「Clients」(用戶端)。
在「OAuth 2.0 用戶端 ID」清單中,選取用戶端名稱。
-
在「Client secrets」專區中,複製「Client secret」並儲存在安全地點。你只能複製一次。如果遺失密鑰,請刪除並建立新的密鑰。
在 Claude.ai 中建立自訂連接器
-
在 Claude.ai 中,前往方案的「連結器」設定:
- 如果是 Enterprise 或 Team 方案,請依序前往「管理設定」>「連接器」。
- 如果是 Pro 或 Max 方案,請依序前往「設定」>「連結器」。
按一下「新增自訂連結器」。
-
在「新增自訂連接器」對話方塊中,輸入下列資訊:
- 伺服器名稱:使用者可解讀的伺服器名稱。
- 遠端 MCP 伺服器網址:
https://spanner.googleapis.com/mcp
-
展開「進階設定」選單,然後輸入下列內容:
- OAuth 用戶端 ID:您建立的 OAuth 2.0 用戶端 ID。
- OAuth 用戶端密鑰 (僅限 Pro 和 Max 方案):OAuth 2.0 用戶端的密鑰。如要擷取密鑰,請前往 Google Auth Platform > Clients,然後選取您建立的 OAuth 用戶端 ID。在「Client secrets」部分,按一下即可複製「用戶端密鑰」。
-
按一下「新增」。
已建立自訂連接器。
-
開啟「工具」選單,然後啟用連接器。
Claude.ai 可以使用 MCP 伺服器。
ChatGPT
如要透過 ChatGPT 使用 Google 和 Spanner MCP 伺服器,必須訂閱 ChatGPT Business。
如要將 Spanner 遠端 MCP 伺服器新增至 ChatGPT,請建立 Google OAuth 2.0 用戶端 ID 和 Secret,然後將 MCP 伺服器新增為 ChatGPT 中的應用程式。
建立 OAuth 2.0 用戶端 ID 和密鑰
-
在 Google Cloud 控制台中,依序前往「Google Auth Platform」>「Clients」>「Create client」。
如果沒有選取專案,系統會提示您建立專案。
在「應用程式類型」清單中,選取「網頁應用程式」。
在「Name」(名稱) 欄位中,輸入應用程式的名稱。
在「已授權的 JavaScript 來源」部分,按一下「+ 新增 URI」,然後在「URI」欄位中新增
https://chatgpt.com。在「已授權的重新導向 URI」部分,按一下「+ 新增 URI」,然後在「URI」欄位中新增
https://chatgpt.com/connector_platform_oauth_redirect。點按「Create」(建立)。已建立用戶端。如要存取用戶端 ID,請前往 Google Cloud 控制台的「Google Auth Platform」>「Clients」(用戶端)。
在「OAuth 2.0 用戶端 ID」清單中,選取用戶端名稱。
-
在「Client secrets」專區中,複製「用戶端密鑰」並妥善保存。你只能複製一次。如果遺失密鑰,請刪除並建立新的密鑰。
在 ChatGPT 中將 MCP 伺服器新增為應用程式
- 登入 ChatGPT。
- 開啟開發人員模式:
- 在 ChatGPT 中,按一下使用者名稱開啟「個人資料」選單,然後選取「設定」。
- 在「設定」選單中選取「應用程式」,然後按一下「進階設定」。
- 在進階設定中,按一下開發人員模式切換鈕,將其設為開啟。
- 依序前往「設定」 >「應用程式」,然後按一下「建立應用程式」按鈕。
- 在「New app」對話方塊中,輸入以下資訊:
- 名稱:MCP 伺服器的名稱。
- 說明:MCP 伺服器的選填說明。
- MCP 伺服器網址:
https://spanner.googleapis.com/mcp - 驗證:
- 在「Authentication」選單中選取「OAuth」。
- 在「OAuth 用戶端 ID」欄位中,輸入 Google OAuth 用戶端 ID。
- 在「OAuth secret」(OAuth 密鑰) 欄位中,輸入 Google OAuth 用戶端密鑰。
- 確認您瞭解使用 MCP 伺服器相關的風險,然後按一下「建立」。
MCP 伺服器會顯示在「應用程式」選單中,並可透過聊天提示使用。
MCP 客戶一般指南
如果「設定 MCP 用戶端以使用 Spanner MCP 伺服器」一文未提供 MCP 用戶端的具體操作說明,請使用下列資訊,在主機程式或 AI 應用程式中連線至遠端 MCP 伺服器。系統會提示您輸入伺服器的詳細資料,例如名稱和網址。
如果是 Spanner 遠端 MCP 伺服器,請輸入下列資訊:
- 伺服器名稱:Spanner MCP 伺服器
- 伺服器網址或端點:
https://spanner.googleapis.com/mcp - 傳輸:HTTP
- 驗證詳細資料:視驗證方式而定,您可以輸入 Google Cloud 憑證、OAuth 用戶端 ID 和密鑰,或是代理程式身分和憑證。
如需更多一般指引,請參閱下列資源:
可用的工具
如要查看 Spanner MCP 伺服器可用 MCP 工具的詳細資料和說明,請參閱 Spanner MCP 參考資料。
列出工具
使用 MCP 檢查器列出工具,或直接將 tools/list HTTP 要求傳送至 Spanner 遠端 MCP 伺服器。tools/list 方法不需要驗證。
POST /mcp HTTP/1.1
Host: spanner.googleapis.com
Content-Type: application/json
{
"jsonrpc": "2.0",
"method": "tools/list",
}
觀測能力
Spanner MCP 伺服器支援 Spanner 內省和觀測工具。
要求標記
使用 Spanner MCP 伺服器執行的查詢或提交的交易,都會自動加上特定要求標記。您可以使用這些標記偵錯查詢和交易。詳情請參閱「解決要求標記和交易標記問題」。
| 工具名稱 | 要求標記 |
|---|---|
execute_sql |
mcp_execute_sql |
execute_sql_readonly |
mcp_execute_sql_readonly |
commit |
mcp_commit |
應用實例
以下是 Spanner MCP 伺服器的應用實例範例。
使用 Spanner 開發應用程式
應用程式開發人員可以使用 Spanner MCP 伺服器,佈建資源、建立資料庫及填入範例資料。
提示範例:「在 PROJECT_ID 專案的 us-central1 區域執行個體設定中,建立區域 Spanner 執行個體。建立資料庫來追蹤庫存,並填入 5 個範例產品。
將 PROJECT_ID 替換為 Google Cloud 專案 ID。
工作流程:
開發應用程式的工作流程可能如下所示:
代理程式會呼叫
create_instance工具,使用指定的執行個體設定佈建新的 Spanner 執行個體。代理程式可能會叫用get_operation工具,確認例項是否已可供使用。代理會呼叫
create_database工具,建立具有必要結構定義的新資料庫。代理程式可能會呼叫get_operation工具,檢查資料庫建立作業的狀態。代理程式可使用
create_session、execute_sql和commit工具組合,插入範例資料。視需要,代理程式可以呼叫
execute_sql工具,查詢及驗證範例資料建立作業。
作業洞察和資料庫設定管理
Spanner 管理員可以使用 Spanner MCP 伺服器,透過 list_instances、get_instance、list_databases 和 get_database_ddl 等工具收集 Spanner 執行個體和資料庫的相關資訊。
提示詞範例:
- 列出目前專案中的所有 Spanner 執行個體。
- 列出目前 Spanner 執行個體中的所有資料庫。
- 「Show the schema for the current Spanner database」(顯示目前 Spanner 資料庫的結構定義)。
選用的安全防護設定
由於 MCP 工具可執行各種動作,因此會帶來新的安全風險和考量。為盡量降低及管理這些風險,Google Cloud 提供預設設定和可自訂的政策,控管機構或專案中 MCP 工具的使用情形。 Google Cloud
如要進一步瞭解 MCP 安全性和控管措施,請參閱這篇文章。
使用 Model Armor
Model Armor 是一項Google Cloud 服務,可提高 AI 應用程式的安全性。這項功能會主動篩選 LLM 提示詞和回覆,防範各種風險並支援負責任的 AI 做法。無論您是在雲端環境或外部雲端供應商部署 AI,Model Armor 都能協助您防範惡意輸入、驗證內容安全性、保護私密資料、維持法規遵循狀態,並在多元的 AI 環境中,持續強制執行 AI 安全政策。
啟用 Model Armor 並啟用記錄功能後,Model Armor 會記錄整個酬載。這可能會導致記錄中的私密資訊外洩。
啟用 Model Armor
您必須先啟用 Model Armor API,才能使用 Model Armor。
控制台
gcloud
開始前,請使用 Google Cloud CLI 搭配 Model Armor API 執行下列步驟:
在 Google Cloud 控制台中啟用 Cloud Shell。
Google Cloud 主控台底部會開啟一個 Cloud Shell 工作階段,並顯示指令列提示。Cloud Shell 是已安裝 Google Cloud CLI 的殼層環境,並已針對您目前的專案設定好相關值。工作階段可能要幾秒鐘的時間才能初始化。
-
執行下列指令,為 Model Armor 服務設定 API 端點。
gcloud config set api_endpoint_overrides/modelarmor "https://modelarmor.LOCATION.rep.googleapis.com/"
將
LOCATION替換為要使用 Model Armor 的區域。
設定 Google 和遠端 MCP 伺服器的防護功能 Google Cloud
如要保護 MCP 工具呼叫和回應,可以使用 Model Armor 底限設定。底限設定會定義專案適用的最低安全性篩選條件。這項設定會對專案中的所有 MCP 工具呼叫和回應套用一致的篩選條件。
設定啟用 MCP 消毒功能的 Model Armor 底限設定。詳情請參閱「設定 Model Armor 底價」。
請參閱下列指令範例:
gcloud model-armor floorsettings update \ --full-uri='projects/PROJECT_ID/locations/global/floorSetting' \ --enable-floor-setting-enforcement=TRUE \ --add-integrated-services=GOOGLE_MCP_SERVER \ --google-mcp-server-enforcement-type=INSPECT_AND_BLOCK \ --enable-google-mcp-server-cloud-logging \ --malicious-uri-filter-settings-enforcement=ENABLED \ --add-rai-settings-filters='[{"confidenceLevel": "MEDIUM_AND_ABOVE", "filterType": "DANGEROUS"}]'
將 PROJECT_ID 替換為 Google Cloud 專案 ID。
請注意下列設定:
INSPECT_AND_BLOCK:強制執行類型,可檢查 Google MCP 伺服器的內容,並封鎖符合篩選條件的提示和回覆。ENABLED:啟用篩選器或強制執行的設定。MEDIUM_AND_ABOVE:負責任的 AI 技術 - 危險篩選器設定的信心水準。您可以修改這項設定,但較低的值可能會導致更多誤判。詳情請參閱「Model Armor 信心水準」。
停用使用 Model Armor 掃描 MCP 流量
如要停止讓 Model Armor 根據專案的底限設定,自動掃描往返 Google MCP 伺服器的流量,請執行下列指令:
gcloud model-armor floorsettings update \
--full-uri='projects/PROJECT_ID/locations/global/floorSetting' \
--remove-integrated-services=GOOGLE_MCP_SERVER
將 PROJECT_ID 替換為 Google Cloud 專案 ID。Model Armor 不會自動將這個專案底限設定中定義的規則,套用至任何 Google MCP 伺服器流量。
Model Armor 底限設定和一般設定不僅會影響 MCP,由於 Model Armor 會與 Vertex AI 等服務整合,因此您對底限設定所做的任何變更,都會影響所有整合服務 (不只是 MCP) 的流量掃描和安全行為。
使用 IAM 拒絕政策控管 MCP 使用情形
身分與存取權管理 (IAM) 拒絕政策可協助您保護 Google Cloud 遠端 MCP 伺服器。設定這些政策,即可封鎖不必要的 MCP 工具存取權。
舉例來說,您可以根據下列條件拒絕或允許存取:
- 主體
- 工具屬性 (例如唯讀)
- 應用程式的 OAuth 用戶端 ID
詳情請參閱「使用 Identity and Access Management 控制 MCP 使用情形」。
後續步驟
- 參閱 Spanner MCP 參考說明文件。
- 進一步瞭解 Google Cloud MCP 伺服器。