协议版本: 2024-11-05
用户交互模型
Resources in MCP are designed to be 应用驱动, with host applications determining how to incorporate context based on their needs. 例如,应用程序可以:- 通过UI元素以树状或列表视图展示资源,以便进行明确选择
- 允许用户搜索和筛选可用资源
- 基于启发式方法或AI模型的选择,实现自动上下文包含

能力
Servers that support resources 必须 declare theresources capability:
subscribe: 客户端是否可以订阅以接收对个别资源的变更通知。listChanged: 当可用资源列表发生变化时,服务器是否会发出通知。
subscribe and listChanged are optional—servers can support neither,
either, or both:
协议消息
列出资源
要发现可用资源,客户端发送一个resources/list 请求。这个操作
支持
pagination。
请求:
读取资源
To retrieve resource contents, clients send aresources/read request:
请求:
资源模板
资源模板允许服务器使用 URI模板公开参数化资源。参数可以通过 the completion API自动完成。 请求:列表变更通知
When the list of available resources changes, servers that declared thelistChanged
capability 应当 send a notification:
订阅管理
协议支持可选地订阅资源变更。客户端可以订阅特定资源,并在它们发生变化时接收通知: 订阅请求:消息流
数据类型
资源
资源定义包括:uri: 资源的唯一标识符name: 用户友好的名称description: 可选说明mimeType: 可选的 MIME 类型
资源内容
资源可以包含文本或二进制数据:文本内容
二进制内容
通用URI方案
该协议定义了若干标准URI方案。此列表并非完整无遗——实现时始终可以自由使用额外的自定义URI方案。https://
用于表示网络上可用的资源. Servers 应当 仅在客户端能够自行从网络获取并加载资源时使用此方案——即不需要通过MCP服务器读取资源。 For other use cases, servers 应当 prefer to use another URI scheme, or define a custom one, even if the server will itself be downloading resource contents over the internet.文件://
用于标识行为类似文件系统的资源。但这些资源不需要映射到实际物理文件系统。 MCP 服务器 能够通过 XDG MIME 类型 标识 file:// 资源, 例如inode/directory,用来表示那些没有标准 MIME 类型的非常规文件(例如目录)。
git://
Git版本控制集成。错误处理
Servers 应当 return standard JSON-RPC errors for common failure cases:- 资源未找到:
-32002 - 内部错误:
-32603
安全注意事项
- 服务器必须验证所有资源URI
- 对于敏感资源应该实施访问控制
- 二进制数据必须进行正确编码
- 在执行操作前,必须检查资源权限