前言
MCP一词在几个月前是相当火爆,那个时候我也对MCP的理解只停留在知其概念的层面上。最近恰好有时间,决定对MCP深入学习一下。
MCP是什么?
MCP(Model Context Protocol,模型上下文协议)规范了应用程序和AI模型之间交换上下文信息的方法。这让开发者可以统一的方法来把各种数据源、工具和功能连接到AI模型上。
可能这段描述会有点难以理解,那么我们先从别处聊起,到了后面就会很容易理解这段描述。
为什么需要MCP?
我们先从MCP的架构开始逐步分析为什么需要MCP。
MCP主机和客户端
MCP主机是用来访问MCP服务器的程序,它可以是Claude、Cursor、Cline等等支持MCP的应用程序。该主机可能使用各种类型的LLM并且能够调用MCP服务器中定义的工具。
当我们在此主机上运行多个客户端时,每个客户端将会和一个MCP服务器保持连接。当主机启动时,每个客户端将会连接到一个MCP服务器上。
因此,我们可以拥有一个带有多个客户端的主机,每个客户端与不同的服务器进行交互。
MCP服务器
MCP服务器是运行主机想要调用的工具的服务器,该服务器可以运行在本地,也可以运行在远程服务器上。但是,服务器和主机的语音可能完全不同,就像应用程序的前端和后端一样可以使用不同的语音,主机和服务器之间也可以使用不同的语音。
传输和协议
客户端使用传输协议连接到服务器,该传输协议负责在客户端和服务器之间发送消息。
目前支持两种传输方式,我们可以通过stdio和终端进行通信,也可以通过服务器发送的事件通过HTTP进行通信。
以上就是MCP的架构分析。在如今大模型飞速发展的时代,每个AI公司都在不断发展。然而,要想和各个公司的大模型之间进行通信、赋予功能所实现的方法可能是不一样的。这样就形成了如下画面。
随着MCP的提出,让通信规范起来了,都遵守统一的规则,这样就不会出现混乱的局面,让开发者能够更好的赋予大模型功能。
最后,我们回到正题为什么需要MCP?
在MCP之前,我们使用AI通常会面临些问题,比如说数据不互通也不安全,不能随便连接数据导致私密数据泄露,更要命的是我们使用的AI产品往往是孤立的,不能让各个AI产品一起来处理任务。
在有了MCP后,MCP就像一个我们的管家一样,可以帮我们管理数据权限并自己附带了一些功能,而且也让不同的AI可以互相通信起来协作,这让AI更加好用起来帮助我们解决问题。
Ending
以上内容就是MCP的入门知识了,在接下来我会更新一个MCP实战系列来记录我对MCP实操学习。