通知客户端更新
在资源内容发生变化时发出信号。
通知客户端更新 是 CoddyKit 上的免费 MCP Academy 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 MCP Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 MCP Academy 课程共包含 4 节课。
数据并非一成不变
资源会发生变化:文件可能被编辑,记录可能被更新。MCP 允许服务器通知客户端,避免客户端持续读取过时内容。🔔
通知是单向的
更新信号就是一种通知:它是不带 id 且不需要回复的 JSON-RPC 消息。服务器告知客户端发生了某件事,然后继续运行。
先订阅
客户端通过为特定 URI 调用资源/订阅来选择接收更新。只有这样,服务器才会发送有关该资源的更新。
{"method": "resources/subscribe",
"params": {"uri": "file://notes.txt"}}更新信号
受监视的资源发生变化时,服务器会发送携带 URI 的资源/已更新消息。它说明发生了什么变化,但不会携带新内容本身。
{"method": "notifications/resources/updated",
"params": {"uri": "file://notes.txt"}}先通知,再重新读取
流程分为两步:服务器先通知,然后由客户端决定是否重新读取。这样既能保持载荷很小,也能让客户端控制时机。
列表也可能发生变化
有时整个目录会随着资源出现或消失而变化。服务器会发送list_changed通知,让客户端刷新资源列表。
{"method":
"notifications/resources/list_changed"}由能力协商决定
这些功能会在开始时进行协商。服务器会在初始化期间公布是否支持订阅和 listChanged,这样双方都知道哪些功能可用。
取消订阅以停止更新
客户端不再关注某个资源时,可以针对该 URI 调用资源/取消订阅。随后服务器会停止发送更新,避免浪费不必要的流量。
{"method": "resources/unsubscribe",
"params": {"uri": "file://notes.txt"}}只在真正变化时触发
仅当内容确实发生变化时才发送更新。嘈杂且没有必要的通知会浪费客户端的处理能力,还可能触发毫无意义的重新读取。
监视数据来源
为了知道何时发送通知,您的服务器会监视数据来源,例如使用文件监视器或数据库触发器,然后据此发出更新信号。
为什么这很重要
更新通知会让资源变成实时内容。模型无需轮询即可与实际情况保持同步,从而让自身的上下文保持准确。🎯
快速检查
资源/已更新通知包含什么内容?
回顾
您学会了客户端如何订阅、接收更新通知和 list_changed 通知,并按需重新读取,从而让动态资源保持最新和实时。课程完成!🚀
常见问题解答
「通知客户端更新」课时是免费的吗?
是的 — 「通知客户端更新」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 MCP Academy 课程的其余内容,请升级到 CoddyKit PRO。 MCP Academy 课程共包含 4 节课。
「通知客户端更新」这节课中我会学到什么?
在资源内容发生变化时发出信号。 你通过在浏览器中直接运行的动手代码来练习 MCP Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 MCP Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 MCP Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。
「通知客户端更新」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 MCP Academy 课中编写并运行代码吗?
能。每节 MCP Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 带参数的资源 URI
- 在读取时构建内容
- 列表资源与模板资源
- 通知客户端更新