资源 Resources
资源被设计成应用控制的,这意味着客户端应用可以决定如何以及何时使用它们。不同的 MCP 客户端可能以不同的方式处理资源。例如: Claude 桌面版(Claude Desktop)目前要求用户显式地选择资源后才能使用 其他客户端可能会基于启发式方法自动选择资源 有些实现甚至可能允许 AI 模型本身决定使用哪些资源 服务器作者在实现资源支持时,应该准备好处理上述任何一种交互模式。为了自动地向模型暴露数据,服务器作者应该使用模型控制的基元,例如工具(Tools)。
概述
资源 URI(Resource URIs)
[协议]://[主机]/[路径]
[protocol]://[host]/[path]
file:///home/user/documents/report.pdf
postgres://database/customers/schema
screen://localhost/display1
资源类型
文本资源
二进制资源
资源发现
直接资源
resources/list
端点暴露一个具体的资源列表。 每个资源包括:
资源模板
读取资源
resources/read
请求。
resources/read
请求的响应中返回多个资源。 例如,当读取目录时,可以使用此方法返回目录中的文件列表。资源更新
列表更改
notifications/resources/list_changed
通知客户端。内容更改
1.
resources/subscribe
2.
notifications/resources/updated
3.
resources/read
获取最新内容4.
resources/unsubscribe
取消订阅示例实现
最佳实践
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.