Model Context Protocol Advanced Topics
← 所有课程
课程 06Model Context Protocol Advanced Topics

The STDIO transport

摘要音频

本节课没有语音摘要。

学习笔记

核心概念:消息传输与传输机制 (Core Concepts: Messaging and Transport Mechanisms)

  • 消息 (Messages): 客户端 (Client) 和服务器 (Server) 之间通过交换 JSON 对象进行通信,这些 JSON 对象被称为消息。
  • 传输层 (Transport): 在 MCP 规范中,用于实际在客户端和服务器之间移动 JSON 的机制被称为“传输层”。
  • 传输方式多样性: JSON 可以通过多种方式传输,例如 HTTP 请求、WebSockets,或手动发送(如邮寄)。

标准 I/O 传输层 (Standard I/O Transport)

  • 工作原理:
  • 客户端启动服务器作为一个独立的进程。
  • 客户端通过写入服务器的标准输入 (Standard In) 来发送消息。
  • 客户端通过监视服务器的标准输出 (Standard Out) 来接收消息。
  • 通信特性:
  • 双向发起: 客户端或服务器在任何时间点都可以发起通信。
  • 客户端 → 服务器:写入标准输入 (Standard In)。
  • 服务器 → 客户端:写入标准输出 (Standard Out)。
  • 局限性: 只能在客户端和服务器运行在同一物理网络上时使用。

MCP 通信流程关键点 (Key Points in MCP Communication Flow)

  • 初始化流程 (Initialization):
  • 初始化请求 (Initialized Request): 客户端连接服务器时,必须发送的第一个消息。
  • 初始化结果 (Initialized Result): 服务器对初始化请求的回应。
  • 初始化通知 (Initialized Notification): 客户端发送给服务器的消息,通知连接已建立。
  • 注意:通知(Notification)不需要服务器立即返回响应。
  • 后续操作: 完成上述三步后,连接即初始化,可以进行工具调用请求 (Call Tool Requests) 或提示列表请求 (Prompt Listing Requests) 等操作。

传输层发起请求的四种场景 (Four Scenarios of Request Initiation)

标准 I/O 传输层的一个优势是任何一方都可以发起请求。

  • 客户端 → 服务器 (Client to Server): 客户端发送请求(如调用工具)。
  • 实现方式:写入标准输入 (Standard In)。
  • 服务器响应:写入标准输出 (Standard Out)。
  • 服务器 → 客户端 (Server to Client): 服务器需要向客户端发送初始请求(如进行采样)。
  • 实现方式:服务器写入标准输出 (Standard Out)。
  • 客户端响应:写入标准输入 (Standard In)。
  • 关键优势总结: 标准 I/O 传输层允许客户端或服务器在任何时间点发起请求并期待响应。
  • 对比 (Contrast): 某些流式 HTTP 传输层 (Streamable HTTP Transport) 在某些场景下可能不允许服务器向客户端发送初始请求。

Takeaways

  • 通信的基本单位是 JSON 对象(消息),传输层负责在客户端和服务器之间移动这些消息。
  • 标准 I/O 传输层的工作机制是:客户端通过写入服务器的标准输入 (Standard In) 发送消息,服务器通过写入客户端的标准输出 (Standard Out) 返回消息。
  • 标准 I/O 的核心优势在于支持双向发起,客户端或服务器在任何时间点均可发起请求。
  • 连接建立必须遵循特定的初始化流程:发送初始化请求 → 接收初始化结果 → 发送初始化通知。
抽认卡 9 张卡片
问题
点击显示 · ←/→
答案
点击翻回
导出到 Anki (.tsv) ↓
知识检测 0 题

No quiz for this lesson yet.