这是一个非常深刻的架构设计问题。既然我们已经有了 Tools(能干活)Resources(有资料),为什么还要专门设计一个 Prompts(提示模板) 交互方式呢?

在 MCP 的设计哲学中,Prompts 扮演的是 “专家说明书”“工作流模板” 的角色。如果说 Tools 是 AI 的手脚,Resources 是 AI 的眼睛,那么 Prompts 就是 AI 的**“思维导图”**。

以下是 MCP 依然需要 Prompts 的三个核心理由:


1. 知识的“服务端化”:解决指令碎片化

在传统的开发模式中,提示词(Prompt)通常是硬编码在客户端代码里的。

  • 痛点:如果你开发了一个复杂的 SQL 分析工具,你需要告诉 AI 很多注意事项(如:不要查询大表、注意字段类型)。如果换了一个客户端(比如从 Cursor 换到 Claude Desktop),你得把这些复杂的提示词再写一遍。
  • MCP 的解法:通过 get_prompts,Server 开发者(最懂工具的人)可以直接定义最佳实践模板。
    • 例子:在你提供的代码中,analyze_code 模板定义了从“代码质量、潜在 Bug、安全、性能、建议”五个维度进行审查。
    • 价值:无论 AI 在哪个客户端运行,只要接入你的 Server,它拿到的都是这一套标准化的专家级指令

2. 动态上下文的高效组合

Prompts 能够将 ResourcesTools 有机地编排在一起,形成一个完整的任务。

  • 痛点:AI 有时候空有工具,却不知道在什么时机、以什么标准去使用它们。
  • MCP 的解法:Prompts 允许定义动态占位符(如 {file_path})。
    • 当用户选择 summarize_file 模板时,Server 会引导 AI 去读取特定的 Resource,并套用预设的总结格式。
    • 这实际上是把 “查找数据” -> “理解意图” -> “执行操作” 这一套复杂的链路,封装成了一个简单的按钮。

3. 任务发现(Discovery)与引导

Prompts 告诉 AI:“用这个 Server 还能干成什么大事?”

  • 痛点:AI 接入一个文件系统 Server 后,它只知道自己能读写文件。它可能想不到可以用这些文件来做一次“全量代码审计”。
  • MCP 的解法:当 AI 调用 prompts/list 时,它会发现有一个叫 analyze_code 的模板。
    • 这会激发 AI 的“灵感”,主动引导用户:“我看到这里有一个代码分析模板,需要我帮你审查一下刚才写的 main.py 吗?”

🧱 形象化理解:建筑工地的比喻

我们可以把一个 MCP Server 想象成一个功能完备的建筑基站

  • Tools (工具):是电钻、推土机。AI 可以随时调用它们来改变环境。
  • Resources (资源):是工地的图纸、砖块和水泥。AI 可以在这里寻找原始材料。
  • Prompts (提示模板):是施工标准和作业指导书
    • 它告诉 AI:“如果你要筑墙,请按照《国家标准施工手册》的要求,每隔 50cm 检查一次垂直度”。

🧪 技术选型的“金字塔”

在面试或实际开发中,你可以根据以下逻辑来决定使用哪种交互:

如果你的目的是… 请选择…
提供原始数据或背景信息(如日志、代码库、DB 视图) Resources
提供原子化的操作能力(如写文件、查 API、发邮件) Tools
提供复杂的业务逻辑标准或任务执行规范(如代码审查规范、周报生成模板) Prompts

总结:
如果没有 Prompts,MCP Server 就只是一个“冷冰冰的驱动程序”。有了 Prompts,它就变成了一个**“带有行业专家的智能工作站”**。

在你现在的 FileSystemMCPServer 代码中,你把 analyze_code 设计成了一个 Prompt 而不是 Tool,是因为你觉得“分析逻辑”本身是模型的能力,而你只是在提供审查标准对吗?

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐