Skip to main content
提示词使服务器能够定义可重用的提示词模板和工作流,客户端可以轻松地将其展示给用户和LLM。它们提供了一种强大的方式来标准化和共享常见的LLM交互。
提示词设计为用户可控,这意味着它们从服务器暴露给客户端时,用户可以明确选择使用它们。

概述

MCP中的提示词是预定义的模板,可以:
  • 接受动态参数
  • 包含来自资源的上下文
  • 链接多个交互
  • 引导特定工作流
  • 作为UI元素展示(如斜杠命令)

提示词结构

每个提示词的定义包含:

发现提示词

客户端可以通过prompts/list端点发现可用的提示词:

使用提示词

要使用提示词,客户端需要发送prompts/get请求:

动态提示词

提示词可以是动态的,包括:

嵌入的资源上下文

处理prompts/get请求时:

多步骤工作流

示例实现

这是在MCP服务器中实现提示词的完整示例:

最佳实践

在实现提示词时:
  1. 使用清晰、描述性的提示词名称
  2. 为提示词和参数提供详细描述
  3. 验证所有必需参数
  4. 优雅地处理缺失参数
  5. 考虑提示词模板的版本控制
  6. 适当缓存动态内容
  7. 实现错误处理
  8. 记录预期的参数格式
  9. 考虑提示词的可组合性
  10. 使用各种输入测试提示词

UI集成

提示词可以在客户端UI中以以下方式展示:
  • 斜杠命令
  • 快速操作
  • 上下文菜单项
  • 命令面板条目
  • 引导式工作流
  • 交互式表单

更新和变更

服务器可以通知客户端提示词变更:
  1. 服务器功能:prompts.listChanged
  2. 通知:notifications/prompts/list_changed
  3. 客户端重新获取提示词列表

安全考虑

在实现提示词时:
  • 验证所有参数
  • 净化用户输入
  • 考虑速率限制
  • 实现访问控制
  • 审计提示词使用情况
  • 适当处理敏感数据
  • 验证生成的内容
  • 实现超时机制
  • 考虑提示词注入风险
  • 记录安全要求