9.Defining prompts
此文档由 学习AI的1000天 翻译制作(抖音,B站,YouTube)
邮箱: szqshan@gmail.com | 微信: szqshan
网址: www.xueai.org
==================================================
MCP 服务器中的提示词让您能够定义预构建的高质量指令,客户端可以直接使用这些指令,而无需从零开始编写自己的提示词。可以将它们视为精心制作的模板,能够提供比用户自己想出的更好的结果。
为什么要使用提示词?
假设您希望 Claude 将文档重新格式化为 markdown。用户可以直接输入"将 report.pdf 转换为 markdown",这样做也能正常工作。但是,如果使用经过充分测试的提示词,其中包含关于格式、结构和输出要求的具体说明,他们可能会获得更好的结果。

关键洞察是,虽然用户可以自己完成这些任务,但当使用由 MCP 服务器作者精心开发和测试的提示词时,他们会获得更一致和更高质量的结果。
How Prompts Work
提示词定义了一组用户和助手消息,客户端可以直接使用。当客户端请求提示词时,您的服务器会返回一个消息列表,这些消息可以直接发送给 Claude。

基本结构如下所示:
- 使用 @mcp.prompt() 装饰器定义提示词
- 为每个提示词添加名称和描述
- 返回构成完整提示词的消息列表
- 这些提示词应该是高质量的、经过充分测试的,并且与您的 MCP 服务器的用途相关
构建格式化命令
以下是如何实现文档格式化提示的方法。首先,你需要导入基础消息类型:
from mcp.server.fastmcp import base
然后定义你的提示函数:
@mcp.prompt(
name="format",
description="Rewrites the contents of the document in Markdown format."
)
def format_document(
doc_id: str = Field(description="Id of the document to format")
) -> list[base.Message]:
prompt = f"""
你的目标是将文档重新格式化为使用 markdown 语法编写。
你需要重新格式化的文档 ID 是:
{doc_id}
根据需要添加标题、项目符号、表格等。可以随意添加额外的格式化。
使用 'edit_document' 工具来编辑文档。文档重新格式化完成后...
"""
return [
base.UserMessage(prompt)
]
测试你的 Prompt
您可以使用MCP Inspector测试提示词。导航到Prompts部分,选择您的提示词,并提供任何必需的参数。Inspector将显示将要发送给Claude的生成消息。

这让您可以在真实应用中使用之前,验证您的提示词是否正确插入变量并产生预期的消息结构。
Best Practices
为您的MCP服务器创建提示词时:
- 专注于对您服务器目标至关重要的任务
- 编写详细、具体的指令,而不是模糊的请求
- 使用不同的输入彻底测试您的提示词
- 包含清晰的描述,让用户了解每个提示词的作用
- 考虑提示词如何与您服务器的工具和资源配合使用
请记住,提示词的目的是提供用户自己难以轻易获得的价值——它们应该代表您在MCP服务器所涵盖领域的专业知识。
==================================================
此文档由 学习AI的1000天 翻译制作(抖音,B站,YouTube)
邮箱: szqshan@gmail.com | 微信: szqshan
网址: www.xueai.org