以下文章來源于谷歌云服務(wù),作者 Google Cloud
Vikram Manghnani 技術(shù)項(xiàng)目經(jīng)理
Prem Ramanathan 軟件工程師
將 AI 智能體接入企業(yè)數(shù)據(jù),其實(shí)不需要復(fù)雜的自定義集成或耗費(fèi)數(shù)周開發(fā)。12 月,我們推出了面向 Google 服務(wù)的全托管式遠(yuǎn)程 Model Context Protocol (MCP) 服務(wù)器。借助 BigQuery MCP 服務(wù)器,您現(xiàn)在可以為 AI 智能體提供一種直接且安全的數(shù)據(jù)分析方式。這一全托管式 MCP 服務(wù)器不會(huì)帶來額外的管理開銷,讓您可以專注于智能體的開發(fā)。
BigQuery MCP 服務(wù)器讓智能體能夠原生解讀數(shù)據(jù)架構(gòu)并查詢企業(yè)數(shù)據(jù),徹底免去將數(shù)據(jù)搬運(yùn)至上下文窗口所帶來的安全隱患與延遲。在確保數(shù)據(jù)原位存儲(chǔ)且受控的前提下,智能體還能直接調(diào)用預(yù)測(cè)等 BigQuery 強(qiáng)大功能。BigQuery 的 MCP 服務(wù)器支持也可以通過開源的 MCP Toolbox for Databases 實(shí)現(xiàn),適用于對(duì)服務(wù)器靈活性和控制力有更高要求的場(chǎng)景。本文將介紹并演示新近發(fā)布的全托管式遠(yuǎn)程 BigQuery 服務(wù)器的集成方式。該產(chǎn)品于 2026 年 1 月推出預(yù)覽版。
遠(yuǎn)程 MCP 服務(wù)器在服務(wù)的基礎(chǔ)設(shè)施上運(yùn)行,并向 AI 應(yīng)用提供 HTTP 端點(diǎn)。這使得 AI MCP 客戶端能夠按照既定標(biāo)準(zhǔn)與 MCP 服務(wù)器進(jìn)行通信。
MCP 通過一組明確定義的工具,使基于大語(yǔ)言模型的應(yīng)用能夠直接訪問分析數(shù)據(jù),從而加快 AI 智能體的構(gòu)建進(jìn)程。采用 Google OAuth 身份驗(yàn)證方法,將 BigQuery MCP 服務(wù)器與 ADK 集成相對(duì)簡(jiǎn)便。下文將結(jié)合智能體開發(fā)套件 (ADK) 和 Gemini CLI 進(jìn)行說明。LangGraph、Claude code、Cursor IDE 等平臺(tái)和框架或其他 MCP 客戶端,均可以在無(wú)需大量工程投入的情況下完成集成。
讓我們開始吧。
將 BigQuery MCP 服務(wù)器與 ADK 結(jié)合使用
使用 ADK 構(gòu)建 BigQuery 智能體原型時(shí),可按照以下六個(gè)步驟操作:
1. 前提條件: 創(chuàng)建項(xiàng)目,并完成必要的設(shè)置和運(yùn)行環(huán)境配置。
2. 配置: 啟用 MCP 和所需的 API。
3. 加載示例數(shù)據(jù)集。
4. 創(chuàng)建 OAuth 客戶端。
5. 創(chuàng)建 Gemini API 密鑰。
6. 創(chuàng)建并測(cè)試智能體。
重要提示: 在規(guī)劃生產(chǎn)環(huán)境部署或使用 AI 智能體處理真實(shí)數(shù)據(jù)時(shí),請(qǐng)務(wù)必遵循 AI 安全性和穩(wěn)定性指南。
第 1 步: 前提條件 > 配置和環(huán)境
1.1 設(shè)置 Cloud 項(xiàng)目
創(chuàng)建新的或使用已有的 Google Cloud 項(xiàng)目,并確保已啟用結(jié)算功能。
1.2 用戶角色
確保您的用戶賬號(hào)在該項(xiàng)目中具備以下權(quán)限:
a. roles/bigquery.user (用于運(yùn)行查詢)
b. roles/bigquery.dataViewer (用于訪問數(shù)據(jù))
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 設(shè)置環(huán)境
使用安裝了 gcloud CLI 的 MacOS 或 Linux 終端。
在 shell 中,使用您的 Cloud PROJECT_ID 運(yùn)行以下命令,并對(duì) Google Cloud 賬號(hào)進(jìn)行身份驗(yàn)證;這是啟用 ADK 對(duì) BigQuery 訪問權(quán)限的必要操作。
# Set your cloud project id in env variable BIGQUERY_PROJECT=PROJECT_ID gcloudconfig set project${BIGQUERY_PROJECT} gcloudauth application-default login
按照提示完成身份驗(yàn)證流程。
第 2 步: 配置 > 用戶角色和 API
2.1 啟用 BigQuery 和 MCP API
運(yùn)行以下命令以啟用 BigQuery API 和 MCP API。
gcloud servicesenablebigquery.googleapis.com --project=${BIGQUERY_PROJECT}
gcloud beta services mcpenablebigquery.googleapis.com --project=${BIGQUERY_PROJECT}
第 3 步: 加載示例數(shù)據(jù)集 > cymbal_pets 數(shù)據(jù)集
3.1 創(chuàng)建 cymbal_pets 數(shù)據(jù)集
本次演示使用 cymbal_pets 數(shù)據(jù)集。運(yùn)行以下命令,從公共存儲(chǔ)桶中加載 cymbal_pets 數(shù)據(jù)庫(kù):
# 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 步: 創(chuàng)建 OAuth 客戶端 ID
4.1 創(chuàng)建 OAuth 客戶端 ID
我們將使用 Google OAuth 連接到 BigQuery MCP 服務(wù)器。
在 Google Cloud 控制臺(tái)中,依次前往 Google Auth Platform > 客戶端 > 創(chuàng)建客戶端
○ *在 "應(yīng)用類型" 中選擇 "桌面應(yīng)用"。
○ 創(chuàng)建客戶端后,請(qǐng)務(wù)必復(fù)制并妥善保管客戶端 ID 和密鑰。
可選: 如果 OAuth 客戶端使用的是其他項(xiàng)目,請(qǐng)使用對(duì)應(yīng)的CLIENT_ID_PROJECT運(yùn)行以下命令:
gcloud beta services mcpenablebigquery.googleapis.com --project=CLIENT_ID_PROJECT
注意 [僅適用于 Cloud Shell 用戶]:如果您使用的是 Google Cloud Shell 或 localhost 以外的任何托管環(huán)境,則必須創(chuàng)建一個(gè) "Web 應(yīng)用類型的" OAuth 客戶端 ID。
在 Cloud Shell 環(huán)境中:
"已獲授權(quán)的 JavaScript 來源" 使用以下命令的輸出值:echo "https://8000-$WEB_HOST"
"已獲授權(quán)的重定向 URI" 使用以下命令的輸出值:echo "https://8000-$WEB_HOST/dev-ui/"
(Cloud Shell 中的 URI 為臨時(shí)地址,僅在當(dāng)前會(huì)話期間有效)
注意:如果您選擇使用 Web 服務(wù)器,則需要使用 "Web 應(yīng)用" 類型的 OAuth 客戶端,并填寫對(duì)應(yīng)的域名和重定向 URI。
第 5 步: Gemini API 密鑰
5.1 創(chuàng)建 Gemini API 密鑰
前往 API 密鑰頁(yè)面創(chuàng)建 Gemini API 密鑰。我們需要生成一個(gè)密鑰,以便使用 ADK 訪問 Gemini 模型。
第 6 步: 創(chuàng)建 ADK Web 應(yīng)用
6.1 安裝 ADK
按照《ADK Python 快速入門》中的說明操作安裝 ADK,并初始化一個(gè)智能體項(xiàng)目。
6.2 創(chuàng)建新的 ADK 智能體
接下來,為 BigQuery 遠(yuǎn)程 MCP 服務(wù)器集成創(chuàng)建一個(gè)新的智能體。
adkcreate cymbal_pets_analyst #When prompted, choose the following: #2.Other models(fill later)
6.3 配置 env 文件
運(yùn)行以下命令,使用以下變量列表及對(duì)應(yīng)的實(shí)際值更新cymbal_pets_analyst/.env文件。
cat >> cymbal_pets_analyst/.env <
6.4 更新智能體代碼
修改cymbal_pets_analyst/agent.py文件,將文件內(nèi)容替換為以下代碼。
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 運(yùn)行 ADK 應(yīng)用
在包含 cymbal_pets_analyst 文件夾的父級(jí)目錄中運(yùn)行以下命令。
adkweb --port8000.
打開瀏覽器,訪問 http://127.0.0.1:8000/ 或運(yùn)行 ADK 的主機(jī)地址,并在下拉菜單中選擇您的智能體名稱。此時(shí),您已擁有一個(gè)可回答 cymbal pets 數(shù)據(jù)相關(guān)問題的個(gè)人智能體。當(dāng)智能體連接到 MCP 服務(wù)器時(shí),會(huì)自動(dòng)發(fā)起 OAuth 授權(quán)流程,您可以在此過程中授予相應(yīng)的訪問權(quán)限。
如第二次提示所示,您無(wú)需再指定項(xiàng)目 ID。這是因?yàn)橹悄荏w可以從對(duì)話中自行推斷該出信息。
以下是一些您可以提出的問題:
●my_project 中包含哪些數(shù)據(jù)集?
●cymbal_pets 數(shù)據(jù)集中包含哪些表?
●獲取 cymbal_pets 數(shù)據(jù)集中 customers 表的架構(gòu)信息。
●找出美國(guó)西部地區(qū) cymbal 寵物店過去 3 個(gè)月內(nèi)銷量排在前 3 位的訂單。識(shí)別下單客戶及其郵箱。
●能否改為獲取前 10 個(gè)訂單,而不是前 1 個(gè)訂單?
●過去 6 個(gè)月內(nèi),哪款產(chǎn)品最暢銷?
將 BigQuery MCP 服務(wù)器與 Gemini CLI 結(jié)合使用
要使用 Gemini CLI,請(qǐng)?jiān)?~/.gemini/settings.json 文件中使用以下配置。如果您已有配置,則需要將此配置合并到 mcpServers 字段下。
{ "mcpServers":{ "bigquery":{ "httpUrl":"https://bigquery.googleapis.com/mcp", "authProviderType":"google_credentials", "oauth":{ "scopes":[ "https://www.googleapis.com/auth/bigquery" ] } } } }
然后使用 gcloud 進(jìn)行身份驗(yàn)證。
gcloud auth application-defaultlogin --clien-id-fileYOUR_CLIENT_ID_FILE
運(yùn)行 Gemini CLI。
gemini
面向智能體的 BigQuery MCP 服務(wù)器
您可以將 BigQuery 工具集成到開發(fā)工作流中,并結(jié)合大語(yǔ)言模型和 BigQuery MCP 服務(wù)器構(gòu)建數(shù)據(jù)智能體。該集成基于單一標(biāo)準(zhǔn)協(xié)議,可與所有領(lǐng)先的智能體開發(fā) IDE 和框架兼容。當(dāng)然,在將智能體用于生產(chǎn)環(huán)境或處理真實(shí)數(shù)據(jù)之前,請(qǐng)務(wù)必遵循 AI 安全性指南。
我們期待看到您如何利用 BigQuery MCP 服務(wù)器,開發(fā)面向數(shù)據(jù)分析的生成式 AI 應(yīng)用。
-
Google
+關(guān)注
關(guān)注
5文章
1807瀏覽量
60510 -
服務(wù)器
+關(guān)注
關(guān)注
14文章
10251瀏覽量
91478 -
AI
+關(guān)注
關(guān)注
91文章
39755瀏覽量
301350
原文標(biāo)題:借助 BigQuery 全托管式遠(yuǎn)程 MCP 服務(wù)器,加速構(gòu)建數(shù)據(jù)分析智能體
文章出處:【微信號(hào):Google_Developers,微信公眾號(hào):谷歌開發(fā)者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
【HZ-T536開發(fā)板免費(fèi)體驗(yàn)】5- 無(wú)需死記 Linux 命令!用 CangjieMagic 在 HZ-T536 開發(fā)板上搭建 MCP 服務(wù)器,自然語(yǔ)言輕松控板
如何利用Python進(jìn)行數(shù)據(jù)分析
BI數(shù)據(jù)分析軟件使用指南
面向PLC的OPC數(shù)據(jù)服務(wù)器開發(fā)設(shè)計(jì)
高通準(zhǔn)備放棄開發(fā)面向數(shù)據(jù)中心的企業(yè)級(jí)服務(wù)器芯片
【服務(wù)器數(shù)據(jù)恢復(fù)】斷電導(dǎo)致linux服務(wù)器數(shù)據(jù)區(qū)索引被清除的數(shù)據(jù)恢復(fù)
AI技術(shù)發(fā)展,服務(wù)器需求增長(zhǎng),高可靠防水連接器備受關(guān)注
浪潮信息聯(lián)合英特爾發(fā)布新一代AI服務(wù)器NF5698G7
《開放加速規(guī)范AI服務(wù)器設(shè)計(jì)指南》發(fā)布,應(yīng)對(duì)生成式AI算力挑戰(zhàn)
全球領(lǐng)先系統(tǒng)制造商推出 NVIDIA AI 就緒型服務(wù)器,為企業(yè)大幅提升生成式 AI 性能
將為人們生活帶來深刻影響的5大生成式AI用例
RAKsmart服務(wù)器如何賦能AI開發(fā)與部署
AI數(shù)據(jù)分析儀設(shè)計(jì)原理圖:RapidIO信號(hào)接入 平板AI數(shù)據(jù)分析儀
利用BigQuery MCP服務(wù)器開發(fā)面向數(shù)據(jù)分析的生成式AI應(yīng)用


評(píng)論