在《》中,微軟 CEO 納德拉曾經(jīng)表示,在 Agent 時(shí)代,SaaS is Dead,而未來(lái)的軟件形式將是 Agent + Database 。也就是直接由 Agent 在數(shù)據(jù)庫(kù)上做 CRUD。當(dāng)然這篇文章也有不小爭(zhēng)議 —— 很多老司機(jī)表示,Agent 直通數(shù)據(jù)庫(kù),是嫌安全問(wèn)題不夠多,死的不夠快嗎?
老實(shí)說(shuō),那種直接把整個(gè)數(shù)據(jù)庫(kù)開(kāi)放給世界的所謂 “MCP” 確實(shí)是這樣,當(dāng)個(gè)玩具可以,沒(méi)人敢上生產(chǎn)用。不過(guò),最近 Google 推出了一個(gè)針對(duì)數(shù)據(jù)庫(kù)的 MCP 工具箱(名字就叫樸實(shí)無(wú)華 GenAI Toolbox ),為這個(gè)問(wèn)題提供了一個(gè)答案。
https://googleapis.github.io/genai-toolbox/
![]()
不同于以前那種直接把整個(gè)數(shù)據(jù)庫(kù)對(duì) Agent 開(kāi)放的粗暴做法,這個(gè)工具箱通過(guò)封裝參數(shù)模板 SQL 的方式,顯著提高了數(shù)據(jù)庫(kù) MCP 的實(shí)用性與安全性,可以考慮搞起生產(chǎn)試點(diǎn)了 —— 老馮也打好了 RPM/DEB 包供大家嘗鮮。
![]()
https://github.com/googleapis/genai-toolbox
快速上手
舉個(gè)例子,老馮維護(hù)了一個(gè)包含 423 個(gè)擴(kuò)展的 PG 倉(cāng)庫(kù),里面有一些數(shù)據(jù)表。現(xiàn)在我想要對(duì)外暴露一個(gè)擴(kuò)展/軟件包查詢(xún)的能力,只需要編寫(xiě)一個(gè)聲明式的tools.yaml配置文件就好了,這里我們讓 Claude Desktop 用 STDIO 方式接入 MCP,然后直接向他提問(wèn)題就可以了。
![]()
老馮維護(hù)擴(kuò)展的時(shí)候,通常需要去 GitHub 上搜刮各種元數(shù)據(jù),然后填入到數(shù)據(jù)庫(kù)表中。有了這個(gè)工具箱,我還可以定義一條插入擴(kuò)展表的模板 SQL ,描述清楚各種參數(shù)字段,然后直接讓 Claude 去 “深度研究”,生成元數(shù)據(jù)填入到數(shù)據(jù)表中,省下老馮的很多手工活兒。
![]()
老司機(jī)一眼就能看出這個(gè)思路是什么,就是通過(guò)模版化的 SQL 語(yǔ)句,限制數(shù)據(jù)庫(kù)對(duì)外提供服務(wù)的范圍。當(dāng)然,你也是可以繼續(xù)使用那種 execute_sql 的萬(wàn)金油接口來(lái)干活的。比如這里我們讓 Claude Desktop 查閱 PostgreSQL 數(shù)據(jù)庫(kù)中的參數(shù),并進(jìn)行配置優(yōu)化:
![]()
官網(wǎng)給出了一個(gè)更詳細(xì)的例子,就是訂酒店,通過(guò)直接讀寫(xiě) PostgreSQL 數(shù)據(jù)庫(kù)的方式,對(duì)外提供 “定酒店” 的能力。
![]()
特性說(shuō)明
當(dāng)然,Google MCP Toolbox for Database 支持的數(shù)據(jù)庫(kù)種類(lèi)其實(shí)挺多的,不僅僅是 PostgreSQL(雖然文檔里的例子滿(mǎn)篇都是 PG),還有 MySQL,SQL Server,SQLite,Redis,Neo4j,AlloyDB,BigQuery,BigTable,CouchBase,Google 云上的數(shù)據(jù)庫(kù),還可以使用通用的 HTTP 數(shù)據(jù)源,堪稱(chēng)萬(wàn)金油數(shù)據(jù)庫(kù) MCP。
![]()
一個(gè)工具箱就搞定主流數(shù)據(jù)庫(kù)的接入,光這一點(diǎn)就省了很多事兒 —— 你再也不用搓一堆各種數(shù)據(jù)庫(kù)各自的 MCP 了。
當(dāng)然,這個(gè)工具箱不僅僅是給 MCP 客戶(hù)端用的,它還可以直接對(duì) Agent 提供訪問(wèn)。Google ADK 就提供了開(kāi)箱即用的接入,寫(xiě)一個(gè) Agent ,讓它去訪問(wèn)數(shù)據(jù)庫(kù)就非常簡(jiǎn)單了。
![]()
老馮評(píng)價(jià)
Google 數(shù)據(jù)庫(kù) MCP 工具箱解決了 MCP 上生產(chǎn)的一個(gè)核心問(wèn)題 ——權(quán)限管理。當(dāng)然這也有代價(jià),開(kāi)發(fā)者需要一個(gè)一個(gè)的去定義數(shù)據(jù)庫(kù)對(duì)外提供的能力 —— 寫(xiě) SQL 模板跟以前寫(xiě) CRUD 差不多,但要簡(jiǎn)單很多 —— 你可以用自然語(yǔ)言編寫(xiě)業(yè)務(wù)邏輯了。我認(rèn)為這是軟件行業(yè)向 Agent + Database 的未來(lái)圖景邁出的重要一步。
老馮認(rèn)為,Agent + Database 的組合,將會(huì)不可避免的導(dǎo)致數(shù)據(jù)庫(kù)存儲(chǔ)過(guò)程的“文藝復(fù)興”。因?yàn)槿绻阒皇前押?jiǎn)單的 SQL 語(yǔ)句放進(jìn) MCP 里,會(huì)給 Agent 帶來(lái)巨大的上下文認(rèn)知負(fù)擔(dān) —— Agent 需要理解業(yè)務(wù)邏輯并將復(fù)雜的業(yè)務(wù)邏輯組織為 SQL 調(diào)用,一旦服務(wù)調(diào)用對(duì)應(yīng)著多條復(fù)雜SQL語(yǔ)句,可靠性就會(huì)快速下降。
但如果開(kāi)發(fā)者將業(yè)務(wù)邏輯整個(gè)下沉到數(shù)據(jù)庫(kù)里,將原本 Service 層面的 API 接口放在 Oracle / PostgreSQL 這樣的數(shù)據(jù)庫(kù)中用存儲(chǔ)過(guò)程實(shí)現(xiàn),那么對(duì) Agent 的智力/上下文要求就會(huì)減小許多 —— 從 DAO 成抽象,到 Service 層抽象。
另外,存儲(chǔ)過(guò)程的兩大缺點(diǎn) ——對(duì)開(kāi)發(fā)/DBA水平要求高,占用數(shù)據(jù)庫(kù)服務(wù)器性能,在當(dāng)下基本上已經(jīng)不再是問(wèn)題了。與維護(hù)的問(wèn)題,而當(dāng)下讓 TP 數(shù)據(jù)庫(kù)的性能余量又開(kāi)始充裕豐饒起來(lái)。那么節(jié)省多次交互 RT,收攏訪問(wèn)權(quán)限,抽象封裝復(fù)雜度這些優(yōu)勢(shì)就會(huì)凸顯出來(lái)。
![]()
因此我認(rèn)為 AI 時(shí)代是極大利好 的,PG 支持用 20 多種編程語(yǔ)言開(kāi)發(fā)存儲(chǔ)過(guò)程,即使是 Oracle 也難望其項(xiàng)背(六種)。當(dāng)然,Oracle 的可編程性也非常好,只不過(guò)因?yàn)椴婚_(kāi)源,吃到的紅利就會(huì)少很多了。老馮目測(cè)這兩者會(huì)分別吃下開(kāi)源/商業(yè)數(shù)據(jù)庫(kù)生態(tài)的最大 AI 紅利。
下載安裝教程
目前 MCP Toolbox for Database 提供了 macOS 下的包,以及 Linux/ Windows x86 的包。老馮把 Linux x86/ARM 平臺(tái)打好了 RPM / DEB 包,在主流 Linux 系統(tǒng)上都可以使用 (倉(cāng)庫(kù)教程:https://pgsty.com/ext/repo/infra)
curl https://repo.pigsty.cc/pig | bash # pig 包管理器
pig repo add infra -u # 添加 infra 倉(cāng)庫(kù)
yum install genai-toolbox # 安裝 genai 工具箱
你可以編輯/etc/toolbox/tools.yaml配置文件,加入你的數(shù)據(jù)源與工具,并使用systemctl start toolbox啟動(dòng)服務(wù)。如果你使用的是 PostgreSQL,編輯/etc/defalt/toolbox里的環(huán)境變量,填入 PG 連接信息,即可開(kāi)箱即用的使用這個(gè) MCP 服務(wù)器了。你可以使用 SSE 訪問(wèn)5000端口,連接數(shù)據(jù)庫(kù) MCP 工具箱獲取服務(wù)。
![]()
Pigsty 的 Infra 倉(cāng)庫(kù)已經(jīng)提供了上面的軟件包,并會(huì)在下個(gè)版本提供數(shù)據(jù)庫(kù) MCP 工具箱的部署劇本。
好的,今天就是這些,祝大家 MCP 愉快!
數(shù)據(jù)庫(kù)老司機(jī)
點(diǎn)一個(gè)關(guān)注 ??,精彩不迷路
對(duì) PostgreSQL, Pigsty,下云 感興趣的朋友
歡迎加入 PGSQL x Pigsty 交流群(備注加PG群)
(這個(gè)小助手很懶,請(qǐng)使勁拍打他)
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶(hù)上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.