news 2026/5/26 22:58:46

[智能体-50]:MCP 完整网络通信协议栈(从上至下五层・详解 + 实战示例)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
[智能体-50]:MCP 完整网络通信协议栈(从上至下五层・详解 + 实战示例)

整体层级顺序

1. 应用语义层 → 2.RPC 消息层 → 3. 数据序列化层→ 4. 传输层 → 5. 底层网络层


一、五层协议栈逐层级详解

第一层:应用语义层(MCP 业务顶层)

作用:定义大模型 / Agent 能直接识别的业务能力与调用规则,不含通信细节核心三大语义对象

  1. Tools 工具:可执行动作(增删改查、调用功能)
  2. Resources 资源:可读取数据(文件、数据库、配置)
  3. Prompts 提示模板:固定任务话术模板

规则

  • 所有能力结构化定义:名称、描述、入参结构、返回结构
  • 大模型无需二次翻译,原生理解用途与参数
  • 是 AI 调用外部能力的唯一语义标准

第二层:RPC 消息层(交互规则层)

标准协议JSON-RPC 2.0

作用:统一客户端与服务端的对话格式、交互逻辑、会话规则

四种固定消息类型:

  1. Request 请求Client → Server 发起调用
  2. Response 响应:Server → Client 返回结果
  3. Error 错误:统一错误码 + 错误信息
  4. Notification 通知:单向无应答消息(日志、状态)

附加能力:版本协商、身份协商、权限协商、长会话维持

第三层:数据序列化层

统一格式纯 JSON作用:把语义指令、RPC 消息转成通用文本格式

特点:跨语言、跨平台、大模型最易解析、轻量无冗余

第四层:传输承载层(两种主流模式)

模式 1:本地传输 STDIO(本机进程通信)

  • 场景:本地 AI 客户端 + 本地 MCP 服务
  • 通道:标准输入、标准输出
  • 无网络、最快、无端口、内网隔离

模式 2:远程网络传输 Streamable HTTP

  • 场景:跨机器、云端、局域网远程调用
  • 基于标准 HTTP 1.1/2
  • 支持流式双向通信、长连接、断点续传
  • 可搭配鉴权、路由、负载均衡

第五层:底层基础网络层

互联网通用底层,MCP 不自定义

  • 网络层:IP 寻址
  • 传输层:TCP 可靠连接
  • 安全层:TLS/SSL 加密
  • 物理层:以太网 / WiFi

二、完整调用流程(走完整协议栈)

  1. AI Agent 生成调用意图(应用语义层)
  2. 封装成 JSON-RPC 请求报文(消息层)
  3. 序列化为标准 JSON 字符串(数据层)
  4. 通过 HTTP/STDIO 发出(传输层)
  5. 经由 TCP/IP 网络抵达 MCP Server(底层网络层)
  6. 服务端逐层解包,执行业务逻辑
  7. 原路逐层返回结构化结果给大模型

三、实战报文示例(全网通用标准)

1. 应用语义定义(Tool 工具声明)

json

{ "name": "query_sql", "description": "查询数据库数据", "inputSchema": { "type": "object", "properties": { "sql": {"type":"string","description":"执行SQL语句"} }, "required": ["sql"] } }

2. JSON-RPC 请求报文(消息层标准格式)

json

{ "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "query_sql", "arguments": { "sql": "select * from user limit 10" } } }

3. JSON-RPC 成功响应

json

{ "jsonrpc": "2.0", "id": 1, "result": { "content": [ {"type":"text","text":"查询成功,共10条数据"} ] } }

4. 错误响应格式

json

{ "jsonrpc":"2.0", "id":1, "error":{ "code":-32000, "message":"数据库连接失败" } }

四、结合你核心理论闭环

  1. 大模型 = 自然语言 CPU
  2. AI Agent = 指令组织者
  3. MCP 五层协议栈 = AI 专属统一通信总线
  4. MCP Server = 标准化结构化 Web 服务接口

最终逻辑Agent 组织自然语言指令 → 封装进 MCP 五层协议栈 → 网络传输调用 MCP 服务 → 服务执行真实业务 → 结构化结果回传给语言 CPU 完成推理。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/26 22:53:10

CSS Transforms 变换详解

CSS Transforms 变换详解 一、Transforms 基础概念 CSS Transforms 是 CSS3 引入的强大特性,允许我们对元素进行旋转、缩放、倾斜、平移等几何变换。Transforms 不会影响文档流,只会改变元素的视觉呈现。 1.1 Transform 属性 .element {transform: none …

作者头像 李华
网站建设 2026/5/26 22:53:07

从“碎片化”到“资产化”:Vue3 + UniApp 组件库的进化论

上个月我重构一个两年前的 UniApp 项目,发现同一个日期选择器,小程序端和 H5 端各有一份代码,逻辑差 20 行,样式差 40 行。产品经理说"看起来一样就行",但我知道下次改需求时,我得改两遍&#xf…

作者头像 李华
网站建设 2026/5/26 22:52:02

AWS CDK Python 实战:从基础设施代码化到生产级 CI/CD

1. 这不是写模板,是写代码:为什么我坚持用 AWS CDK 从第一天就写 Python你有没有过这种体验:凌晨两点,盯着一份 800 行的 CloudFormation YAML 文件,逐行比对两个环境的差异,只为确认是不是少了一个连字符&…

作者头像 李华
网站建设 2026/5/26 22:48:12

56. 合并区间

这题的思路就是先排序后合并class Solution {public int[][] merge(int[][] intervals) {//先根据数组的第一个元素进行排序Arrays.sort(intervals, (a, b) -> a[0] - b[0]);List<int[]> ans new ArrayList<>();//先把第一个数组放进去ans.add(intervals[0]);/…

作者头像 李华
网站建设 2026/5/26 22:44:46

AMD Ryzen系统硬件调试工具SMUDebugTool技术深度解析与实践指南

AMD Ryzen系统硬件调试工具SMUDebugTool技术深度解析与实践指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://gitc…

作者头像 李华
网站建设 2026/5/26 22:43:43

OSPF+MGRE综合实验报告

一、实验拓扑二、实验要求1、R4为ISP&#xff0c;其上只配置IP地址&#xff1b;R4与其他所直连设备间均使用公有IP&#xff1b; 2、R3-R5、R6、R7为MGRE环境&#xff0c;R3为中心站点&#xff1b; 3、整个OSPF环境IP基于172.16.0.0/16划分&#xff1b;除了R12有两个环回&#x…

作者头像 李华