使用 BigQuery 遠端 MCP 伺服器
本文說明如何使用 BigQuery 遠端模型內容通訊協定 (MCP) 伺服器,從 Gemini CLI、Gemini Code Assist 的代理程式模式、Claude Code 或您開發的 AI 應用程式等 AI 應用程式連線至 BigQuery。
Model Context Protocol (MCP) 標準可將大型語言模型 (LLM) 和 AI 應用程式/代理程式與外部資料來源的連線方式標準化。MCP 伺服器可讓您使用工具、資源和提示,從後端服務執行動作及取得更新資料。
本機 MCP 伺服器通常會在您的本機電腦上執行,並使用標準輸入和輸出串流 (stdio),在同一部裝置上的服務之間進行通訊。遠端 MCP 伺服器會在服務的基礎架構上執行,並為 AI 應用程式提供 HTTPS 端點,供 AI MCP 用戶端與 MCP 伺服器通訊。如要進一步瞭解 MCP 架構,請參閱 MCP 架構。
Google 和 Google Cloud 遠端 MCP 伺服器提供下列功能和優點:
- 簡化集中式探索作業
- 代管全域或區域 HTTPS 端點
- 精細授權
- (選用) 使用 Model Armor 保護機制確保提示詞和回覆安全
- 集中式稽核記錄
如要瞭解其他 MCP 伺服器,以及 Google Cloud MCP 伺服器適用的安全性與控管措施,請參閱 Google Cloud MCP 伺服器總覽。
您可能會基於下列原因使用 BigQuery 本機 MCP 伺服器:
- 您需要透過參數化 SQL 查詢建構自訂工具。
- 您沒有權限在專案中啟用或使用遠端 MCP 伺服器。
如要進一步瞭解如何使用本機 MCP 伺服器,請參閱「透過 MCP 將 LLM 連線至 BigQuery」。下列章節僅適用於 BigQuery 遠端 MCP 伺服器。
事前準備
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
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.
-
如要使用現有專案進行本指南中的操作,請確認您具有完成本指南所需的權限。如果您建立新專案,則已具備必要權限。
-
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.
-
如要使用現有專案進行本指南中的操作,請確認您具有完成本指南所需的權限。如果您建立新專案,則已具備必要權限。
-
Enable the BigQuery API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.新專案會自動啟用 BigQuery API。
- 選用: 啟用專案的計費功能。如果您不想啟用帳單或提供信用卡,仍可按照本文中的步驟操作。BigQuery 提供沙箱,方便您執行這些步驟。詳情請參閱「啟用 BigQuery 沙箱」一文。
-
在專案中啟用 API 和 MCP 伺服器:
服務使用情形管理員 (
roles/serviceusage.serviceUsageAdmin) -
發出 MCP 工具呼叫:
MCP 工具使用者 (
roles/mcp.toolUser) -
執行 BigQuery 工作:
BigQuery 工作使用者 (
roles/bigquery.jobUser) -
查詢 BigQuery 資料:
BigQuery 資料檢視者 (
roles/bigquery.dataViewer) -
在專案中啟用 MCP 伺服器:
-
serviceusage.mcppolicy.get -
serviceusage.mcppolicy.update
-
-
發出 MCP 工具呼叫:
mcp.tools.call -
執行 BigQuery 工作:
bigquery.jobs.create -
查詢 BigQuery 資料:
bigquery.tables.getData PROJECT_ID: Google Cloud 專案 IDSERVICE:bigquery.googleapis.com(BigQuery 的全域服務名稱)- 伺服器名稱:BigQuery MCP 伺服器
- 伺服器網址或端點:bigquery.googleapis.com/mcp
- 傳輸:HTTP
驗證詳細資料:您的 Google Cloud 憑證、OAuth 用戶端 ID 和密鑰,或是代理程式身分和憑證
選擇的驗證詳細資料取決於您要如何驗證。詳情請參閱「向 MCP 伺服器進行驗證」。
建立工作流程,運用 BigQuery 資料的洞察資訊觸發特定動作,例如建立問題和撰寫電子郵件。
運用 BigQuery 的進階功能 (例如預測),取得更高階的洞察資料。
使用自訂代理程式指令,為使用者打造對話體驗。
- 列出專案
PROJECT_ID中的資料集。 - 找出我在
REGION區域使用 MCP 伺服器,在專案PROJECT_ID中執行的所有查詢。使用goog-mcp-server:true標記,識別透過 MCP 伺服器執行的查詢工作。 - 找出專案
PROJECT_ID中來自DATASET_ID的最高訂單量。找出適當的資料表、正確的結構定義,並顯示結果。 - 在表格中建立未來幾年的預測。
PROJECT_IDDATASET_IDTABLE_ID使用COLUMN_NAME做為資料欄,並使用COLUMN_NAME做為時間戳記欄。顯示前 10 項預測。 PROJECT_ID: Google Cloud 專案 IDREGION:區域名稱DATASET_ID:資料集名稱TABLE_ID:資料表名稱。COLUMN_NAME:資料欄名稱在 Google Cloud 專案中啟用 Model Armor。
gcloud services enable modelarmor.googleapis.com \ --project=PROJECT_ID將
PROJECT_ID替換為您的 Google Cloud 專案 ID。設定 Model Armor 的建議底限設定。
gcloud model-armor floorsettings update \ --full-uri='projects/PROJECT_ID/locations/global/floorSetting' \ --mcp-sanitization=ENABLED \ --malicious-uri-filter-settings-enforcement=ENABLED \ --pi-and-jailbreak-filter-settings-enforcement=ENABLED \ --pi-and-jailbreak-filter-settings-confidence-level=MEDIUM_AND_ABOVE將
PROJECT_ID替換為您的 Google Cloud 專案 ID。Model Armor 已設定為掃描惡意網址,以及提示詞注入和越獄活動。
如要進一步瞭解可設定的 Model Armor 篩選器,請參閱「Model Armor 篩選器」。
將 Model Armor 新增為 MCP 服務的內容安全防護供應商。
gcloud beta services mcp content-security add modelarmor.googleapis.com \ --project=PROJECT_ID然後將
PROJECT_ID改成專案 ID。 Google Cloud確認 MCP 流量已傳送至 Model Armor。
gcloud beta services mcp content-security get \ --project=PROJECT_ID然後將
PROJECT_ID改成專案 ID。 Google Cloud- 請參閱 BigQuery MCP 參考說明文件。
- 進一步瞭解 Google Cloud MCP 伺服器。
- 請參閱 MCP 支援的產品。
必要的角色
如要取得啟用 BigQuery MCP 伺服器所需的權限,請要求管理員在您要啟用 BigQuery MCP 伺服器的專案中,授予您下列 IAM 角色:
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
這些預先定義的角色具備啟用 BigQuery MCP 伺服器所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:
所需權限
如要啟用 BigQuery MCP 伺服器,必須具備下列權限:
啟用或停用 BigQuery MCP 伺服器
您可以使用 gcloud beta services mcp enable 指令,在專案中啟用或停用 BigQuery MCP 伺服器。詳情請參閱以下各節。
在專案中啟用 BigQuery MCP 伺服器
如果您使用不同的專案來處理用戶端憑證 (例如服務帳戶金鑰、OAuth 用戶端 ID 或 API 金鑰),以及代管資源,則必須在這兩個專案中啟用 BigQuery 服務和 BigQuery 遠端 MCP 伺服器。
如要在 Google Cloud 專案中啟用 BigQuery MCP 伺服器,請執行下列指令:
gcloud beta services mcp enable SERVICE \
--project=PROJECT_ID
更改下列內容:
您Google Cloud 專案已啟用 BigQuery 遠端 MCP 伺服器,如果 Google Cloud 專案尚未啟用 BigQuery 服務,系統會提示您先啟用該服務,再啟用 BigQuery 遠端 MCP 伺服器。
為確保安全,建議您只為 AI 應用程式運作所需的服務啟用 MCP 伺服器。
在專案中停用 BigQuery MCP 伺服器
如要停用專案中的 BigQuery MCP 伺服器,請執行下列指令: Google Cloud
gcloud beta services mcp disable SERVICE \
--project=PROJECT_ID
您的Google Cloud 專案已停用 BigQuery MCP 伺服器。
驗證及授權
BigQuery MCP 伺服器會使用 OAuth 2.0 通訊協定搭配 身分與存取權管理 (IAM) 進行驗證和授權。所有Google Cloud身分都支援 MCP 伺服器驗證。
BigQuery 遠端 MCP 伺服器不接受 API 金鑰。
BigQuery MCP OAuth 範圍
OAuth 2.0 會使用範圍和憑證,判斷經過驗證的主體是否有權對資源執行特定動作。如要進一步瞭解 Google 的 OAuth 2.0 範圍,請參閱「使用 OAuth 2.0 存取 Google API」。
BigQuery 的 MCP 工具 OAuth 範圍如下:
| gcloud CLI 的範圍 URI | 說明 |
|---|---|
https://www.googleapis.com/auth/bigquery |
查看及管理您在 BigQuery 中的資料,以及查看您 Google 帳戶的電子郵件地址。 |
在工具呼叫期間存取的資源可能需要其他範圍。如要查看 BigQuery 要求的範圍清單,請參閱 BigQuery API v2 的 OAuth 2.0 範圍。
設定 MCP 用戶端,以使用 BigQuery MCP 伺服器
主機程式 (例如 Claude 或 Gemini CLI) 可以例項化 MCP 用戶端,連線至單一 MCP 伺服器。主機程式可以有多個連線至不同 MCP 伺服器的用戶端。如要連線至遠端 MCP 伺服器,MCP 用戶端至少必須知道遠端 MCP 伺服器的網址。
在主機中,尋找連線至遠端 MCP 伺服器的方法。系統會提示您輸入伺服器的詳細資料,例如名稱和網址。
視需要輸入下列 BigQuery MCP 伺服器資訊:
如需代管商專用指南,請參閱下列文章:
如需更多一般指引,請參閱「連線至遠端 MCP 伺服器」。
可用的工具
設為唯讀的 MCP 工具會將 MCP 屬性 mcp.tool.isReadOnly 設為 true。您可能只想在特定環境中透過機構政策允許唯讀工具。
如要查看 BigQuery MCP 伺服器的可用 MCP 工具詳細資料和說明,請參閱 BigQuery MCP 參考資料。
列出工具
使用 MCP 檢查器列出工具,或直接將 tools/list HTTP 要求傳送至 BigQuery 遠端 MCP 伺服器。tools/list 方法不需要驗證。
POST /mcp HTTP/1.1
Host: bigquery.googleapis.com
Content-Type: application/json
{
"jsonrpc": "2.0",
"method": "tools/list",
}
應用實例
以下是 BigQuery MCP 伺服器的範例用途:
提示範例
您可以使用下列範例提示,取得 BigQuery 資源的相關資訊、洞察分析結果,以及分析 BigQuery 資料:
在提示中,請替換下列項目:
選用的安全防護設定
由於 MCP 工具可執行的動作種類繁多,因此 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 適用地區」。
啟用 Model Armor
如要啟用 Model Armor,請完成下列步驟:
Model Armor 記錄
如要瞭解 Model Armor 稽核和平台記錄,請參閱「Model Armor 稽核記錄」。
在專案中停用 Model Armor
如要在 Google Cloud 專案中停用 Model Armor,請執行下列指令:
gcloud beta services mcp content-security remove modelarmor.googleapis.com \
--project=PROJECT_ID
將 PROJECT_ID 替換為 Google Cloud 專案 ID。
Model Armor 不會掃描 Google Cloud 上的 MCP 流量,以找出指定專案的攻擊。
使用 Model Armor 停用掃描 MCP 流量
如果您仍想在專案中使用 Model Armor,但想停止使用 Model Armor 掃描 MCP 流量,請執行下列指令:
gcloud model-armor floorsettings update \
--full-uri='projects/PROJECT_ID/locations/global/floorSetting' \
--mcp-sanitization=DISABLED
將 PROJECT_ID 替換為 Google Cloud 專案 ID。
Model Armor 不會掃描 Google Cloud上的 MCP 流量。
機構層級 MCP 控制項
您可以使用 gcp.managed.allowedMCPService 限制,建立自訂機構政策,控管機構內 MCP 伺服器的使用情形。 Google Cloud 如需更多資訊和使用範例,請參閱「使用 IAM 控管存取權」。
配額與限制
BigQuery 遠端 MCP 伺服器沒有自己的配額。可對 MCP 伺服器發出的呼叫次數沒有限制。
您仍須遵守 MCP 伺服器工具呼叫的 API 所強制執行的配額。MCP 伺服器工具會呼叫下列 API 方法:
| 工具 | API 方法 | 配額 |
|---|---|---|
list_dataset_ids |
datasets.list |
資料集配額與限制 |
list_table_ids |
tables.list |
資料表配額與限制 |
get_dataset_info |
datasets.get |
資料集配額與限制 |
get_table_info |
tables.get |
資料表配額與限制 |
execute_sql |
jobs.Query |
查詢工作配額與限制 |
如要進一步瞭解 BigQuery 配額,請參閱「配額與限制」。