MCP的通信两端,一端是Client(如Claude Desktop,一个应用),另一端是Server(工具提供方)。大模型只是Client应用中的一个“推理引擎”组件。** MCP协议的订立,不直接面向大模型,而是面向构建了这些模型的应用或Agent框架。
让我们来详细拆解:
关键澄清:MCP是应用/Agent框架的“标准外挂接口”
1. MCP通信的双方是谁?
- MCP Client(客户端):这是一个软件应用或Agent运行框架,它内部整合了一个大语言模型作为其核心“大脑”。例如:
- Claude Desktop(集成Claude模型)
- Cursor IDE(可能集成GPT/Claude)
- 你自行构建的一个Agent系统(如用LangChain,集成了一个开源模型)
- MCP Server(服务器):这是一个独立的进程,专门暴露特定的功能或数据。例如:
- 一个提供文件系统读写操作的服务器
- 一个连接公司数据库的服务器
- 一个提供网页搜索功能的服务器
2. 大模型在这个流程中处于什么位置?
- 大模型是 Client应用内部的“决策器”和“生成器”。
- 流程简化如下:
- Client(应用) 通过MCP协议,从多个Server那里动态拉取可用的“工具列表”和“资源描述”。
- 当用户提问时,Client应用将用户问题、从Server获取到的工具/资源描述以及其他上下文,一起组装成提示词(Prompt),发送给其内部的大模型。
- 大模型分析提示词,它“看到”了可用的工具描述,决定是直接回答,还是“建议”使用某个工具。
- Client应用解析大模型的输出。如果模型“建议”使用工具,Client应用就通过MCP协议,向对应的Server发送执行请求。
- Server执行(如运行一个脚本、查询数据库)并将结果返回给Client应用。
- Client应用将工具执行结果再次组装进提示词,送回给大模型生成最终回答。
3. MCP vs. 一般工具调用的区别,本质是?
区别在于 “应用/Agent框架集成工具的方式” 不同:
-
MCP模式(标准化、解耦的外挂模式):
- 框架/应用(Client)通过一个统一协议(MCP)与所有工具(Server)通信。
- 工具开发者只需写一次MCP Server,就能被所有支持MCP的应用(Claude Desktop、Cursor等)使用。
- 模型无关:换掉Client应用内部的大模型(如从Claude换成GPT),只要Client应用逻辑不变,所有已连接的MCP工具都能继续工作。
-
一般工具调用(定制化、紧耦合的嵌入模式):
- 每个框架(如LangChain、LlamaIndex、AutoGPT)都有自己定义和封装工具的一套方式。
- 工具代码通常直接写在应用代码里,或通过特定SDK导入。
- 模型适配:虽然像OpenAI Function Calling这类标准也被广泛采用,但整个工具的执行流程、错误处理、提示词模板都深度绑定在特定的框架或应用实现中。
结论
MCP本质上是为应用和Agent框架(Client)与工具生态(Server)之间建立的一套标准化对接协议,它并不直接与大模型对话。大模型只接受agent提供的工具列表,无法感知MCP。大模型是Client应用内部用来处理信息和决策的“大脑”,而MCP是Client应用用来扩展自身“手和脚”(工具能力)的标准方式。