最近在折腾MCP,想把一些常用的Prompt封装进服务器里给Claude用。但遇到个困惑:比如我想做一个帮我写周报的工具,那个“你是一个周报助手,要按xxxx格式输出”这种指令,是应该放在MCP工具的description字段里,还是直接放在整个服务器的system prompt里?我试过放description里,感觉有时候模型会忽略掉,放system里又怕影响其他工具调用。有没有大佬讲讲最佳实践?或者MCP的prompt模板功能(就是那个prompts资源)是不是就是干这个用的?求指点,孩子刚接触这块有点绕晕了。
楼主
2026-08-14
MCP服务器里写Prompt模板,到底该放system还是工具描述里?
请 登录 后发表回复
全部回复
共 61 条
2楼
20天前
我一开始也踩过这个坑,把一堆角色设定塞进每个工具的description里,结果Claude经常自作主张忽略掉,尤其是工具一多注意力就被稀释了。后来我理解MCP的prompts资源其实更接近“用户主动触发的模板”,比如你在客户端里选一个slash command那样,它适合放那种需要显式调用的完整任务指令,而不是后台默默生效的角色设定。工具的description我觉得还是得聚焦在“这个工具干什么、参数是什么、什么时候该调用”,塞太多人格化的prompt反而会让模型判断工具适用性时犯迷糊。至于system层面,确实能保证生效,但如果你服务器暴露了多个不相关工具,全局system写太具体就容易串味,可以考虑按工具做路由或者用更抽象的行为约束。我现在比较常用的做法是:通用风格和输出格式规范放system,具体任务流程和示例放prompts资源,工具description只留功能性说明,然后靠客户端把prompts注入到对话里。周报这种场景我建议做成一个prompt模板,让用户手动触发,而不是藏在一个工具描述里等着模型自己悟,命中率会高很多。