10多年前,我还在IBM工作,内部有个特定的岗位叫做BA(Business Analyst),有点儿像现在的产品经理,就是负责和客户打交道,收集、分析客户的真实需求,然后让程序员在系统中实现。
有一回我遇到了一个与众不同的老外BA,全名我忘了,名字以J开头,就叫她J姐吧。
别的BA在检测系统时也就是在界面上操作,点来点去,看看对不对,而J姐不一样,在界面上点完后,一头扎进数据库,直接用SQL查看数据库的数据。
后来,我在一个Java文件的开头注释中看到了J姐的大名,原来J姐程序员出身,这个系统的早期版本就是她写的,对代码和数据库比我们都熟。
转眼10多年过去了,我再也没有遇到过像J姐这样的,一般的BA/产品经理是不懂代码和SQL,即使懂一些,也很难对系统底层有这么精深的理解。
Anthropic推出的MCP(Model Context Protocol) ,利用MCP,可以让各种AI助理用自然语言轻松地访问各种数据源,执行各种分析和查询。
说概念没啥意思,看一个例子吧,使用Claude Desktop访问本地的SQLite数据库。
直接用自然语言就行,连接完成以后,它还非常贴心地把数据库中的表都给读了出来。
是不是挺厉害的?能这么说,有了MCP以后,你想要的任何SQL查询都能够最终靠自然语言来进行了。
这个MCP更像大模型一个通用的“外挂”,它是一种更具普遍性的协议,灵活性更好,它能支持各种数据源:数据库、文件、GitHub、Google Drive、Google Maps、Slack.....
MCP Server实际上的意思就是对某一种数据源的封装,把这个数据源的能力给暴露出来,让Client去访问。
当然,对于Server的每个操作,MCP协议都精确地定义了输入和输出,这样Client才能够理解它有哪些能力。
MCP Server 写好以后,需要在Claude中配置一下,告诉Claude,现在有这个数据源可以访问了。
当你向Claude发出查询“产品表的平均价格是多少?” 执行流程是这样的:
(1) Claude利用大模型的能力把自然语言转化成需要执行的“函数”(read-query),交由MCP Server来执行。
SQLite是这样,其他数据源也是如此,官方已经推出了各种各样的MCP Server,可以直接使用:
即使是最复杂最强大的大模型,也是被困在一个信息孤岛之中,和外界是隔离的。对每个数据源,都需要需要做“定制”,才能和大模型做连接。
Anthropic提出的这个MCP协议,实际上的意思就是避免大家重复造轮子,它就像电脑上的USB Type-C接口,给各种外围设备提供了一种标准的方式,让AI大模型可以轻松连接不同的数据源。
当年的JDBC用统一的接口屏蔽了底层数据库的差异,让Java代码可以访问各种数据库,MCP也有点儿像。
这个协议并不是只有Anthropic 的Claude 模型能够正常的使用,任何大模型都能够正常的使用,这有很大的可能性打开一个全新的赛道。
MCP协议能不能做成,还依赖于OpenAI、谷歌、微软、Meta等AI巨头对它的接受度,还有是不是愿意把它标准化,然后推广到整个业界。
MCP很难吗? 并不难,这玩意儿正如它的名字所说Model Context Protocol,只是一个协议,只要能想到就能把它定义出来,然后一开源,有望成为一个重要标准。