主要观点:整个 AI 生态系统发展迅速,基于 AI 的应用需与环境交互,需整合到现有系统中,Model Context Protocol(MCP)应运而生。MCP 由 Anthropic 于 2024 年 11 月底推出,包括规范、SDK 及服务器实现库,核心定义了主机、客户端和服务器三个元素及四个指导原则,基于 JSON-RPC 2.0 定义协议,有初始化、操作、关闭三个阶段及 stdio 和 HTTP with SSE 两种传输机制,还定义了 Ping、Cancellation、Progress 三个函数,支持参数化提示、工具、资源等功能,Java 有官方 MCP SDK 且客户端和服务器组件都有同步和异步版本。
关键信息:
- MCP 推出时间及推出方:2024 年 11 月底由 Anthropic 推出。
- 核心元素及原则:主机可扩展功能,创建管理客户端,客户端与服务器通信,服务器提供功能,基于四个原则。
- 协议相关:基于 JSON-RPC 2.0,定义请求和响应对象,有初始化等三个阶段及两种传输机制。
- 支持功能:服务器提供参数化提示、工具、资源等,客户端提供根目录和采样等功能。
- Java SDK:与 Spring AI 团队合作推出,客户端和服务器组件都有同步和异步版本,支持 HTTP 和 SSE 传输。
重要细节: - 初始化阶段:客户端调用
initialize
函数建立连接并通信协议版本等信息,服务器响应支持的功能,若版本不匹配则客户端终止连接,之后客户端发送通知完成该阶段。 - 操作阶段:客户端和服务器基于协商的功能进行通信。
- 关闭阶段:一方(通常是客户端)终止连接,具体过程依赖传输机制。
- 传输机制:stdio 是客户端启动服务器作为子进程通过标准输入发送请求,服务器通过标准输出响应;HTTP with SSE 是客户端打开 Server-Sent Event 连接获取端点,通过 HTTP POST 发送请求,服务器通过 SSE 连接响应。
- 功能实现细节:如获取提示通过
prompts/list
和prompts/get
请求,工具通过tools/list
和tools/call
请求等,客户端提供根目录通过roots/list
请求,采样通过sampling/createMessage
请求等,且都需告知或询问用户以确保安全。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。