10.Prompts in the client
此文档由 学习AI的1000天 翻译制作(抖音,B站,YouTube)
邮箱: szqshan@gmail.com | 微信: szqshan
网址: www.xueai.org
==================================================
MCP 中的 Prompts 定义了一组用户和助手消息,可供客户端使用。这些 prompts 应该具有高质量、经过充分测试,并且与 MCP 服务器的整体目标相关。

实现 List Prompts
第一步是在你的 MCP 客户端中实现 list_prompts 方法。该方法从服务器检索所有可用的 prompts:
async def list_prompts(self) -> list[types.Prompt]:
result = await self.session().list_prompts()
return result.prompts
这个简单的实现调用会话的 list_prompts 方法,并从结果中返回 prompts 数组。
获取单个 Prompts
get_prompt 方法检索特定的 prompt,并将参数插值到其中。当你请求一个 prompt 时,你需要提供参数,这些参数将作为关键字参数传递给 prompt 函数:
async def get_prompt(self, prompt_name, args: dict[str, str]):
result = await self.session().get_prompt(prompt_name, args)
return result.messages
该方法返回结果中的消息,这些消息构成了一个可以直接输入到Claude中的对话。
提示参数的工作原理
当你在服务器端定义提示函数时,它可以接受参数。例如,一个文档格式化提示可能需要一个doc_id参数:
def format_document(doc_id: str):
# doc_id会被插值到提示中
当客户端调用get_prompt时,参数字典应该包含预期的键。MCP服务器会将这些参数作为关键字参数传递给提示函数,从而允许将动态内容插入到提示模板中。
在CLI中测试提示
实现完成后,你可以通过命令行界面测试提示。当你输入正斜杠时,可用的提示会作为命令出现。选择一个提示可能会提示你从可用选项中进行选择(如文档ID),然后完整的提示会被发送到Claude。

工作流程如下:
- 用户选择一个提示(如"format")
- 系统提示输入必需的参数(如要格式化的文档)
- 提示与插值后的值一起发送给Claude
- Claude然后可以使用工具获取额外数据并完成任务

提示最佳实践
为你的MCP服务器创建提示时:
- 确保它们与服务器的用途相关
- 在部署前进行彻底测试
- 使用清晰、具体的指令
- 设计它们以便与您可用的工具良好配合
- 考虑用户需要提供哪些参数
提示词在预定义功能和动态用户需求之间架起桥梁,为Claude提供复杂任务的结构化起点,同时通过参数化保持灵活性。
==================================================
此文档由 学习AI的1000天 翻译制作(抖音,B站,YouTube)
邮箱: szqshan@gmail.com | 微信: szqshan
网址: www.xueai.org