另外两类 — 只读数据与现成话术
这一章讲三件事: 服务器怎么把只读的数据交给你、你怎么把它塞进发给模型的消息里; 服务器写好的话术是个什么东西、由谁来挑;以及三类东西在设计上各归谁管。
它在全书链条里的位置: 第 05 章那个「先要清单、再挑一个用」的套路, 在这一章换两个方法名再走两遍。同时它还清掉第 05 章欠下的一笔账—— 那两种当时认不出的内容块,这一章补上。
1. 工具让模型动手,资源让模型看到
这一节回答:服务器要给模型一份数据,为什么不干脆包成一个工具?
它可以。但 MCP 专门为「只读的数据」留了一类,叫资源——资源就是服务器提供的、 读了不会改变任何东西的那些数据。
书里对它的说法很直接:资源让宿主应用和它连着的模型, 能拿到 MCP 服务器提供的数据——可以是数据库里的记录、图片、文本文件等等1。
为什么要跟工具分开?两条理由。
第一条,一个会改变世界,一个不会。 调一次工具可能发出一封邮件、删掉一个文件; 读一次资源不会改变任何东西。分开之后,「哪些操作需要用户点头」这件事才好判断。
第二条,决定权不一样。 工具是摊给模型让它挑的; 资源是应用替用户挑好、再塞进去的——用户说「看看这个脚本」, 应用就去把那个脚本取来放进消息里,模型没有挑的机会。 (第 8 节会把三类东西各归谁挑列成一张表。)