資料庫專用的 MCP 工具箱:為 MCP 用戶端提供 BigQuery 資料集

1. 簡介

在這個程式碼研究室中,您將使用 資料庫專用的 MCP Toolbox,提供 BigQuery 資料集。

您將透過本程式碼研究室,按照以下步驟逐步操作:

  1. 從公開的 BigQuery 資料集計畫中找出特定 BigQuery 資料集 (「Google Cloud 發布說明」)。
  2. 設定可連結至 BigQuery 資料集的資料庫專用 MCP Toolbox。
  3. 使用 Agent Development Kit (ADK) 開發代理,以便利用 MCP Toolbox 回答使用者有關 Google Cloud 發布說明的查詢

執行步驟

  • 設定 MCP Toolbox for Databases,將 Google Cloud 發布說明 (公開的 BigQuery 資料集) 公開為 MCP 介面,供其他 MCP 用戶端 (IDE、工具等) 使用。

課程內容

  • 探索 BigQuery 公開資料集並選擇特定資料集。
  • 為要提供給 MCP 用戶的 BigQuery 公開資料集,設定 MCP 資料庫工具箱。
  • 使用 Agent Development Kit (ADK) 設計及開發服務專員,以便回答使用者查詢。
  • 在本機環境中測試代理程式和 MCP Toolbox for Databases。

軟硬體需求

  • Chrome 網路瀏覽器。
  • 本機 Python 開發環境。

2. 事前準備

建立專案

  1. Google Cloud 控制台的專案選取器頁面中,選取或建立 Google Cloud 專案
  2. 確認 Cloud 專案已啟用計費功能。瞭解如何檢查專案是否已啟用計費功能
  3. 您將使用 Cloud Shell,這是在 Google Cloud 中運作的指令列環境,並已預先載入 bq。按一下 Google Cloud 控制台頂端的「啟用 Cloud Shell」。

「啟用 Cloud Shell」按鈕圖片

  1. 連線至 Cloud Shell 後,請使用下列指令確認您已通過驗證,且專案已設為您的專案 ID:
gcloud auth list
  1. 在 Cloud Shell 中執行下列指令,確認 gcloud 指令知道您的專案。
gcloud config list project
  1. 如果未設定專案,請使用下列指令進行設定:
gcloud config set project <YOUR_PROJECT_ID>

如要瞭解 gcloud 指令和用法,請參閱說明文件

3. Google 版本資訊資料集和 MCP 用戶

首先,讓我們來看看 Google Cloud 版本資訊,這項資訊會定期更新至 官方 Google Cloud 版本資訊網頁,如以下螢幕截圖所示:

37a7d9e124296c55.png

您可以訂閱動態饋給網址,但如果我們可以直接在我們的服務專員即時通訊中詢問這些發布資訊,那就太好了。可以是簡單的查詢,例如「請更新 Google Cloud 版本資訊」。

4. MCP Toolbox for Databases

MCP Toolbox for Databases 是資料庫的開放原始碼 MCP 伺服器,設計時考量到企業級和實際工作環境的品質。它可處理連線集區、驗證等複雜作業,讓您更輕鬆、快速且安全地開發工具。

工具箱可協助您建立生成式 AI 工具,讓您的代理程式存取資料庫中的資料。工具箱提供以下功能:

  • 簡化開發作業:透過不到 10 行程式碼,將工具整合至您的代理程式,在多個代理程式或架構之間重複使用工具,並更輕鬆地部署新版工具。
  • 提升效能:採用連線集區、驗證等最佳做法。
  • 強化安全性:整合式驗證機制,讓您更安全地存取資料
  • 端對端監控:內建 OpenTelemetry 支援功能,可使用現成指標和追蹤記錄。
  • Toolbox 可讓您輕鬆將資料庫連結至任何支援 MCP 的 AI 助理,甚至是 IDE 中的 AI 助理。

Toolbox 位於應用程式調度架構和資料庫之間,提供用於修改、發布或叫用工具的控制平面。這項服務可提供集中位置來儲存及更新工具,簡化工具管理作業,讓您在代理程式和應用程式之間共用工具,並更新這些工具,而無須重新部署應用程式。

e316aed02b9861a6.png

簡單來說:

  1. MCP Toolbox 可做為二進位檔、容器映像檔使用,也可以從原始碼建構。
  2. 它會公開一組工具,您可以透過 tools.yaml 檔案進行設定。這些工具可連結至資料來源。您可以查看支援的各種資料來源:AlloyDB、BigQuery 等。
  3. 由於這個工具箱現在支援 MCP,您會自動取得 MCP 伺服器端點,可供代理程式 (IDE) 使用,或是在使用各種架構 (例如 Agent Development Kit (ADK)) 開發代理應用程式時使用。

本篇文章將著重於以下重點:

f3f3cb495d8a288b.png

總而言之,我們將在 MCP Toolbox for Databases 中建立設定,讓系統知道如何連線至 BigQuery 資料集。接著,我們會使用 IDE 或任何其他 Agent IDE (MCP 用戶端),與 MCP Toolbox 端點通訊,並允許我們傳送自然查詢,以便詢問資料集。您可以將其視為一種工具,可設定如何與 BigQuery 資料集互動,並執行一些查詢。

5. Google Cloud 適用的 BigQuery 資料集版本資訊

Google Cloud 公開資料集計畫是一項計畫,可為您的應用程式提供各種資料集。其中一個資料集是 Google Cloud 發布說明資料庫。這個資料集提供的資訊與 官方 Google Cloud 發布說明網頁相同,並可做為可公開查詢的資料集。

2104010c05c87d0d.png

為了測試,我只需執行下列簡單的查詢來驗證資料集:

SELECT
       product_name,description,published_at
     FROM
       `bigquery-public-data`.`google_cloud_release_notes`.`release_notes`
     WHERE
       DATE(published_at) >= DATE_SUB(CURRENT_DATE(), INTERVAL 7 DAY)
     GROUP BY product_name,description,published_at
     ORDER BY published_at DESC

這會讓我取得過去 7 天內發布的「發布說明」資料集記錄清單。

請將這個資料集替換為您選擇的任何其他資料集,並使用您想要的查詢和參數。我們現在只需要在 MCP Toolbox for Databases 中,將這項工具設為資料來源和工具。我們來看看如何操作。

6. 安裝 MCP Toolbox for Databases

在本機電腦上開啟終端機,然後建立名為 mcp-toolbox 的資料夾。

mkdir mcp-toolbox

使用下列指令前往 mcp-toolbox 資料夾:

cd mcp-toolbox

透過下方提供的指令碼,安裝 MCP Toolbox for Databases 的二進位版本。以下指令適用於 Linux,但如果您使用的是 Mac 或 Windows,請務必下載正確的二進位檔。請查看適用於您作業系統和架構的發布頁面,並下載正確的二進位檔。

export VERSION=0.7.0
curl -O https://storage.googleapis.com/genai-toolbox/v$VERSION/linux/amd64/toolbox
chmod +x toolbox

我們現在已準備好可供使用的工具箱二進位版本。接下來,我們會設定工具箱的資料來源和其他設定。

7. 設定 MCP Toolbox for Databases

接下來,我們需要在 MCP Toolbox for Database 所需的 tools.yaml 檔案中定義 BigQuery 資料集和工具。tools.yaml 檔案是設定 Toolbox 的主要方式。

在同一個資料夾 (即 mcp-toolbox) 中建立名為 tools.yaml 的檔案,內容如下所示。

您可以使用 Cloud Shell 提供的 nano 編輯器。nano 指令如下:「nano tools.yaml」。

請記得將 YOUR_PROJECT_ID 值替換為您的 Google Cloud 專案 ID。

sources:
 my-bq-source:
   kind: bigquery
   project: YOUR_PROJECT_ID

tools:
 search_release_notes_bq:
   kind: bigquery-sql
   source: my-bq-source
   statement: |
    SELECT
     product_name,description,published_at
    FROM
      `bigquery-public-data`.`google_cloud_release_notes`.`release_notes`
    WHERE
     DATE(published_at) >= DATE_SUB(CURRENT_DATE(), INTERVAL 7 DAY)
    GROUP BY product_name,description,published_at
    ORDER BY published_at DESC
   description: |
    Use this tool to get information on Google Cloud Release Notes.

toolsets:
 my_bq_toolset:
   - search_release_notes_bq

讓我們簡單瞭解這個檔案:

  1. 來源代表工具可互動的不同資料來源。來源代表工具可互動的資料來源。您可以在 tools.yaml 檔案的 sources 區段中,將來源定義為對應項目。通常,來源設定會包含連線至資料庫並與資料庫互動所需的所有資訊。在本例中,我們已定義 BigQuery 來源 my-bq-source,您需要提供 Google Cloud 專案 ID。詳情請參閱「來源」參考資料。
  2. 工具會定義代理人可執行的動作,例如讀取及寫入來源。工具代表代理程式可採取的動作,例如執行 SQL 陳述式。您可以在 tools.yaml 檔案的 tools 區段中,將工具定義為對應項目。通常,工具需要有來源才能運作。在本範例中,我們定義單一工具 search_release_notes_bq。這會參照我們在第一步驟中定義的 BigQuery 來源 my-bq-source。並包含 AI 代理程式用戶端會使用的陳述式和指令。詳情請參閱「工具」參考資料。
  3. 最後,我們有工具集,可讓您定義要一起載入的一組工具。這項功能可用於依據代理程式或應用程式定義不同的群組。在我們的例子中,我們有一個工具組定義,目前只定義了一個現有的工具 search_release_notes_bq。您可以擁有多個工具組,其中包含不同工具的組合。

因此,目前我們只定義了一個工具,可根據查詢取得過去 7 天的版本說明。但您也可以使用各種參數組合。

請查看資料庫專用的 MCP Toolbox 中 BigQuery 資料來源設定的其他設定詳細資料 (「來源」、「工具」)。

8. 測試 MCP Toolbox for Databases

我們已下載並設定 Toolbox,並在 mcp-toolbox 資料夾中使用 tools.yaml 檔案。請先在本機執行。

執行下列指令:

./toolbox --tools-file="tools.yaml"

執行成功後,您應該會看到伺服器啟動,並顯示類似下方的範例輸出內容:

2025-06-17T07:48:52.989710733Z INFO "Initialized 1 sources." 
2025-06-17T07:48:52.989805642Z INFO "Initialized 0 authServices." 
2025-06-17T07:48:52.989847035Z INFO "Initialized 1 tools." 
2025-06-17T07:48:52.989889742Z INFO "Initialized 2 toolsets." 
2025-06-17T07:48:52.990357879Z INFO "Server ready to serve!" 

根據預設,MCP Toolbox 伺服器會在 5000 通訊埠上執行。如果您發現通訊埠 5000 已在使用中,可以根據下方指令使用其他通訊埠 (例如 7000)。請在後續指令中使用 7000,而非 5000 連接埠。

./toolbox --tools-file "tools.yaml" --port 7000

我們來使用 Cloud Shell 進行測試。

按一下 Cloud Shell 中的「網頁預覽」(Web Preview),如下所示:

f990712162e8e924.png

按一下「Change port」(變更通訊埠),然後將通訊埠設為 5000,如以下所示,然後按一下「Change and Preview」(變更並預覽)。

d1b9de0c46ecef8a.png

這應該會產生下列輸出內容: