Skip to main content

资源与提示词

6.1 Resources(资源)详解

Resources让Server向AI应用暴露数据。和Tools的区别:

资源URI

每个资源有唯一的URI标识:

URI模板(RFC 6570)

MCP支持RFC 6570 URI模板语法,用于定义动态资源。Server在 resources/list 返回中可以包含URI模板,Client通过模板变量填充来请求具体资源:
常用URI模板模式:
Client使用时填充变量:

Annotations(资源注解)

每个资源可以携带Annotations元数据,帮助Host决定如何使用资源:
Annotations字段说明:

资源订阅

如果Server在初始化时声明 resources: { subscribe: true },Client可以订阅资源变化:
收到通知后,Client重新调用 resources/read 获取最新数据。这种模式适合实时性要求高的场景,如库存监控。 取消订阅:

资源列表变更通知

当Server的资源集合发生变化(新增或移除资源),可通知Client:
Client收到后重新调用 resources/list 获取最新的资源列表。

实现示例

6.2 Prompts(提示词模板)详解

Prompts是Server预定义的交互模板。与Tools和Resources不同,Prompts是用户控制的 — 用户在Host应用中主动选择使用哪个模板。

提示词结构

获取提示词(带参数)

商务场景的提示词示例

多消息提示词

Prompts可以返回多条消息,包括system角色:

嵌入资源的提示词

Prompts中的消息可以使用 embedded_resource 类型嵌入资源数据:

何时用Prompt vs Tool vs Resource


下一章: 安全与认证 — OAuth 2.1集成和权限管理