第 79 页 / 共 100 页 / 飞书修订版 6

10.Prompts in the client

此文档由 学习AI的1000天 翻译制作(抖音,B站,YouTube)

邮箱: szqshan@gmail.com | 微信: szqshan
网址: www.xueai.org

==================================================

MCP 中的 Prompts 定义了一组用户和助手消息,可供客户端使用。这些 prompts 应该具有高质量、经过充分测试,并且与 MCP 服务器的整体目标相关。

image1.jpeg

实现 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。

image2.jpeg

工作流程如下:

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

提示最佳实践

为你的MCP服务器创建提示时:

  • 确保它们与服务器的用途相关
  • 在部署前进行彻底测试
  • 使用清晰、具体的指令
  • 设计它们以便与您可用的工具良好配合
  • 考虑用户需要提供哪些参数

提示词在预定义功能和动态用户需求之间架起桥梁,为Claude提供复杂任务的结构化起点,同时通过参数化保持灵活性。

==================================================



此文档由 学习AI的1000天 翻译制作(抖音,B站,YouTube)
邮箱: szqshan@gmail.com | 微信: szqshan
网址: www.xueai.org