三大抽象的分工与协同
很多开发者刚接触 MCP 时容易将所有能力都做成 Tool。事实上,MCP 明确划分了三种不同维度的语义抽象:
1. Resources(资源:静态与被动上下文)
类似于 RESTful 架构中的 URI 资源。例如 file:///repo/package.json 或 postgres://db/schema。
- 特性:对大模型而言是只读的、具有明确定位符的上下文数据。
- 应用场景:代码库文件、系统环境信息、数据库 Schema。服务端可通过
notifications/resources/updated主动通知客户端刷新。
2. Tools(工具:主动与副作用动作)
具有严格的 JSON Schema 输入参数,执行后产生实际副作用或动态查询计算。
- 特性:需要大模型自主决策入参,执行后返回文本或多模态内容。
- 应用场景:执行 SQL、写入文件、重启微服务、调用三方支付 API。
3. Prompts(提示词:交互模板与专家模式)
由服务端预定义的对话模版,带有参数填充能力。
- 特性:为客户端 UI 提供一键触发的快捷场景指令。
- 应用场景:“一键排查当前代码漏洞”、“将当前接口重构为 RESTful 风格”。
合理组合这三者,才能构建出既拥有充足静态背景、又具备精准动态执行力的健壮智能体。