瞭解如何使用 BigQuery Migration Service MCP 伺服器
本文說明如何使用 BigQuery 遠端 Model Context Protocol (MCP) 伺服器,連線至 AI 應用程式,包括 Gemini CLI、ChatGPT、Claude,以及您開發的自訂應用程式。您可以使用 BigQuery 遷移服務模型內容通訊協定 (MCP) 伺服器執行工作,例如將 SQL 查詢翻譯成 GoogleSQL 語法、從 SQL 輸入查詢產生 DDL 陳述式,以及取得 SQL 翻譯的說明。
啟用 BigQuery API 時,系統會啟用 BigQuery 遠端 MCP 伺服器。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 伺服器總覽。
事前準備
- 登入 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.
-
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.
-
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.
-
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.
-
啟用 BigQuery Migration Service API。
啟用 API 時所需的角色
如要啟用 API,您需要服務使用情形管理員 IAM 角色 (
roles/serviceusage.serviceUsageAdmin),其中包含serviceusage.services.enable權限。瞭解如何授予角色。
必要的角色
如要取得啟用 BigQuery 遷移服務 MCP 伺服器所需的權限,請要求管理員在您要啟用 BigQuery 遷移服務 MCP 伺服器的專案中,授予您下列 IAM 角色:
-
發出 MCP 工具呼叫:
MCP 工具使用者 (
roles/mcp.toolUser) -
使用 BigQuery 遷移服務:
遷移工作流程編輯器 (
roles/bigquerymigration.editor)
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
這些預先定義的角色具備啟用 BigQuery 遷移服務 MCP 伺服器所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:
所需權限
如要啟用 BigQuery 遷移服務 MCP 伺服器,您必須具備下列權限:
-
發出 MCP 工具呼叫:
mcp.tools.call -
使用 BigQuery Migration Service:
-
bigquerymigration.workflows.create -
bigquerymigration.workflows.get -
bigquerymigration.workflows.list -
bigquerymigration.workflows.delete -
bigquerymigration.subtasks.get -
bigquerymigration.subtasks.list
-
視工作而定,您可能需要其他 BigQuery Migration Service 權限。如要瞭解 BigQuery Migration Service 角色和權限,請參閱「BigQuery Migration Service 角色和權限」。
驗證及授權
BigQuery Migration Service MCP 伺服器會使用 OAuth 2.0 通訊協定搭配身分與存取權管理 (IAM) 進行驗證和授權。所有Google Cloud 身分都支援 MCP 伺服器驗證。
BigQuery Migration Service MCP 伺服器不接受 API 金鑰。
BigQuery Migration Service 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/bigquerymigration |
查看及管理 BigQuery 遷移服務中的工作流程,以及查看您 Google 帳戶的電子郵件地址。 |
https://www.googleapis.com/auth/devstorage.read_only |
如果查詢翻譯作業會從 Cloud Storage 讀取資料,就必須具備這個範圍。 |
在工具呼叫期間存取的資源可能需要額外範圍。
設定 MCP 用戶端,以使用 BigQuery Migration Service MCP 伺服器
主機程式 (例如 Claude 或 Gemini CLI) 可以例項化 MCP 用戶端,連線至單一 MCP 伺服器。主機程式可以有多個連線至不同 MCP 伺服器的用戶端。如要連線至 MCP 伺服器,MCP 用戶端至少必須知道 MCP 伺服器的網址。
在主機中,尋找連線至 MCP 伺服器的方法。系統會提示您輸入伺服器的詳細資料,例如名稱和網址。
針對 BigQuery Migration Service MCP 伺服器,請視需要輸入下列資訊:
- 伺服器名稱:BigQuery 遷移服務 MCP 伺服器
- 伺服器網址或端點:bigquerymigration.googleapis.com/mcp
- 傳輸:HTTP
驗證詳細資料:您的 Google Cloud 憑證、OAuth 用戶端 ID 和密鑰,或是代理程式身分和憑證
選擇的驗證詳細資料取決於您要如何驗證。詳情請參閱「向 MCP 伺服器進行驗證」。
如需代管商專用指南,請參閱下列文章:
如需一般指引,請參閱「連線至遠端 MCP 伺服器」。
可用的工具
如要查看 BigQuery Migration Service MCP 伺服器可用的 MCP 工具詳細資料和說明,請參閱 BigQuery Migration Service MCP 參考資料。
列出工具
使用 MCP 檢查器列出工具,或直接將 tools/list HTTP 要求傳送至 BigQuery 遷移服務 MCP 伺服器。tools/list 方法不需要驗證。
POST /mcp HTTP/1.1
Host: bigquerymigration.googleapis.com
Content-Type: application/json
{
"jsonrpc": "2.0",
"method": "tools/list",
}
應用實例
以下是 BigQuery Migration Service MCP 伺服器的範例用途:
- 使用 IDE 中的 MCP 用戶端,將查詢檔案翻譯成 GoogleSQL 語法。
- 使用不含 IDE 的 MCP 用戶端,將指定查詢翻譯成 GoogleSQL 語法。
- 評估翻譯品質。
- 取得 SQL 翻譯的說明。
- 為指定查詢產生 DDL 陳述式。
提示範例
您可以使用下列提示範例,建立及管理 BigQuery 遷移服務資源:
翻譯這項
DIALECT查詢FILENAME。使用PROJECT_ID和LOCATION。將輸出內容和翻譯記錄分別儲存至不同目錄。使用這項提示時,MCP 用戶端會呼叫
translate_query工具,翻譯指定檔案中的查詢。MCP 用戶端會定期呼叫get_translation工具來取得結果。翻譯完成後,用戶端會將輸出內容寫入輸出目錄,並將記錄寫入記錄目錄。請將這項查詢從
DIALECT翻譯為:QUERY。使用PROJECT_ID和LOCATION。使用這個提示時,MCP 用戶端會呼叫
translate_query工具來翻譯指定的查詢,並顯示翻譯結果。評估翻譯品質。
使用這項提示時,MCP 用戶端會讀取並檢查翻譯記錄,然後顯示翻譯問題摘要,並提供建議的後續步驟。
說明翻譯內容。
使用這項提示時,MCP 用戶端會呼叫
explain_translation工具,取得翻譯說明。如果翻譯記錄包含RelationNotFound或AttributeNotFound錯誤,MCP 用戶端應建議您建立中繼資料套件。如果無法產生中繼資料,可以傳送提示來要求 DDL 陳述式。回應範例如下所示:
The translated code converts Teradata-specific features into their BigQuery equivalents. Here's a breakdown of the key changes: * `MACRO` to `PROCEDURE`: The `YourMacroName` macro was converted into a BigQuery stored procedure because BigQuery doesn't support macros. * `SELECT INTO` to `SET`: * For setting multiple `OUT` parameters in `YourStoredProcedureName`, the `SELECT ... INTO` is changed to `SET (...) = (SELECT STRUCT(...))`. * For single variable assignment in `YourOtherProcedureName`, `SELECT ... INTO` is replaced by `SET variable = (SELECT ...)` which is the standard in BigQuery. * Atomic Operations to `MERGE: The BEGIN REQUEST ... END REQUEST` blocks in the `ProcedureA`, `ProcedureB`, and `ProcedureC` procedures, which perform atomic "update or insert" operations, are translated into standard SQL `MERGE` statements. This is the correct and modern way to handle this logic in BigQuery.為這項輸入查詢產生 DDL。
MCP 用戶端會呼叫
generate_ddl_suggestion工具,啟動建議工作。用戶端會呼叫fetch_ddl_suggestion工具,取得建議結果。如有建議,MCP 用戶端會顯示。如果 DDL 陳述式正確無誤,您可以傳送提示,將產生的 DDL 陳述式加到查詢的前面,以提升翻譯品質。
將產生的 DDL 陳述式加到輸入查詢的前面,然後重新翻譯。
使用這個提示詞時,MCP 用戶端會在原始輸入查詢中預先加入 DDL 陳述式,並呼叫
translate_query工具。用戶端呼叫get_translation工具來取得翻譯內容。新的查詢翻譯和記錄檔會在可用時保留。如果產生的 DDL 陳述式正確無誤,任何
RelationNotFound或AttributeNotFound錯誤都應會解決,進而提升翻譯品質。
在提示中,請替換下列項目:
DIALECT:要翻譯的 SQL 查詢方言。QUERY:要翻譯的查詢。FILENAME:包含要翻譯查詢的檔案。PROJECT_NUMBER:您的 Google Cloud 專案編號。LOCATION:SQL 翻譯工具的位置。
選用的安全防護設定
由於 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 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 工具呼叫和回應套用一致的篩選器。
設定 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 Migration Service MCP 伺服器沒有自己的配額。對 MCP 伺服器發出的呼叫次數沒有限制。
您仍須遵守 MCP 伺服器工具呼叫的 API 強制執行的配額。詳情請參閱「配額與限制」頁面的「BigQuery Migration Service API」。
後續步驟
- 請參閱 BigQuery Migration Service MCP 參考文件。
- 進一步瞭解 Google Cloud MCP 伺服器。
- 請參閱 MCP 支援的產品。