大模型MCP协议传输机制全解析:stdio与HTTP三种实现方式详解

MCP协议定义了两类三种传输方式:stdio和HTTP(SSE和Streamable HTTP)。stdio传输方式将服务器作为子进程启动,客户端独占使用,适合个人使用场景可访问本地环境但部署要求高。HTTP传输方式中,SSE版本需要两个终端,而Streamable HTTP版本简化实现,支持POST/GET请求和SSE流式传输。HTTP方式适合多客户端共享和云端部署。选择传输方式需根据具体应用场景决定。

MCP 使用 JSON-RPC 协议来编码消息。为了在客户端和服务器之间传递消息,需要相应的传输机制。根据版本的不同,MCP 协议定义了两类三种传输方式。两类方式是 stdio 和 HTTP。三种分别是 stdio、HTTP SSE 和 Streamable HTTP。HTTP SSE 定义在 MCP 协议 2024-11-05 版本中。Streamable HTTP 则是 2025-03-26 版本中定义的,用来替换 HTTP SSE。考虑到不同 SDK 对于协议的实现程度,仍然有大量 MCP 服务器使用 HTTP SSE 传输方式。

stdio

stdio 表示标准输入输出流。在这种方式下,MCP 客户端把 MCP 服务器以子进程的方式启动。运行的 MCP 服务器由客户端独占使用。客户端控制服务器的生命周期。服务器从它的标准输入流读取输入消息,并把输出消息写入到它的标准输出流。

以下是 stdio 传输方式中,客户端和服务器的交互流程。

stdio 的传输方式,要求客户端可以直接在本地启动服务器。这对服务器的分发和部署提出了更高的要求,因为服务器自身需要运行在用户的机器上。如果服务器不是以原生可执行文件的方式分发,那就要求本地机器上必须具备特定编程语言的运行时。举例来说,Java 开发的使用 stdio MCP 服务器,如果以 JAR 文件的形式分发,客户端需要安装 Java 运行时才能运行该 JAR 文件。该限制对使用 JavaScript 和 Python 开发的 MCP 服务器也是适用的。使用 Docker 运行 MCP 服务器是另外一个选项,但是同样也要求客户端安装 Docker。

stdio 传输方式最大的优势是可以访问用户的本地环境,尤其是用户的私有文件,适合于个人使用的场景。用户对 MCP 服务器有更大的控制权。对性能和安全的要求并不高。

在 HTTP 传输方式中,服务器以一个独立进程的方式运行,可以同时处理多个客户端连接。HTTP 传输方式有 SSE 和 Streamable HTTP 两种。

HTTP SSE

在 SSE 方式中,服务器提供两个终端:一个是 SSE 终端,用来建立连接和接收服务器端的消息。一个是 HTTP POST 终端,客户端通过此终端发送请求给服务器。

客户端连接到服务器的 SSE 终端,服务器发送 endpoint 类型的事件,数据是 HTTP POST 终端的 URI 地址。客户端的消息,都发送到该 POST 终端。服务器的消息以 message 类型的事件,发送给客户端。

以下是 HTTP SSE 传输方式中,客户端和服务器的交互流程。

Streamable HTTP

在 Streamable HTTP 传输方式中,SSE 不再是必须的,而是一个可选的功能。在接收到客户端的请求之后,服务器可以直接发送单个消息作为响应。这降低了 HTTP 传输方式的实现难度,客户端使用起来也更方便。

在 Streamable HTTP 传输方式中,使用HTTP POST 和 GET 请求,并可以使用 SSE 实现消息的流式传输。

MCP 服务器需要提供一个同时支持 POST 和 GET 请求的 HTTP 接口。

POST 请求用来从客户端发送消息给服务器。POST 请求的内容可以是单个 JSON-RPC 的请求、通知或响应,或多个请求或通知组成的数组,或多个响应组成的数组。如果 POST 请求的内容中包含了任意数量的JSON-RPC 请求,服务器可以返回一个SSE流,或是 JSON 格式的响应。如果使用 SSE 流,流中应该包含每个 JSON-RPC 请求所对应的响应。当全部响应被发送完成之后,该 SSE 流被关闭。如果使用 JSON 格式,只能发送单个 JSON-RPC 响应。

GET 请求用来接收从服务器发送的消息。通过这种方式,服务器可以使用 SSE 主动给客户端发送消息,而不用要求客户端首先通过 POST 请求来发送消息。如果服务器支持这种方式,GET 请求的响应必须是一个 SSE 流。如果服务器不支持这种方式,服务器直接返回 HTTP 405 Method Not Allowed 错误代码。

以下是 Streamable HTTP 中,客户端与服务器的交互流程。

与 stdio 相比,HTTP 传输方式的好处是,一个服务器可以被多个客户端共享。HTTP 传输方式增加了服务器的部署难度,但是对客户端来说简化了很多,只需要一个连接服务器的 URL 即可,服务器可以部署在云端。HTTP 传输方式有自己的适用场景。举例来说,已有的 SaaS 服务提供者可以开放 MCP 服务器,允许用户把自己的数据提供给大模型。当然了,这会涉及到用户认证,安全和隐私等方方面面的问题。

MCP 服务器,允许用户把自己的数据提供给大模型。当然了,这会涉及到用户认证,安全和隐私等方方面面的问题。

总结一下,MCP 的 stdio 和 HTTP 传输方式有各自的适用场景,可以根据需要选择。面向个人的工具类 MCP 服务器,优先选择 stdio。对外提供公开服务的 MCP 服务器,优先选择 HTTP。


如何系统学习掌握AI大模型?

AI大模型作为人工智能领域的重要技术突破,正成为推动各行各业创新和转型的关键力量。抓住AI大模型的风口,掌握AI大模型的知识和技能将变得越来越重要。

学习AI大模型是一个系统的过程,需要从基础开始,逐步深入到更高级的技术。

这里给大家精心整理了一份全面的AI大模型学习资源,包括:AI大模型全套学习路线图(从入门到实战)、精品AI大模型学习书籍手册、视频教程、实战学习、面试题等,资料免费分享

1. 成长路线图&学习规划

要学习一门新的技术,作为新手一定要先学习成长路线图方向不对,努力白费

这里,我们为新手和想要进一步提升的专业人士准备了一份详细的学习成长路线图和规划。可以说是最科学最系统的学习成长路线。

在这里插入图片描述

2. 大模型经典PDF书籍

书籍和学习文档资料是学习大模型过程中必不可少的,我们精选了一系列深入探讨大模型技术的书籍和学习文档,它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础(书籍含电子版PDF)

在这里插入图片描述

3. 大模型视频教程

对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的大模型视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识

在这里插入图片描述

4. 大模型行业报告

行业分析主要包括对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。

在这里插入图片描述

5. 大模型项目实战

学以致用 ,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。

在这里插入图片描述

6. 大模型面试题

面试不仅是技术的较量,更需要充分的准备。

在你已经掌握了大模型技术之后,就需要开始准备面试,我们将提供精心整理的大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。

在这里插入图片描述

全套的AI大模型学习资源已经整理打包,有需要的小伙伴可以微信扫描下方优快云官方认证二维码,免费领取【保证100%免费

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值