10多年前,我還在IBM工作,內(nèi)部有個特定的崗位叫做BA(Business Analyst),有點兒像現(xiàn)在的產(chǎn)品經(jīng)理,就是負責(zé)和客戶打交道,收集、分析客戶需求,然后讓程序員在系統(tǒng)中實現(xiàn)。
有一回我遇到了一個與眾不同的老外BA,全名我忘了,名字以J開頭,就叫她J姐吧。
別的BA在測試系統(tǒng)時也就是在界面上操作,點來點去,看看對不對,而J姐不一樣,在界面上點完后,一頭扎進數(shù)據(jù)庫,直接用SQL查看數(shù)據(jù)庫的數(shù)據(jù)。
然后提一個Bug:你這個表的數(shù)據(jù)不對啊,應(yīng)該是這樣這樣的....
把我們都給整懵了,這太嚇人了,程序員都沒有活路了。
后來,我在一個Java文件的開頭注釋中看到了J姐的大名,原來J姐程序員出身,這個系統(tǒng)的早期版本就是她寫的,對代碼和數(shù)據(jù)庫比我們都熟。
轉(zhuǎn)眼10多年過去了,我再也沒有遇到過像J姐這樣的,一般的BA/產(chǎn)品經(jīng)理是不懂代碼和SQL,即使懂一些,也很難對系統(tǒng)底層有這么精深的理解。
01
更厲害的“J姐”
最近,我發(fā)現(xiàn)一個更加強大、更加通用的“J姐”出現(xiàn)了。
Anthropic推出的MCP(Model Context Protocol) ,利用MCP,可以讓各種AI助理用自然語言輕松地訪問各種數(shù)據(jù)源,執(zhí)行各種分析和查詢。
說概念沒啥意思,看一個例子吧,使用Claude Desktop訪問本地的SQLite數(shù)據(jù)庫。
1. 讓它連接上數(shù)據(jù)庫:
直接用自然語言就行,連接完成以后,它還非常貼心地把數(shù)據(jù)庫中的表都給讀了出來。
2. 查看產(chǎn)品表中有哪些產(chǎn)品和價格:
3.計算一下平均價格
4.分析一下價格分布,并且給出價格優(yōu)化方案
是不是挺厲害的?可以這么說,有了MCP以后,你想要的任何SQL查詢都可以通過自然語言來進行了。
02
這不就是Chat2DB嗎?
你可能覺得,這不就是Chat2DB嗎?
還真不一樣,Chat2DB是人家自己訓(xùn)練了一個大模型,實現(xiàn)自然語言到SQL的轉(zhuǎn)換。
這個MCP更像大模型一個通用的“外掛”,它是一種更具普遍性的協(xié)議,更加靈活,它可以支持各種數(shù)據(jù)源:數(shù)據(jù)庫、文件、GitHub、Google Drive、Google Maps、Slack.....
它的架構(gòu)是這樣的,典型的Client/Server:
MCP Client可以運行在Claude Desktop,Zed(代碼編輯器當(dāng)中)。
MCP Server其實就是對某一種數(shù)據(jù)源的封裝,把這個數(shù)據(jù)源的能力給暴露出來,讓Client去訪問。
例如對于SQLite,你就需要暴露出可以被訪問的“函數(shù)”read_query,write_query等。
當(dāng)然,對于Server的每個操作,MCP協(xié)議都精確地定義了輸入和輸出,這樣Client才可以理解它有哪些能力。
types.Tool(
name="read_query",
description="Execute a SELECT query on the SQLite database",
inputSchema={
"type": "object",
"properties": {
"query": {"type": "string", "description": "SELECT SQL query to execute"},
},
"required": ["query"],
},
),
types.Tool(
name="write_query",
description="Execute an INSERT, UPDATE, or DELETE query on the SQLite database",
inputSchema={
"type": "object",
"properties": {
"query": {"type": "string", "description": "SQL query to execute"},
},
"required": ["query"],
},
),
MCP Server 寫好以后,需要在Claude中配置一下,告訴Claude,現(xiàn)在有這個數(shù)據(jù)源可以訪問了。
當(dāng)你向Claude發(fā)出查詢“產(chǎn)品表的平均價格是多少?” 執(zhí)行流程是這樣的:
(1) Claude利用大模型的能力把自然語言轉(zhuǎn)化成需要執(zhí)行的“函數(shù)”(read-query),交由MCP Server來執(zhí)行。
(2) MCP Server則把“函數(shù)”轉(zhuǎn)化為SQL,交給SQLite數(shù)據(jù)庫來執(zhí)行。
SQLite是這樣,其他數(shù)據(jù)源也是如此,官方已經(jīng)推出了各種各樣的MCP Server,可以直接使用:
03
美國人又領(lǐng)先了一步
即使是最復(fù)雜最強大的大模型,也是被困在一個信息孤島之中,和外界是隔離的。對每個數(shù)據(jù)源,都需要需要做“定制”,才能和大模型做連接。
Anthropic提出的這個MCP協(xié)議,其實就是避免大家重復(fù)造輪子,它就像電腦上的USB Type-C接口,給各種外圍設(shè)備提供了一種標(biāo)準(zhǔn)的方式,讓AI大模型可以輕松連接不同的數(shù)據(jù)源。
當(dāng)年的JDBC用統(tǒng)一的接口屏蔽了底層數(shù)據(jù)庫的差異,讓Java代碼可以訪問各種數(shù)據(jù)庫,MCP也有點兒像。
這個協(xié)議并不是只有Anthropic 的Claude 模型可以使用,任何大模型都可以使用,這很有可能打開一個全新的賽道。
MCP協(xié)議能不能做成,還依賴于OpenAI、谷歌、微軟、Meta等AI巨頭對它的接受度,以及是否愿意把它標(biāo)準(zhǔn)化,然后推廣到整個業(yè)界。
看到MCP,我的第一感覺就是:可惜可惜,美國人又領(lǐng)先了一步。
MCP很難嗎? 并不難,這玩意兒正如它的名字所說Model Context Protocol,只是一個協(xié)議,只要能想到就能把它定義出來,然后一開源,有望成為一個重要標(biāo)準(zhǔn)。
它沒有誕生在國內(nèi)AI相關(guān)的公司,著實可惜啊!
全文完,覺得不錯的話點個贊或者在看吧!
近期爆文:
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(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.