模型 / 資料集
googleapis/mcp-toolbox avatar
googleapis/mcp-toolbox

MCP Toolbox for Databases:把資料庫查詢變成 MCP 工具,但安全邊界在哪?

MCP Toolbox for Databases is an open source MCP server for databases.

16,411 個 Star1,721 個 ForkGoApache-2.0

秒懂

它是什麼?
googleapis/mcp-toolbox 是一個以 Go 寫成的開源 MCP 伺服器,讓你用現成工具或自訂工具連接十多種資料庫。本文拆解它的雙重定位、實際啟動方式,以及哪些情境不該用它。
適合誰用?
若你的團隊已經在用 Gemini CLI、Claude Code 或 Codex,且需要快速連接 PostgreSQL、BigQuery 等資料庫來做 schema 探索或生成程式碼,MCP Toolbox 的 prebuilt 模式值得一試,因為它只需一行 npx 指令就能啟動。若你的場景是對外部使用者開放任意 SQL 查詢,或需要對每個工具做細粒度權限控管,則應先確認 custom tools 的 restricted access 與 structured queries 是否真的符合你的稽核需求,文件中的安全宣稱需要實際驗證。
可以商用嗎?
可以。Apache-2.0 是寬鬆授權:你可以使用、修改並販售以它為基礎的軟體,只需保留著作權與授權聲明。
還在維護嗎?
有在維護。儲存庫在最近一天內有新的提交。
用什麼語言寫的?
主要是 Go(依據 GitHub 的語言統計)。

以上回答依據專案的 GitHub 資料(最近同步於 2026年9月15日)與我們的分析,不構成法律意見。

開源專案深度解析

它解決的是哪一層問題

它解決的不是「連不上資料庫」的問題,而是「AI agent 如何安全地碰資料庫」的問題。一般做法是讓 agent 直接拿到 JDBC 或 SQL driver,然後放任它下任何查詢,這在開發環境可行,但進到生產就會出事。Toolbox 的做法是把資料庫操作包成 MCP 工具,讓 agent 只能呼叫你定義好的介面。它同時服務兩種人:一種是只想在 IDE 裡用自然語言問資料的開發者,另一種是要把資料查詢嵌入自家產品的工程團隊。前者用 prebuilt 工具,後者用 custom tools 框架。這個雙重定位是它和其他 MCP server 最大的不同,多數專案只做其中一邊。

架構:prebuilt 與 custom tools 的界線

從 README 的架構圖與描述來看,Toolbox 的運作核心是「工具定義」。Prebuilt 模式提供一組通用工具,例如 list_tables 和 execute_sql,這些工具直接對應到某個資料庫類型。你啟動時用 --prebuilt=postgres/data 這種語法,就能只載入 SQL 相關的工具,而不會把整個 postgres 工具集都曝露出來。Custom tools 框架則讓你自己定義工具,文件提到三種安全機制:Restricted Access、Structured Queries、Semantic Search。Structured Queries 的意思是你預先寫好查詢模板,agent 只能填入參數,不能改動 SQL 本身,這比直接開放 execute_sql 安全得多。但要注意,README 沒有詳細說明 restricted access 是怎麼實作的,是基於資料列還是資料表,這需要查完整文件才能確認。

啟動方式:從 npx 到 Docker

最直接的啟動方式是用 npx。在 MCP client 的設定檔裡,例如 mcp.json 或 claude_desktop_config.json,加入一段 mcpServers 設定。以 PostgreSQL 為例,command 是 npx,args 是 -y @toolbox-sdk/server --prebuilt=postgres --stdio。這個指令會啟動一個走 stdio 的 MCP server,適合本地 IDE 使用。環境變數則用來設定連線資訊,README 指向 Prebuilt Tools Reference,但沒有列出具體的變數名稱,例如 PGHOST 或 DATABASE_URL,這點對新手不太友善。對於 production 部署,README 提到可以用 Docker 或 binary,但沒有給出範例指令。另外,這個專案也提供 Python、JS/TS、Go、Java 的 SDK,例如 toolbox-core 和 @toolbox-sdk/core,讓你可以把 Toolbox 嵌進自己的 agent 應用程式,而不只是透過 MCP client。

支援的資料庫清單與它的 Google 色彩

README 列出的資料庫涵蓋 Google Cloud 產品,包括 AlloyDB、BigQuery、Cloud SQL、Spanner、Firestore、Knowledge Catalog,也有其他常見的 PostgreSQL、MySQL、MariaDB、SQL Server、Oracle、MongoDB、Redis、Elasticsearch、CockroachDB、ClickHouse、Couchbase、Neo4j、Snowflake、Trino。這份清單很長,但要注意,它沒有提到 SQLite,對小型專案或本地開發來說可能是個缺憾。另外,這個專案出身於 Google,原名 genai-toolbox,改名為 mcp-toolbox 是為了對齊 MCP 標準,但它的預設工具設計仍帶有 Google Cloud 的痕跡,例如把 Dataplex 改名為 Knowledge Catalog。如果你的資料庫不在清單上,例如是自製的 NoSQL,你就得自己寫 custom tools,這會增加不少工作量。

安全與可觀測性的宣稱,需要打折看待

README 強調 integrated auth(IAM)與 OpenTelemetry 支援,這對 production agent 很重要。IAM 整合表示它可以直接用 Google Cloud 的服務帳戶來認證,不需要把密碼寫在設定檔裡,這在 Google Cloud 環境下是很大的優勢。OpenTelemetry 則讓你能把每個工具呼叫的 trace 送到你的監控系統,對於稽核 agent 的行為很有幫助。但這裡有個陷阱:這些宣稱主要針對 custom tools 框架,prebuilt 工具是否也套用同樣的 auth 機制,README 沒有明確說明。另外,安全不等於「不會出錯」。execute_sql 這種工具,就算有 IAM,agent 仍然可能下一個全表掃描的查詢,把資料庫拖垮。Toolbox 提供 structured queries 來限制這種風險,但如果你用的是 prebuilt 的 execute_sql,那就等於把 SQL 執行權交給 agent,這在 production 是危險的。

限制與不適合的場景

首先,這不是一個資料庫管理工具。它不提供 migration、備份或效能調校功能,它的定位是讓 agent 讀取資料或執行定義好的操作。如果你的需求是讓 agent 自動修改 schema,例如加欄位或刪索引,Toolbox 的 prebuilt 工具可能沒有涵蓋,你必須自己寫工具。其次,它是用 Go 寫的,但 README 沒有提供 Go 的擴充 API 細節,如果你想寫一個複雜的 custom tool,例如需要串接多個資料庫的事務,你可能得直接改 source code,而不是用設定檔解決。最後,它對非 Google 雲端的整合,例如 Snowflake 或 Trino,README 只列了名字,沒有提供範例設定。這代表你可能要花時間試錯,文件品質在某些邊緣資料庫上可能不夠。

替代方案:Postgres MCP 與自建工具

最直接的替代方案是官方或社群寫的單一資料庫 MCP server,例如 PostgreSQL 的 postgres-mcp 專案,它通常只做一件事,就是把 PostgreSQL 包成 MCP 工具。差別在於,這些專案通常只支援一種資料庫,但設定更簡單,因為你不需要理解 Toolbox 的 prebuilt 與 custom tools 兩層概念。另一個替代方案是完全不透過 MCP server,而是自己寫一個薄薄的 API layer,讓 agent 呼叫你的 REST endpoint。這樣做的好處是你可以完全控制參數驗證與權限,壞處是你要自己處理 connection pooling 與 auth,而 Toolbox 把這些都內建了。如果你的團隊已經在用 LangChain 或 LlamaIndex,Toolbox 提供 SDK 可以整合,但其實 LangChain 本身也有 SQL agent 元件,差別在於 Toolbox 把資料庫連線管理集中在一處,而不是散落在 agent 的 code 裡。

維護成本與授權

這個專案以 Apache-2.0 授權,代表你可以自由使用、修改甚至商用,只要保留原始的授權聲明。這對企業採用是友善的,因為沒有 copyleft 的包袱。維護方面,最近 releases 顯示 v1.8.0 在 2026 年 7 月、v1.9.0 在 8 月、v1.10.0 在 8 月底,更新頻率約一個月一次,代表專案還在活躍開發。但活躍開發也意味著 API 可能變動,尤其是從 genai-toolbox 改名過來,舊的設定檔或工具名稱可能不相容。升級時你必須檢查每個版本的 release notes,因為沒有保證向後相容。另外,雖然有 Python、JS、Go、Java 四種 SDK,但這些 SDK 的成熟度不一,例如 Go SDK 的版本是從 GitHub 上的獨立 repo 追蹤,與主專案的 release 不同步,這會增加依賴管理的複雜度。若你只想要一個穩定的 MCP server,而不是跟著每個月升級,你可能要考慮鎖定某個版本,或選擇維護較慢的替代品。

編輯結論

若你的團隊已經在用 Gemini CLI、Claude Code 或 Codex,且需要快速連接 PostgreSQL、BigQuery 等資料庫來做 schema 探索或生成程式碼,MCP Toolbox 的 prebuilt 模式值得一試,因為它只需一行 npx 指令就能啟動。若你的場景是對外部使用者開放任意 SQL 查詢,或需要對每個工具做細粒度權限控管,則應先確認 custom tools 的 restricted access 與 structured queries 是否真的符合你的稽核需求,文件中的安全宣稱需要實際驗證。也要注意這個專案從 genai-toolbox 改名而來,且版本號已到 v1.10.0,代表 API 可能仍在變動,採用前應鎖定特定版本並閱讀遷移文件。

官方來源

  1. googleapis/mcp-toolbox on GitHub
  2. License: Apache-2.0
  3. Project website
  4. README
  5. Releases
社群筆記

社群筆記