MCP通信的双方是谁?

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应用内部的“决策器”和“生成器”
  • 流程简化如下:
    1. Client(应用) 通过MCP协议,从多个Server那里动态拉取可用的“工具列表”和“资源描述”。
    2. 当用户提问时,Client应用用户问题从Server获取到的工具/资源描述以及其他上下文,一起组装成提示词(Prompt),发送给其内部的大模型
    3. 大模型分析提示词,它“看到”了可用的工具描述,决定是直接回答,还是“建议”使用某个工具。
    4. Client应用解析大模型的输出。如果模型“建议”使用工具,Client应用就通过MCP协议,向对应的Server发送执行请求。
    5. Server执行(如运行一个脚本、查询数据库)并将结果返回给Client应用
    6. 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应用用来扩展自身“手和脚”(工具能力)的标准方式。

posted @ 2026-01-26 20:47  悠哉大斌  阅读(2)  评论(0)    收藏  举报