08|资源发现:为大模型提供服务器端的数据内容
黄佳

你好,我是黄佳。
从这节课开始,我们将通过理论讲解和代码示例相配合的方式,来深入探讨一系列 MCP 协议中的核心概念(MCP 官方文档中把这些概念称为原语——Primitives,其实就是核心概念的意思)。
这节课将详细介绍什么是 MCP 中的资源(Resources),包括其定义、结构、类型、实现方式及最佳实践,帮你全面了解资源在增强 AI 驱动应用中的作用。
什么是 MCP 中的资源
资源是 Model Context Protocol(MCP)中的核心原语之一,用于将服务器端的数据内容通过可以被客户端读取的方式暴露给 LLM,用作对话或生成时的上下文。

这里的资源可以是任意类型的文本或二进制数据,包括文件内容、数据库记录、API 响应、日志、截图、音频、视频等。

每个资源都由唯一的 URI 确定,遵循通用的 [协议]://[主机]/[路径] 形式,例如:
服务器可根据需要自定义 URI 方案,并在文档中说明各字段含义。
资源是应用控制的,意味着客户端应用程序可以决定如何以及何时使用这些资源。例如,应用可以树状或列表视图通过 UI 元素展示可选资源,或允许用户搜索和过滤可用资源。
公开
同步至部落
取消
完成
0/2000
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结

1. MCP资源的定义和发现是指服务器如何声明能提供的各种数据内容,以及客户端如何探测并访问这些资源。 2. 服务器通过装饰器或注册函数来实现资源定义接口,客户端可以通过直接列出或URI模板的方式来发现可用资源。 3. 客户端可以通过resources/list请求来列出可用资源,服务器返回一组具体的资源对象,也可以通过resources/read请求指定URI来读取资源内容。 4. MCP支持实时通知机制,客户端可以订阅某个URI的内容更新,服务器在资源变化时用notifications/resources/updated通知客户端。 5. MCP资源最佳实践包括URI设计、名称与描述、MIME类型、订阅机制、分页与缓存等。 6. MCP协议通过资源模板实现访问动态资源,并支持资源订阅和更新通知。 7. 在实际生产系统中,要实现真实的资源读取逻辑、添加访问控制、实现真实的资源更新机制、增强错误与安全检查,需要注意输入验证、访问控制、数据清理、传输加密、速率限制等要点。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《MCP & A2A 前沿实战》,新⼈⾸单¥59
《MCP & A2A 前沿实战》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论