使用 Cloud CLI 遠端 MCP 伺服器

本文說明如何使用 Cloud CLI 遠端 Model Context Protocol (MCP) 伺服器,連線至 AI 應用程式,包括 Gemini CLI、ChatGPT、Claude,以及您正在開發的自訂應用程式。

Cloud CLI 遠端 MCP 伺服器提供安全環境,可讓您將自然語言提示傳送至 AI 應用程式,代表您執行指令列介面 (CLI) 指令。支援 gcloudbq 指令。

這項功能的 API 稱為 Cloud CLI Execution。

啟用 Cloud CLI Execution API 時,系統會啟用 Cloud CLI 遠端 MCP 伺服器。

Model Context Protocol (MCP) 規範大型語言模型 (LLM) 和 AI 應用程式/代理程式連結外部資料來源的標準方式。MCP 伺服器可讓您使用工具、資源和提示,從後端服務執行動作及取得更新資料。

本機和遠端 MCP 伺服器有何不同?

本機 MCP 伺服器
通常在本機電腦上執行,並使用標準輸入和輸出串流 (stdio),在同一部裝置上的服務之間進行通訊。
遠端 MCP 伺服器
在服務的基礎架構上執行,並為 AI 應用程式提供 HTTP 端點,供 AI MCP 用戶端與 MCP 伺服器之間的通訊。如要進一步瞭解 MCP 架構,請參閱 MCP 架構

Google 和 Google Cloud 遠端 MCP 伺服器

Google 和 Google Cloud 遠端 MCP 伺服器具有下列功能和優點:

  • 簡化集中式探索作業
  • 代管全域或區域 HTTP 端點
  • 精細授權
  • 使用 Model Armor 保護機制,選擇性確保提示詞和回覆安全無虞
  • 集中式稽核記錄

如要瞭解其他 MCP 伺服器,以及 Google Cloud MCP 伺服器適用的安全性與控管措施,請參閱 Google Cloud MCP 伺服器總覽

限制與規範

開始使用 Cloud CLI 遠端 MCP 伺服器前,請先詳閱下列限制和規範:

支援的指令

由於安全標準和不適用性,Cloud CLI MCP 伺服器不支援特定 gcloudbq 指令 (包括 gcloudalphabeta 變體)。

以下列出幾個不支援的 gcloud 指令範例。請注意,這份清單僅列舉部分內容,我們可能會新增或移除指令,恕不另行通知:

  • gcloud auth
  • gcloud config
  • gcloud iam service-accounts
  • gcloud init
  • gcloud survey

以下是不支援的 bq 指令完整清單:

  • bq init
  • bq pyshell
  • bq shell

強制執行機構政策

透過遠端 MCP 伺服器執行的指令,會以經過驗證的呼叫端身分權限執行。系統會對下游目標資源嚴格執行標準 IAM 權限和組織政策服務限制。

代理程式開發人員相關規範

  • 主體和 IAM 權限:與 Cloud CLI Execution API 互動的主體,與執行 gcloudbq 指令期間與 Google Cloud API 互動的主體相同。由於 Cloud CLI MCP 伺服器可以呼叫許多 Google CloudAPI,建議您遵循最小權限原則的安全性原則,並為呼叫 Cloud CLI MCP 伺服器的使用者、代理程式身分或服務帳戶,指派使用案例所需的最低權限。

  • 選取專案project 是 Cloud CLI MCP 伺服器要求的必要參數,代表用於與 Cloud CLI Execution API 互動的專案。請注意,project 參數與實際 gcloud 指令中設定的 --project--billing-project 旗標無關,也與 Cloud CLI Execution API 執行的 bq 指令的 --project_id--quota_project_id 旗標無關。

    建議您更新代理程式的系統提示或技能,確保代理程式選取正確的專案,執行 Cloud CLI MCP 伺服器要求。

事前準備

  1. 登入 Google Cloud 帳戶。如果您是 Google Cloud新手,歡迎 建立帳戶,親自評估產品在實際工作環境中的成效。新客戶還能獲得價值 $300 美元的免費抵免額,可用於執行、測試及部署工作負載。
  2. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.

  4. Verify that billing is enabled for your Google Cloud project.

  5. Enable the Cloud CLI Execution API.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

  6. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  7. If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.

  8. Verify that billing is enabled for your Google Cloud project.

  9. Enable the Cloud CLI Execution API.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

必要的角色

如要取得使用 Cloud CLI MCP 伺服器所需的權限,請要求管理員在您要使用 Cloud CLI MCP 伺服器的專案中,授予下列 IAM 角色:

如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

這些預先定義的角色具備使用 Cloud CLI MCP 伺服器所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:

所需權限

如要使用 Cloud CLI MCP 伺服器,必須具備下列權限:

  • 呼叫 MCP 工具: mcp.tools.call

您或許還可透過自訂角色或其他預先定義的角色取得這些權限。

驗證及授權

Cloud CLI 遠端 MCP 伺服器會使用 OAuth 2.0 通訊協定搭配 Identity and Access Management (IAM) 進行驗證及授權。所有Google Cloud 身分都支援 MCP 伺服器的驗證。

Cloud CLI 遠端 MCP 伺服器不接受 API 金鑰。

建議您為使用 MCP 工具的代理商建立個別身分,以便控管及監控資源存取權。如要進一步瞭解驗證,請參閱「向 MCP 伺服器進行驗證」。

Cloud CLI OAuth 範圍

OAuth 2.0 會使用範圍和憑證,判斷經過驗證的主體是否有權對資源執行特定動作。如要進一步瞭解 Google 的 OAuth 2.0 範圍,請參閱「使用 OAuth 2.0 存取 Google API」。

Cloud CLI 遠端 MCP 伺服器具有下列 OAuth 範圍:

範圍 URI 說明
https://www.googleapis.com/auth/cloud-platform 查看及管理您在 Google Cloud 服務中的資料。

設定 MCP 用戶端,以使用 Cloud CLI 遠端 MCP 伺服器

AI 應用程式和代理 (例如 Claude 或 Antigravity) 可以例項化 MCP 用戶端,並連至單一 MCP 伺服器。AI 應用程式可有多個連線至不同 MCP 伺服器的用戶端。如果您的應用程式未列在特定用戶端指南中,則可以使用下列資訊,從大多數應用程式連線。

在 AI 應用程式中,尋找新增或連線至遠端 MCP 伺服器的方法。如果是 Cloud CLI 遠端 MCP 伺服器,請視需要輸入下列資訊:

  • 伺服器名稱:Cloud CLI 遠端 MCP 伺服器
  • 伺服器網址端點https://cloudcli.googleapis.com/mcp
  • 傳輸:HTTP
  • 驗證詳細資料:您的 Google Cloud 憑證、OAuth 用戶端 ID 和密鑰,或是代理程式身分和憑證

重新導向 URI

如果是網頁應用程式和部分桌面應用程式,您必須在建立驗證用的用戶端 ID 和密鑰時,將重新導向 URI 加入允許清單。授權伺服器會使用重新導向 URI 將權杖傳送至應用程式。應用程式的說明文件應指定您必須使用的重新導向 URI。系統不支援自訂重新導向 URI

如需設定及連線至 MCP 伺服器的應用程式專屬指引,請參閱用戶端專屬指引

如需更多一般指引,請參閱下列資源:

可用的工具

Cloud CLI 遠端 MCP 伺服器會公開下列工具:

  • run_gcloud_command
  • run_bq_command

如要查看 Cloud CLI MCP 伺服器可用的 MCP 工具詳細資料和說明,請參閱 Google Cloud SDK MCP 參考資料

run_bq_command 與 BigQuery MCP 伺服器的差異

run_bq_command 會在 Cloud CLI 遠端 MCP 伺服器中公開 BigQuery CLI (bq) 介面。這項工具可以執行 BigQuery SQL 指令,並透過自然語言提示執行管理和作業工作。BigQuery 也提供獨立的 MCP 伺服器,用於標準資料分析。每個工具介面都適用於不同的用途:

  • run_bq_command:建構 AI 代理時,請使用 run_bq_command 處理進階管理和作業工作流程,例如管理時段預訂、排定查詢時間、管理表格快照,或是排解及取消工作。
  • BigQuery MCP 伺服器:建構 AI 代理時,請使用 BigQuery MCP 伺服器,透過標準 SQL 執行工具進行資料分析、中繼資料探索和資料修改。

下表列出這兩個工具介面的其他差異:

功能 BigQuery MCP 伺服器 run_bq_command
可用性 正式發布版 預覽
用量 資料分析和資料修改 進階工作和資源管理
目標使用者 業務分析師、資料科學家、SQL 開發人員 BigQuery 管理員、DBA、資料平台和 DevOps 工程師
主要作業 執行標準 SQL (SELECT、INSERT、UPDATE、DELETE)、探索結構定義、檢查中繼資料 查詢排程 (使用 DTS)、取消失控工作、管理配額和預留項目、資料集 IAM 政策、資料表快照/複製作業

清單工具

使用 MCP 檢查器列出工具,或直接將 tools/list HTTP 要求傳送至 Cloud CLI 遠端 MCP 伺服器。tools/list 方法不需要驗證。

POST /mcp HTTP/1.1
Host: cloudcli.googleapis.com
Content-Type: application/json

{
  "jsonrpc": "2.0",
  "method": "tools/list",
}

run_gcloud_command 的應用實例

以下是 run_gcloud_command 在 Cloud CLI 遠端 MCP 伺服器中的用途範例:

資源佈建

使用者以自然語言向代理傳送提示時,代理會使用對應的 MCP 工具 (run_gcloud_command 適用於 gcloud 指令,run_bq_command 適用於 bq 指令) 生成指令。Cloud CLI 隨即會執行指令。

提示範例

"Create a new VPC network named my-network in the project projects/my-project. 然後建立防火牆規則,允許通訊埠 8080 上的內部 TCP 流量。」

工作流程

  1. 代理程式會使用 "gcloud compute networks create my-network --project=projects/my-project --subnet-mode=auto", "project": "projects/my-project" 指令呼叫 run_gcloud_command 工具。

  2. 代理程式會使用 "gcloud compute firewall-rules create allow-internal-8080 --project=projects/my-project --network=my-network --allow=tcp:8080 --source-ranges=10.0.0.0/8 指令呼叫 run_gcloud_command 工具。

可觀測性與診斷

代理程式可以檢查環境狀態及查詢最近的錯誤記錄,協助排解問題。

提示範例:「Find the latest 5 error logs for the Compute Engine instance my-web-server in the project projects/my-project.」(在專案 projects/my-project 中,找出 Compute Engine 執行個體 my-web-server 的最新 5 筆錯誤記錄。)

工作流程

代理程式會使用 "gcloud logging read \"resource.type=gce_instance AND severity>=ERROR\" --limit=5 --order=DESC", project: "my-project" 指令呼叫 run_gcloud_command 工具。

run_bq_command 的應用實例

以下是 run_bq_command 在 Cloud CLI 遠端 MCP 伺服器中的用途範例:

管理 BigQuery 中的資料集

您也可以使用 MCP 伺服器在 BigQuery 中執行查詢及管理資料集。

提示範例:「列出專案中的所有資料集,然後在美國地區建立名為『my_new_dataset』的新資料集。」projects/my-project

工作流程

  1. 代理程式會使用 "bq ls --datasets=true --project_id=my-project", "project": "projects/my-project" 指令呼叫 run_bq_command 工具。

  2. 代理程式會使用 "bq mk --dataset --location=us --project_id=my-project my_new_dataset", "project": "projects/my-project" 指令呼叫 run_bq_command 工具。

排解問題及取消長時間執行的工作

代理程式會檢查正在執行的 BigQuery 工作,找出資源瓶頸、診斷失敗的查詢、取消長時間執行的工作,並擷取執行詳細資料,以提供效能建議。

提示範例

「Check if there are any long-running or resource-intensive queries currently executing in project my-data-project. 如果 bqujob_12345 已執行超過 30 分鐘,請取消並顯示詳細資料。」

工作流程

  1. 代理會使用 "bq ls -j --all --project_id=my-data-project", "project": "projects/my-data-project" 指令呼叫 run_bq_command

  2. 代理程式會檢查工作清單,並使用指令 "bq show -j bqujob_12345 --project_id=my-data-project", "project": "projects/my-data-project" 呼叫 run_bq_command。

  3. 代理程式會呼叫 run_bq_command,並使用以下指令: "bq cancel bqujob_12345 --project_id=my-data-project", "project": "projects/my-data-project"

排定查詢

代理程式會透過 BigQuery CLI 中的 BigQuery 資料移轉服務整合功能,設定排程查詢執行作業,自動重新整理資料。

提示詞範例

「排定在世界標準時間 06:00 執行每日查詢,以重新整理專案 my-data-projectdataset sales_dsdaily_sales_summary 資料表。」

工作流程

  1. 代理會使用以下指令呼叫 run_bq_command"bq query --project_id=my-data-project --use_legacy_sql=false --destination_table=sales_ds.daily_sales_summary --display_name='Daily Sales Refresh' --schedule='every 24 hours' 'SELECT date, SUM(amount) as total FROM sales_ds.transactions GROUP BY date'", "project": "projects/my-data-project"

容量分析和預留項目調整

代理程式會分析用量最高的專案中現有的運算單元預留項目,並更新運算單元指派項目,以管理運算資源。

提示詞範例

「列出專案 my-admin-project 中區域 us-central1 的所有 BigQuery 預留項目,並將 prod-analytics 預留項目的運算單元分配量更新為 500 個運算單元。」

工作流程

  1. 代理程式會呼叫 run_bq_command,並使用以下指令: "bq ls --reservation --project_id=my-admin-project --location=us-central1", "project": "projects/my-admin-project"

  2. 代理程式會呼叫 run_bq_command,並使用以下指令: "bq update --project_id=my-admin-project --reservation --slots=500 prod-analytics --location=us-central1", "project": "projects/my-admin-project"

管理資料表快照和副本

代理程式會建立重要生產資料表的即時快照,或為開發和測試作業提供資料表副本。

提示詞範例

「在專案 my-data-project 中,建立名為 production_db.orders_snapshot_20260720production_db.orders 表格快照。」

工作流程

代理會使用以下指令呼叫 run_bq_command"bq cp --project_id=my-data-project --snapshot production_db.orders production_db.orders_snapshot_20260720", "project": "projects/my-data-project"

資料集存取權和 IAM 權限控管

專員會檢查資料集存取權控管,並更新資料集權限,以授予或撤銷指定主體的存取權。

提示詞範例

「Show the current access configuration for dataset finance_ds in project my-data-project.」(顯示專案 my-data-project. 中資料集 finance_ds 的目前存取設定)

工作流程

  1. 代理會使用以下指令呼叫 run_bq_command"bq show --format=prettyjson my-data-project:finance_ds", "project": "projects/my-data-project"

  2. 代理會更新存取權 JSON 定義,並使用以下指令呼叫 run_bq_command"bq update --source=access_update.json my-data-project:finance_ds", "project": "projects/my-data-project"

選用的安全防護設定

由於 MCP 工具可執行各種動作,因此會帶來新的安全風險和考量。為盡量降低及管理這些風險,Google Cloud 提供預設設定和可自訂的政策,控管機構或專案中 MCP 工具的使用情形。 Google Cloud

如要進一步瞭解 MCP 安全性和控管措施,請參閱「AI 安全性」。

使用 Model Armor

Model Armor 是一項Google Cloud 服務,旨在提升 AI 應用程式的安全性。這項功能會主動篩選 LLM 提示詞和回覆,防範各種風險並支援負責任的 AI 做法。無論您是在雲端環境或外部雲端供應商部署 AI,Model Armor 都能協助您防範惡意輸入、驗證內容安全性、保護敏感資料、維持法規遵循狀態,以及在多元的 AI 環境中,持續落實 AI 安全政策。

啟用 Model Armor 並啟用記錄功能後,Model Armor 會記錄整個酬載。這可能會導致記錄中出現私密資訊。

MCP 要求轉送至 Model Armor

Model Armor 僅在特定區域推出。啟用 Model Armor 後,如果您在 Model Armor 不支援的管轄區使用 MCP 伺服器,不同 MCP 伺服器的呼叫路徑行為可能不同,且可能會違反使用中和傳輸中資料的資料落地法規。如要進一步瞭解個別 MCP 伺服器的行為,請參閱「Model Armor 支援的產品」。

啟用 Model Armor

您必須先啟用 Model Armor API,才能使用 Model Armor。

控制台

  1. 啟用 Model Armor API。

    啟用 API 時所需的角色

    如要啟用 API,您必須具備 serviceusage.services.enable 權限。如果您建立了專案,可能已透過「擁有者」角色 (roles/owner) 取得這項權限。否則,您可以透過「服務使用情形管理員」角色 (roles/serviceusage.serviceUsageAdmin) 取得這項權限。瞭解如何授予角色

    啟用 API

  2. 選取要啟用 Model Armor 的專案。

gcloud

開始前,請使用 Google Cloud CLI 搭配 Model Armor API 執行下列步驟:

  1. 在 Google Cloud 控制台中啟用 Cloud Shell。

    啟用 Cloud Shell

    控制台底部會開啟 Cloud Shell 工作階段,並顯示指令列提示。 Google Cloud Cloud Shell 是已安裝 Google Cloud CLI 的殼層環境,並已針對您目前的專案設定好相關值。工作階段可能要幾秒鐘的時間才能初始化。

  2. 執行下列指令,為 Model Armor 服務設定 API 端點。

    gcloud config set api_endpoint_overrides/modelarmor "https://modelarmor.LOCATION.rep.googleapis.com/"

    LOCATION 替換為要使用 Model Armor 的區域。

設定 Google 和 Google Cloud 遠端 MCP 伺服器的防護功能

如要保護 MCP 工具呼叫和回應,可以使用 Model Armor 底限設定。底限設定會定義適用於整個專案的最低安全性篩選條件。這項設定會對專案中的所有 MCP 工具呼叫和回覆套用一致的篩選器。

設定 Model Armor 底限設定,並啟用 MCP 清理功能。詳情請參閱「設定 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) 的流量掃描和安全行為。

後續步驟