使用 BigQuery MCP 伺服器

本文說明如何使用 BigQuery Model Context Protocol (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 和 MCP 伺服器提供下列功能和優點: Google Cloud

  • 簡化集中式探索作業
  • 代管全域或區域 HTTPS 端點
  • 精細授權
  • (選用) 使用 Model Armor 保護提示詞和回覆
  • 集中式稽核記錄

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

您可能會基於下列原因使用 BigQuery 本機 MCP 伺服器

  • 您需要透過參數化 SQL 查詢建構自訂工具。
  • 您沒有權限在專案中啟用或使用 MCP 伺服器。

如要進一步瞭解如何使用本機 MCP 伺服器,請參閱「透過 MCP 將 LLM 連線至 BigQuery」。以下各節僅適用於 BigQuery 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. 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

  5. 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.

  6. 啟用 BigQuery API。

    啟用 API 時所需的角色

    如要啟用 API,您需要服務使用情形管理員 IAM 角色 (roles/serviceusage.serviceUsageAdmin),其中包含 serviceusage.services.enable 權限。瞭解如何授予角色

    啟用 API

    新專案會自動啟用 BigQuery API。

  7. 選用: 啟用專案的計費功能。如果您不想啟用帳單或提供信用卡,仍可按照本文步驟操作。BigQuery 提供沙箱,方便您執行這些步驟。詳情請參閱「啟用 BigQuery 沙箱」一文。

必要的角色

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

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

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

所需權限

如要啟用 BigQuery MCP 伺服器,必須具備下列權限:

  • 在專案中啟用 MCP 伺服器:
    • serviceusage.mcppolicy.get
    • serviceusage.mcppolicy.update
  • 發出 MCP 工具呼叫: mcp.tools.call
  • 執行 BigQuery 工作: bigquery.jobs.create
  • 查詢 BigQuery 資料: bigquery.tables.getData

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

啟用或停用 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 bigquery.googleapis.com \
    --project=PROJECT_ID

更改下列內容:

  • PROJECT_ID: Google Cloud 專案 ID

您可以在Google Cloud 專案中使用 BigQuery MCP 伺服器。如果 Google Cloud 專案未啟用 BigQuery 服務,系統會提示您先啟用該服務,再啟用 BigQuery MCP 伺服器。

為確保安全,建議您只為 AI 應用程式運作所需的服務啟用 MCP 伺服器。

在專案中停用 BigQuery MCP 伺服器

如要停用 Google Cloud 專案中的 BigQuery MCP 伺服器,請執行下列指令:

gcloud beta services mcp disable bigquery.googleapis.com \
    --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 伺服器資訊:

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

    選擇的驗證詳細資料取決於您要如何驗證。詳情請參閱「向 MCP 伺服器進行驗證」。

如需代管商專用指南,請參閱下列文章:

如需一般指引,請參閱「連線至遠端 MCP 伺服器」。

可用的工具

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

限制

BigQuery MCP 工具有下列限制:

  • execute_sql 工具不支援查詢 Google 雲端硬碟外部資料表。
  • 根據預設,execute_sql 工具會將查詢處理時間限制為三分鐘。如果查詢執行時間超過三分鐘,系統會自動取消。
  • 查詢結果最多只能有 3,000 列。

列出工具

使用 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 的進階功能 (例如預測),取得更高階的洞察資料。

  • 使用自訂代理程式指令,為使用者打造對話體驗。

提示範例

您可以使用下列範例提示,取得 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 專案 ID
  • REGION:區域名稱
  • DATASET_ID:資料集名稱
  • TABLE_ID:資料表名稱。
  • COLUMN_NAME:資料欄名稱

選用的安全防護設定

由於 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 API,才能使用 Model Armor。

控制台

  1. 啟用 Model Armor API。

    啟用 API 時所需的角色

    如要啟用 API,您需要服務使用情形管理員 IAM 角色 (roles/serviceusage.serviceUsageAdmin),其中包含 serviceusage.services.enable 權限。瞭解如何授予角色

    啟用 API

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

gcloud

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

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

    啟用 Cloud Shell

    Google Cloud 主控台底部會開啟一個 Cloud Shell 工作階段,並顯示指令列提示。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 和遠端 MCP 伺服器的防護功能 Google Cloud

如要保護 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 不會掃描專案中的 MCP 流量。

使用 IAM 拒絕政策控管 MCP 使用情形

身分與存取權管理 (IAM) 拒絕政策可協助您保護遠端 MCP 伺服器。 Google Cloud 設定這些政策,封鎖不必要的 MCP 工具存取權。

舉例來說,您可以根據下列條件拒絕或允許存取:

  • 主體
  • 工具屬性 (例如唯讀)
  • 應用程式的 OAuth 用戶端 ID

詳情請參閱「使用 Identity and Access Management 控制 MCP 使用情形」。

配額與限制

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 配額,請參閱「配額與限制」。

後續步驟