1. MCP协议
本文主要内容来自官方文档,按照更适合国人的阅读习惯进行重整,介绍一下MCP协议的具体的内容
1. 整体介绍
1.1 MCP是什么
MCP (Model Context Protocol,模型上下文协议),它提供了一个通用的开放标准,用于将 AI 系统与数据源连接起来,用单一协议取代碎片化的集成。结果是一种更简单、更可靠的方法,使 AI 系统能够访问所需的数据。这是一种将 AI 助手连接到数据所在的系统(包括内容存储库、业务工具和开发环境)的新标准。其目的是帮助前沿模型产生更好、更相关的响应。
简单来讲,mcp就是定义了标准,对于所有希望给大模型提供能力的小伙伴来说,只要按照这个标准完成能力封装,那么大模型就可以直接加载这些能力从而实现某些特定的功能。
举一个例子,usb大家应该都不陌生,如果你只买一个台式机主机,这个时候你会发现我除了按它的开关按钮之外,好像什么也干不了。然后我买了键盘、鼠标、显示器、摄像头等外设,然后通过usb接口插上之后就可以操作电脑了,电脑是怎么识别这些外接设备(键盘、鼠标、摄像头等)的呢? 这就是usb协议的作用了,外接设备和电脑,都遵循usb协议,然后大家就可以在同一个频道进行交流了;同样的MCP就是为了干这件事情,让大模型和给大模型提供增强能力的服务能同频进行交流

1.2 MCP总体架构
MCP遵循客户端-服务端(CS)的架构,一个主机可以连接多个MCP服务端

从上面的描述和整体架构图,可以看到在MCP的架构中,有三个重要的角色
- MCP Hosts(MCP主机): 通过mcp协议获取数据的程序(比如 Claude Desktop, IDE 或者 ai工具)
- MCP Clients(MCP客户端): mcp协议客户端,作为调用者,通常与mcp服务端是成对出现,用于连接mcp server,实现双方通信
- MCP Servers(MCP服务端): mcp协议服务端,作为提供者,实现MCP协议提供特定的功能
除了上面三个角色之外,在架构图中,还有两个
- Local Data Sources: MCPServer所在的计算机上本地的资源信息,如文件、数据库、应用服务等,即MCP通过操作(读取、访问、写入等)这些本地资源来提供特定能力
- Remote Service: MCPServer通过调用远程的服务来提供能力
1.3 MCP工作原理
mcp只是一个协议,和http协议一样,本身不直接提供能力或者服务,我们能实际感知到的服务表现只是协议上层的应用封装
比如http协议,常见的工作流程是我们打开浏览器,点开网页,通过http协议访问到对应的后台服务器,然后对方将网页信息传输到我们的浏览器上展示为可视化的网页内容,从而实现信息的曝光
那么mcp协议是怎么工作的呢?
- 用户通过客户端发起提问
- 客户端将问题传递给 LLM
- LLM 分析并选择合适的工具
- 通过 MCP 协议向服务端发送工具执行指令
- 工具执行后结果返回给 LLM
- LLM 生成最终回复
- 回复通过客户端展示给用户
