跳到主要内容

三种传输模式全面解读

上一篇讲的JSON-RPC解决了"说什么话"的问题——统一的数据格式。但光有话术还不够,还需要解决"怎么把话传过去"的问题。

这就像人类通讯方式的演进:

  • 最早是面对面交流:两个人坐一起,说话直接听到
  • 后来有了电话:隔着距离也能通话,但一次只能和一个人聊
  • 再后来有了即时通讯软件:不仅能通话,还能发消息、发文件、建群聊

MCP的三种传输模式,正好对应这三个阶段的通讯方式。

Stdio模式:面对面的高效协作

工作原理

Stdio是Standard Input/Output的缩写,就是标准输入输出。这是操作系统最基础的进程间通信方式。

还记得你在命令行里运行程序的场景吗?

$ echo "Hello World"
Hello World

你输入的命令是"标准输入"(stdin),程序打印出来的结果是"标准输出"(stdout)。

MCP的Stdio模式就是利用这个原理:

  1. Client启动一个Server进程(比如运行一个jar包)
  2. Client往Server的stdin写入JSON-RPC请求
  3. Server从stdin读取请求,处理后把JSON-RPC响应写入stdout
  4. Client从Server的stdout读取响应

整个过程不经过网络,数据直接在两个进程之间的管道里流转。

用同一办公室协作来理解

想象两个同事坐在同一个办公室里工作:

传话筒场景:小李需要小王帮忙查个数据

Stdio 模式的本机进程通信
Stdio 模式的本机进程通信

特点是:

  • 距离近:就在同一个房间,传递便签很快
  • 一对一:小李只能跟坐旁边的小王协作,不能跟其他办公室的人
  • 生命周期绑定:小王下班了,小李就没人可以请教了
Stdio 模式的核心特征

Stdio 模式数据通过进程管道直接传输,不经过网络。一个 Server 进程只能服务一个 Client,且 Server 的生命周期与 Client 进程绑定。这使它成为本地工具(如 Claude Desktop、Cursor 插件)的首选方案。

配置方式

在支持MCP的客户端(比如Cursor)里配置Stdio类型的Server:

{
"mcpServers": {
"office-tools": {
"command": "java",
"args": ["-jar", "/path/to/mcp-server.jar"]
}
}
}

Client启动时会自动运行这个命令,启动Server进程。

优势与局限

维度说明
延迟极低,不经过网络
安全性天然安全,数据不出本机
配置复杂度简单,不需要网络配置
部署方式必须和Client在同一台机器
多Client支持不支持,一个Server进程只能服务一个Client
适用场景本地开发、个人工具、Claude Desktop/Cursor插件

付费内容提示

该文档的全部内容仅对「JavaUp项目实战&技术讲解」知识星球用户开放

加入星球后,你可以获得:

  • 超级八股文:100万+字的全栈技术知识库,涵盖技术核心、数据库、中间件、分布式等深度剖析的讲解
  • 讲解文档:超级AI智能体、黑马点评Plus、大麦、大麦pro、大麦AI、流量切换、数据中台的从0到1的详细文档
  • 讲解视频:超级AI智能体、黑马点评Plus、大麦、大麦pro、大麦AI、流量切换、数据中台的核心业务详细讲解
  • 1 对 1 解答:可以对我进行1对1的问题提问,而不仅仅只限于项目
  • 针对性服务:有没理解的地方,文档或者视频还没有讲到可以提出,本人会补充
  • 面试与简历指导:提供面试回答技巧,项目怎样写才能在简历中具有独特的亮点
  • 中间件环境:对于项目中需要使用的中间件,可直接替换成我提供的云环境
  • 面试后复盘:小伙伴去面试后,如果哪里被面试官问住了,可以再找我解答
  • 远程的解决:如果在启动项目遇到问题,本人可以帮你远程解决
进入星球后,即可享受上述所有服务,保证不会再有其他隐藏费用。
知识星球二维码

1. 打开微信 -> 扫描左侧二维码 -> 加入「JavaUp项目实战&技术讲解」知识星球

2. 查看星球使用指导,获取完整项目讲解资料索引

👉 点击解锁全部付费内容
🎁优惠