以下文章來源于谷歌云服務,作者 Google Cloud
Vikram Manghnani 技術項目經理
Prem Ramanathan 軟件工程師
將 AI 智能體接入企業數據,其實不需要復雜的自定義集成或耗費數周開發。12 月,我們推出了面向 Google 服務的全托管式遠程 Model Context Protocol (MCP) 服務器。借助 BigQuery MCP 服務器,您現在可以為 AI 智能體提供一種直接且安全的數據分析方式。這一全托管式 MCP 服務器不會帶來額外的管理開銷,讓您可以專注于智能體的開發。
BigQuery MCP 服務器讓智能體能夠原生解讀數據架構并查詢企業數據,徹底免去將數據搬運至上下文窗口所帶來的安全隱患與延遲。在確保數據原位存儲且受控的前提下,智能體還能直接調用預測等 BigQuery 強大功能。BigQuery 的 MCP 服務器支持也可以通過開源的 MCP Toolbox for Databases 實現,適用于對服務器靈活性和控制力有更高要求的場景。本文將介紹并演示新近發布的全托管式遠程 BigQuery 服務器的集成方式。該產品于 2026 年 1 月推出預覽版。
遠程 MCP 服務器在服務的基礎設施上運行,并向 AI 應用提供 HTTP 端點。這使得 AI MCP 客戶端能夠按照既定標準與 MCP 服務器進行通信。
MCP 通過一組明確定義的工具,使基于大語言模型的應用能夠直接訪問分析數據,從而加快 AI 智能體的構建進程。采用 Google OAuth 身份驗證方法,將 BigQuery MCP 服務器與 ADK 集成相對簡便。下文將結合智能體開發套件 (ADK) 和 Gemini CLI 進行說明。LangGraph、Claude code、Cursor IDE 等平臺和框架或其他 MCP 客戶端,均可以在無需大量工程投入的情況下完成集成。
讓我們開始吧。
將 BigQuery MCP 服務器與 ADK 結合使用
使用 ADK 構建 BigQuery 智能體原型時,可按照以下六個步驟操作:
1. 前提條件: 創建項目,并完成必要的設置和運行環境配置。
2. 配置: 啟用 MCP 和所需的 API。
3. 加載示例數據集。
4. 創建 OAuth 客戶端。
5. 創建 Gemini API 密鑰。
6. 創建并測試智能體。
重要提示: 在規劃生產環境部署或使用 AI 智能體處理真實數據時,請務必遵循 AI 安全性和穩定性指南。
第 1 步: 前提條件 > 配置和環境
1.1 設置 Cloud 項目
創建新的或使用已有的 Google Cloud 項目,并確保已啟用結算功能。
1.2 用戶角色
確保您的用戶賬號在該項目中具備以下權限:
a. roles/bigquery.user (用于運行查詢)
b. roles/bigquery.dataViewer (用于訪問數據)
c. roles/mcp.toolUser (用于訪問 MCP 工具)
d. roles/serviceusage.serviceUsageAdmin (用于啟用 API)
e. roles/iam.oauthClientViewer (oAuth)
f. roles/iam.serviceAccountViewer (oAuth)
g. roles/oauthconfig.editor (oAuth)
1.3 設置環境
使用安裝了 gcloud CLI 的 MacOS 或 Linux 終端。
在 shell 中,使用您的 Cloud PROJECT_ID 運行以下命令,并對 Google Cloud 賬號進行身份驗證;這是啟用 ADK 對 BigQuery 訪問權限的必要操作。
# Set your cloud project id in env variable BIGQUERY_PROJECT=PROJECT_ID gcloudconfig set project${BIGQUERY_PROJECT} gcloudauth application-default login
按照提示完成身份驗證流程。
第 2 步: 配置 > 用戶角色和 API
2.1 啟用 BigQuery 和 MCP API
運行以下命令以啟用 BigQuery API 和 MCP API。
gcloud servicesenablebigquery.googleapis.com --project=${BIGQUERY_PROJECT}
gcloud beta services mcpenablebigquery.googleapis.com --project=${BIGQUERY_PROJECT}
第 3 步: 加載示例數據集 > cymbal_pets 數據集
3.1 創建 cymbal_pets 數據集
本次演示使用 cymbal_pets 數據集。運行以下命令,從公共存儲桶中加載 cymbal_pets 數據庫:
# Create the dataset if it doesn't exist(pick a location of your choice) # You can add --default_table_expiration to auto expire tables. bq--project_id=${BIGQUERY_PROJECT}mk -f --dataset --location=US cymbal_pets # Load the data for table in products customers orders order_items;do bq --project_id=${BIGQUERY_PROJECT}query --nouse_legacy_sql "LOAD DATA OVERWRITE cymbal_pets.${table}FROM FILES( format = 'avro', uris = [ 'gs://sample-data-and-media/cymbal-pets/tables/${table}/*.avro']);" done
第 4 步: 創建 OAuth 客戶端 ID
4.1 創建 OAuth 客戶端 ID
我們將使用 Google OAuth 連接到 BigQuery MCP 服務器。
在 Google Cloud 控制臺中,依次前往 Google Auth Platform > 客戶端 > 創建客戶端
○ *在 "應用類型" 中選擇 "桌面應用"。
○ 創建客戶端后,請務必復制并妥善保管客戶端 ID 和密鑰。
可選: 如果 OAuth 客戶端使用的是其他項目,請使用對應的CLIENT_ID_PROJECT運行以下命令:
gcloud beta services mcpenablebigquery.googleapis.com --project=CLIENT_ID_PROJECT
注意 [僅適用于 Cloud Shell 用戶]:如果您使用的是 Google Cloud Shell 或 localhost 以外的任何托管環境,則必須創建一個 "Web 應用類型的" OAuth 客戶端 ID。
在 Cloud Shell 環境中:
"已獲授權的 JavaScript 來源" 使用以下命令的輸出值:echo "https://8000-$WEB_HOST"
"已獲授權的重定向 URI" 使用以下命令的輸出值:echo "https://8000-$WEB_HOST/dev-ui/"
(Cloud Shell 中的 URI 為臨時地址,僅在當前會話期間有效)
注意:如果您選擇使用 Web 服務器,則需要使用 "Web 應用" 類型的 OAuth 客戶端,并填寫對應的域名和重定向 URI。
第 5 步: Gemini API 密鑰
5.1 創建 Gemini API 密鑰
前往 API 密鑰頁面創建 Gemini API 密鑰。我們需要生成一個密鑰,以便使用 ADK 訪問 Gemini 模型。
第 6 步: 創建 ADK Web 應用
6.1 安裝 ADK
按照《ADK Python 快速入門》中的說明操作安裝 ADK,并初始化一個智能體項目。
6.2 創建新的 ADK 智能體
接下來,為 BigQuery 遠程 MCP 服務器集成創建一個新的智能體。
adkcreate cymbal_pets_analyst #When prompted, choose the following: #2.Other models(fill later)
6.3 配置 env 文件
運行以下命令,使用以下變量列表及對應的實際值更新cymbal_pets_analyst/.env文件。
cat >> cymbal_pets_analyst/.env <
6.4 更新智能體代碼
修改cymbal_pets_analyst/agent.py文件,將文件內容替換為以下代碼。
importos fromgoogle.adk.agents.llm_agentimportAgent fromgoogle.adk.tools.mcp_toolimportMcpToolset fromgoogle.adk.tools.mcp_tool.mcp_session_managerimportStreamableHTTPConnectionParams fromgoogle.adk.auth.auth_credentialimportAuthCredential, AuthCredentialTypes fromgoogle.adk.authimportOAuth2Auth fromfastapi.openapi.modelsimportOAuth2 fromfastapi.openapi.modelsimportOAuthFlowAuthorizationCode fromfastapi.openapi.modelsimportOAuthFlows fromgoogle.adk.authimportAuthCredential fromgoogle.adk.authimportAuthCredentialTypes fromgoogle.adk.authimportOAuth2Auth defget_oauth2_mcp_tool(): auth_scheme = OAuth2( flows=OAuthFlows( authorizationCode=OAuthFlowAuthorizationCode( authorizationUrl="https://accounts.google.com/o/oauth2/auth", tokenUrl="https://oauth2.googleapis.com/token", scopes={ "https://www.googleapis.com/auth/bigquery":"bigquery" }, ) ) ) auth_credential = AuthCredential( auth_type=AuthCredentialTypes.OAUTH2, oauth2=OAuth2Auth( client_id=os.environ.get('OAUTH_CLIENT_ID',''), client_secret=os.environ.get('OAUTH_CLIENT_SECRET','') ), ) bigquery_mcp_tool_oauth = McpToolset( connection_params=StreamableHTTPConnectionParams( url='https://bigquery.googleapis.com/mcp'), auth_credential=auth_credential, auth_scheme=auth_scheme, ) returnbigquery_mcp_tool_oauth root_agent = Agent( model='gemini-3-pro-preview', name='root_agent', description='Analyst to answer all questions related to cymbal pets store.', instruction='Answer user questions, use the bigquery_mcp tool to query the cymbal pets database and run queries.', tools=[get_oauth2_mcp_tool()], )
6.5 運行 ADK 應用
在包含 cymbal_pets_analyst 文件夾的父級目錄中運行以下命令。
adkweb --port8000.
打開瀏覽器,訪問 http://127.0.0.1:8000/ 或運行 ADK 的主機地址,并在下拉菜單中選擇您的智能體名稱。此時,您已擁有一個可回答 cymbal pets 數據相關問題的個人智能體。當智能體連接到 MCP 服務器時,會自動發起 OAuth 授權流程,您可以在此過程中授予相應的訪問權限。
如第二次提示所示,您無需再指定項目 ID。這是因為智能體可以從對話中自行推斷該出信息。
以下是一些您可以提出的問題:
●my_project 中包含哪些數據集?
●cymbal_pets 數據集中包含哪些表?
●獲取 cymbal_pets 數據集中 customers 表的架構信息。
●找出美國西部地區 cymbal 寵物店過去 3 個月內銷量排在前 3 位的訂單。識別下單客戶及其郵箱。
●能否改為獲取前 10 個訂單,而不是前 1 個訂單?
●過去 6 個月內,哪款產品最暢銷?
將 BigQuery MCP 服務器與 Gemini CLI 結合使用
要使用 Gemini CLI,請在 ~/.gemini/settings.json 文件中使用以下配置。如果您已有配置,則需要將此配置合并到 mcpServers 字段下。
{ "mcpServers":{ "bigquery":{ "httpUrl":"https://bigquery.googleapis.com/mcp", "authProviderType":"google_credentials", "oauth":{ "scopes":[ "https://www.googleapis.com/auth/bigquery" ] } } } }
然后使用 gcloud 進行身份驗證。
gcloud auth application-defaultlogin --clien-id-fileYOUR_CLIENT_ID_FILE
運行 Gemini CLI。
gemini
面向智能體的 BigQuery MCP 服務器
您可以將 BigQuery 工具集成到開發工作流中,并結合大語言模型和 BigQuery MCP 服務器構建數據智能體。該集成基于單一標準協議,可與所有領先的智能體開發 IDE 和框架兼容。當然,在將智能體用于生產環境或處理真實數據之前,請務必遵循 AI 安全性指南。
我們期待看到您如何利用 BigQuery MCP 服務器,開發面向數據分析的生成式 AI 應用。
-
Google
+關注
關注
5文章
1812瀏覽量
60611 -
服務器
+關注
關注
14文章
10326瀏覽量
91679 -
AI
+關注
關注
91文章
40661瀏覽量
302320
原文標題:借助 BigQuery 全托管式遠程 MCP 服務器,加速構建數據分析智能體
文章出處:【微信號:Google_Developers,微信公眾號:谷歌開發者】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
【HZ-T536開發板免費體驗】5- 無需死記 Linux 命令!用 CangjieMagic 在 HZ-T536 開發板上搭建 MCP 服務器,自然語言輕松控板
BI數據分析軟件使用指南
面向PLC的OPC數據服務器開發設計
利用BigQuery MCP服務器開發面向數據分析的生成式AI應用


評論