导语:刚接触MCP时,很多人会把工具、资源和提示词混在一起理解。它们都能帮助AI完成任务,但承担的责任不同。把边界分清楚,客户端才能选择正确的调用入口,服务端也更容易控制权限。

工具负责执行动作
工具通常代表一个可以被调用的动作,例如查询数据、创建文章、发送通知或运行分析。工具有输入参数和执行结果,可能会产生副作用,因此需要做参数验证、身份认证和权限控制。
判断一个能力是不是工具,可以问一句:调用它以后,系统是否会执行一个动作或改变某个状态。
资源负责提供可读取资料
资源更像是AI可以读取的文件、页面、记录或数据集合。读取资源本身不一定改变系统状态,但资源内容可能包含权限边界、更新时间和敏感信息,所以服务端仍然要做访问控制。
- 文章、文档和帮助页面可以作为资源;
- 数据库中的只读记录可以作为资源;
- 资源应带上来源、版本或更新时间。
提示词负责提供任务入口
提示词可以把常见任务包装成一套可复用的操作说明,例如“分析这份文档”“生成发布前检查清单”“根据项目资料回答问题”。它可以引导模型组合工具和资源,但不应该代替服务端权限。
三者如何组合
一个完整任务经常是提示词先描述目标,模型读取相关资源,再调用工具完成动作。比如“发布一篇文章”这个任务,提示词可以说明文章规范,资源提供分类和标签信息,工具负责上传图片和创建文章。
客户端选择入口的判断方法
如果用户是在查资料,优先考虑资源;如果用户希望系统执行动作,选择工具;如果用户需要一个固定工作流入口,可以使用提示词。遇到复杂任务时,提示词可以作为编排入口,但每一步具体动作仍由工具完成。
权限不能只写在描述里
工具描述和提示词只是给模型看的说明。资源能否读取、工具能否执行,必须由服务端根据调用者、目标资源和当前状态重新判断。不能因为提示词写了“只处理当前用户数据”,就跳过后端校验。
命名和返回结构要统一
同一套MCP服务中,工具名称、资源标识和提示词名称应该有一致的命名规则。工具返回应区分成功、空结果、权限不足和临时失败,资源返回应保留来源和更新时间,方便模型给出可解释答案。
总结
MCP工具、资源和提示词分别对应动作、资料和任务引导。客户端先判断用户要查什么、做什么还是走一套固定流程,再选择对应入口,系统的可理解性和安全性都会更好。
评论 0