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

1. 簡介

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

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

  1. 從公開的 BigQuery 資料集計畫中找出特定 BigQuery 資料集 (「Google Cloud 版本資訊」)。
  2. 設定可連結至 BigQuery 資料集的 MCP Toolbox for Databases。
  3. 探索各種 MCP 用戶端,並驗證這些用戶端是否能存取 BigQuery 資料集 MCP 介面。

81c33b0f8af54b0c.png

執行步驟

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

課程內容

  • 探索 BigQuery 公開資料集並選擇特定資料集。
  • 為要提供給 MCP 用戶的 BigQuery 公開資料集,設定 MCP 資料庫工具箱。
  • 在本機環境中測試 MCP Toolbox for Databases 設定。

軟硬體需求

  • Chrome 網路瀏覽器。
  • 本機 Python 開發環境。
  • 本機 Node.js 環境,並安裝 npm 5.2.0 以上版本。

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 版本資訊」。

讓我們來看看最終目標,這是 Visual Studio Code 執行 CoPilot 的實際螢幕截圖,我處於代理程式模式,正在查看 Google Cloud 發布說明:

1ded42a37f128fa3.png

我們將說明如何建構這項功能,並在過程中說明如何在您選擇的各種 MCP 用戶端中公開 BigQuery 資料集。

4. MCP Toolbox for Databases

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

Toolbox 可協助您建構生成式 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.6.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 資料庫工具箱中的 BigQuery 資料來源設定,進一步瞭解設定細節 (「來源」、「工具」)。

8. 測試 MCP Toolbox for Databases

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

執行下列指令:

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

MCP Toolbox 伺服器預設會在 5000 通訊埠上執行,但在本例中,我們已指定讓它在 7000 上執行。

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

2025-04-25T16:05:45.603871+05:30 INFO "Initialized 1 sources."
2025-04-25T16:05:45.603943+05:30 INFO "Initialized 0 authServices."
2025-04-25T16:05:45.604092+05:30 INFO "Initialized 1 tools."
2025-04-25T16:05:45.604105+05:30 INFO "Initialized 2 toolsets."
2025-04-25T16:05:45.604706+05:30 INFO "Server ready to serve!"

只要啟動瀏覽器並造訪下列網址即可:

http://127.0.0.1:7000

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

2fdcdac326034d41.png

在瀏覽器網址中,將以下內容加入網址末端:

http://127.0.0.1:7000/api/toolset

這應該會顯示目前已設定的工具。以下是輸出內容範例:

53d9c9a3bb1c8494.png

根據說明文件,MCP 伺服器現已可透過以下網址取得:

http://127.0.0.1:7000/mcp/sse

輸出內容如下所示:

event: endpoint
data: https://<some-url-pattern>/mcp?sessionId=bf6bfb66-36fe-48a4-8340-ac68008ee873

接下來,我們將使用 MCP 用戶端測試 MCP 伺服器。

9. 使用各種 MCP 用戶端測試 MCP 伺服器

讓我們使用幾個 MCP 用戶端,測試我們新建的 MCP 伺服器。

搭配 Toolbox 使用的 MCP Inspector

首先要使用的工具是搭配工具箱的 MCP 檢查器。如要這麼做,您必須先安裝 npx。Cloud Shell 會提示您安裝套件。請繼續安裝。

您需要提供下列指令:

npx @modelcontextprotocol/inspector

這會啟動伺服器,您應該會看到類似以下的輸出內容:

Starting MCP inspector...
⚙️ Proxy server listening on port 6277
🔍 MCP Inspector is up and running at http://127.0.0.1:6274 🚀

如前所述,請前往 MCP 檢查器頁面,首先您必須設定這個用戶端,才能與 MCP 伺服器通訊。

a819e93705367076.png

選取「運送類型」為 SSE,並提供我們先前提到的 URL,也就是 http://127.0.0.1:7000/mcp/sse。按一下 Connect。如果一切順利,您應該會看到已連線的狀態,如下所示:

e19278a9ea58dda1.png

按一下 List Tools,即可在右側查看工具清單。

faacf3e6d7ac2ebe.png

接著按一下 search_release_notes_bq 工具,由於我們沒有任何要傳遞的參數,因此只要按一下 Run tool 按鈕即可。您應該會看到它叫用 Toolbox,而 Toolbox 會連結至 BigQuery 資料來源,並擷取資料,如下所示:

3db3e057763ecbef.png

在 CoPilot 的輔助下,以代理程式模式使用 VS Code

官方說明文件中提供各種資料來源和 IDE 的連結步驟,請參閱這篇文章

在本節中,我們將說明如何在 VS Code 中設定及使用 MCP 伺服器。請注意,此功能已在預先發布版中推出,官方說明文件內容詳盡,可在這個頁面查看。

假設您已啟動 VS Code,請啟動 Command Palette,並輸入下列指令:

4df742e8ef74b52.png

接著,選取 HTTP sse,因為我們有 SSE 網址。

1423ab084bfa2b79.png

系統會要求提供 SSE endpoint,我們會提供相同的 SSE endpoint

b155684784fb15b0.png

接著,系統會確認其他幾項詳細資料。我選擇將其加入使用者設定,因此系統會開啟 settings.json 檔案,讓我查看設定:

901cd7c7d9850ea3.png

只要按一下上方的 Start,或是透過面板指令即可。

您會看到狀態變更為 Running

b62eb21d1fd01cc1.png

我們現在可以啟動 CoPilot Chat 模式,然後在 Agent 模式中,提供 #search_release_notes_bq,以便使用該工具,並提供查詢文字範例,如下所示:

b6bbc7ec044887ce.png

10. 恭喜

恭喜!您已成功設定資料庫的 MCP Toolbox,並設定 BigQuery 資料集,以便在 MCP 用戶端中存取。

參考文件