一、介绍
下面章节就会进行MCP和大模型的结合。首先会先介绍MCP的一些基本信息。后面章节会将自己开发的MCP 的服务结合到大模型中。
二、MCP介绍
注意此处大多都是从官方网站粘过来的Introduction - Model Context Protocol
MCP 全称 Model Context Protocol 是一种开放协议,可实现 LLM 应用程序与外部数据源和工具之间的无缝集成。无论您是构建 AI 驱动的 IDE、增强聊天界面,还是创建自定义 AI 工作流,MCP 都能提供一种标准化方法,将 LLM 与其所需的上下文连接起来。
MCP 为应用程序提供了一种标准化的方式:
-
- 与语言模型共享上下文信息
- 向人工智能系统展示工具和功能
- 构建可组合的集成和工作流程
1、设计架构
该协议使用JSON-RPC 2.0 (轻量级远程过程调用协议)在以下之间建立通信:
MCP 使用 client-host-server 架构
-
- 主机(Host) 是发起连接的 LLM 应用程序(如 Claude Desktop 或 IDE)
- 客户端(Clinet) 在主机应用程序内部与服务器保持 1:1 连接
- 服务器(Server) 向客户提供上下文、工具和提示
1、主机(Host)
主机充当容器和协调器:
1、创建和管理多个客户端实例
2、控制客户端连接权限和生命周期
3、强制执行安全规则,确保用户对某些行为表示同意后才继续操作
4、处理用户授权决策
5、协调 AI/LLM 集成和采样
6、管理跨客户端的上下文聚合
2、Clients
主机应用程序创建和管理多个客户端,每个客户端具有 1:1 与特定服务器的关系。
每个客户端都由主机创建,并维护一个隔离的服务器连接:
1、为每个服务器建立一个有状态会话
2、在两个系统开始正式通信前,它们之间会完成协议选择和功能信息的交换,以确保后续交互是兼容且高效的。
3、双向路由协议消息
4、管理订阅和通知
5、维护服务器之间的安全边界
3、Servers
服务器提供专门的上下文和功能:
1、利用 MCP 协议提供的基本操作方式,把资源、工具和提示开放出来,供其他系统或模型调用和使用。
2、独立运营,职责集中
3、通过客户端接口请求采样
4、必须遵守安全约束
5、可以是本地进程或远程服务
2、传输层
传输层负责处理客户端和服务器之间的实际通信。MCP 支持多种传输机制:
Stdio 传输
使用标准输入/输出进行通信
非常适合本地流程
带有 SSE 传输的 HTTP
使用服务器发送事件来发送服务器到客户端的消息
客户端到服务器消息的 HTTP POST
Streamable HTTP(也是SSE 的一种)
在 Streamable HTTP 传输中,服务器作为一个独立的进程运行,该进程 可以处理多个客户端连接。此传输使用 HTTP POST 和 GET 请求。 Server 可以选择使用 要流式传输的服务器发送事件 (SSE) 多个服务器消息。这允许基本的 MCP 服务器以及功能更丰富的 支持流式处理和服务器到客户端通知和请求的服务器。
这边解释一下为什么已经有了第二种还会再出现第三种SSE 的模式。
这边是从MCP 协议重大升级,Spring AI Alibaba 联合 Higress 发布业界首个 Stramable HTTP 实现方案_博客-阿里云Spring AI Alibaba官网官网 贴过来的。
大概就是说 HTTP SSE 有一下几个问题:
不支持断线重连/恢复
当 SSE 连接断开时,所有会话状态丢失,客户端必须重新建立连接并初始化整个会话。例如,正在执行的大型文档分析任务会因 WiFi 不稳定而完全中断,迫使用户重新开始整个过程。
服务器需维护长连接
服务器必须为每个客户端维护一个长时间的 SSE 连接,大量并发用户会导致资源消耗剧增。当服务器需要重启或扩容时,所有连接都会中断,影响用户体验和系统可靠性。
服务器消息只能通过 SSE 传递
即使是简单的请求-响应交互,服务器也必须通过 SSE 通道返回信息,造成不必要的复杂性和开销。对于某些环境(如云函数)不适合长时间保持 SSE 连接。
基础设施兼容性限制
许多现有的 Web 基础设施如 CDN、负载均衡器、API 网关等可能不能正确处理长时间的 SSE 连接,企业防火墙可能会强制关闭超时连接,导致服务不可靠。
而Streamable HTTP 正好对这些有一些调整。
-
- 统一 Endoint:移除专门的 /sse 端点,所有通信通过单一端点(当前官方 sdk 实现为 /mcp)进行
- 按需流式传输:服务器可灵活选择是返回普通 HTTP 响应还是升级为 SSE 流
- 会话标识:引入会话 ID 机制,支持状态管理和恢复
- 灵活初始化:客户端可通过空 GET 请求主动初始化 SSE 流
MCP 介绍就到此为止,后面开始开发一个MCP 的一个DEMO 并且和大模型结合起来。大家有什么问题可以在评论区留言或者加群加微信一起探讨。
大家可以加我微信,或者大家对那块感兴趣。博主都可以去探索一下发布到项目中。
如果群加不上可以加我微信。
三、附录
[1] MCP 协议官网
Introduction - Model Context Protocol
[2] MCP 协议重大升级,Spring AI Alibaba 联合 Higress 发布业界首个 Stramable HTTP 实现方案
MCP 协议重大升级,Spring AI Alibaba 联合 Higress 发布业界首个 Stramable HTTP 实现方案_博客-阿里云Spring AI Alibaba官网官网