为了账号安全,请及时绑定邮箱和手机立即绑定

给本地MCP服务器添加自定义提示:Claude Desktop的使用指南

在我的上一篇文章中,我建立了一个本地MCP服务器,并给服务器增加了一些工具。在这篇文章里,让我们给这个MCP服务器添加一些提示。

这和之前的博客中的文件结构一样。但在这一篇中,我在这一篇中创建了两个新文件。

    .
    ├── 📁 venv/
    ├── 📄 helpers.py
    ├── 📄 server.py
    ├── 📄 prompts.py          新添加的文件
    ├── 📄 prompt_builder.py   新添加的文件
    └── 📄 tools.py

如果没有设置环境,请按照我之前博客里提到的方法设置开发环境。设置完成后,您可以从这里继续往下走。在这个教程里,我创建了两个提示信息,并将它们添加到MCP服务器,并在Claude Desktop里使用它们。

1. 编写提示语

我要创建一个用于修复代码中bug的提示,另一个用于改进文本的提示。先来看一个MCP提示的样本,以理解其结构。

    从 mcp.server.fastmcp.prompts 导入 Prompt  
    从 mcp.server.fastmcp.prompts.base 导入 PromptArgument  

    example_prompt = Prompt(  
        name="PROMPT_NAME",  
        description="PROMPT_DESCRIPTION",  
        arguments=[  
            PromptArgument(  
                name="ARGUMENT_NAME",  
                description="ARGUMENT_DESCRIPTION",  
                required="OPTIONAL_OR_REQUIRED"  
            )  
        ],  
        fn="FUNCTION_FOR_BUILDING_THE_PROMPT"  
    )

提示参数就像是提示里的预留位置。用户在使用提示时,可以在 Claude 桌面应用里为这些预留位置填入具体信息。一个提示可以包含一个或多个参数,也可以没有任何参数。我们可以通过调整 required 参数的设置,来决定某个参数是必填还是可选的。

好的。现在你对MCP提示的结构有了一个大致的了解。我们现在来创建一些提示。第一个提示是用来优化文本的。这个提示的作用是这样的,当我们给Claude Desktop一段文本时,它会优化这段文本。这个提示不需要任何参数。

    # prompts.py

    from mcp.server.fastmcp.prompts import Prompt
    from mcp.server.fastmcp.prompts.base import PromptArgument

    text_refinement_prompt = Prompt(
        name="refine-the-text",
        description="精炼给定文本",
        arguments=[],
        fn=PromptBuilder.text_refinement_prompt_fn,
    )

我们现在来创建第二个提示吧。这个提示是为了修复代码错误的。这个提示有两个参数。第一个参数是输入使用的框架,这是必需的。第二个参数是可选的,用来输入错误信息。比如说可以输入你遇到的问题描述。

    bugfix_prompt = Prompt(  
        name="fix-the-issue",  
        description="修复提供的代码片段中的问题",  
        arguments=[  
            PromptArgument(  
                name="framework",  
                description="代码片段中使用的框架",  
                required=True  
            ),  
            PromptArgument(  
                name="issue",  
                description="代码片段中的问题,"  
            ),  
        ],  
        fn=PromptBuilder.bugfix_prompt_fn  
    )

好了,我们已经完成了提示的创建,但还没有创建提示函数。

2. 创建提示功能

让我们创建一个名为 PromptBuilder 的类,并在其中定义一些提示函数。这些函数不一定非要放在类里面,但我更喜欢这样组织代码,这样更清晰。

    # prompt_builder.py  

    class PromptBuilder:  

        @staticmethod  
        def text_refinement_prompt_fn():  
            return dedent(  
                f"""  
                修正给定文本中的语法错误,  
                使其更易于阅读,  
                但不要改变原文的意思和风格。  
                """  
            )  

        @staticmethod  
        def bugfix_prompt_fn(framework, issue=""):  
            return dedent(  
                f"""  
                请扮演一位经验丰富的 {framework} 开发者,  
                检查给定的代码并修复错误。  
                错误描述: {issue}  
                """  
            )    

第一个函数生成一个“精简文本”的提示,不需要任何参数。因此,该函数本身没有参数,只是返回要提供给大型语言模型的提示。第二个函数构建一个“修正问题”的指令,需要两个参数,其中一个必填,一个可选。因此,该函数有两个参数,第一个是必填的,第二个是可选的,与提示结构相匹配。这些参数通过f-string插入到提示中的占位符中。实际上,这些提示函数动态构建最终提示。

3. 连接至 MCP 服务器

现在,我们将在上一篇文章中创建的服务器上添加提示词。

    从mcp.server.fastmcp导入FastMCP  
    从prompts导入bugfix_prompt, text_refinement_prompt,daily_standup暂时不使用  

    # 初始化FastMCP服务器  
    mcp = FastMCP("Weather-Server")  

    # 将提示添加到服务器  
    mcp.add_prompt(bugfix_prompt)  
    mcp.add_prompt(text_refinement_prompt)  
    if __name__ == "__main__":  
        # 启动服务器  
        mcp.run()
4. 连接至 Claude 的桌面

JSON 配置无需做任何更改。和之前一样,配置保持不变。创建一个 JSON 文件作为配置。请在以下位置创建 JSON 文件。C:\Users\USER\AppData\Roaming\Claude\claude_desktop_config.json

    {  
        "mcpServers": {  
            "weather": {  
                // 运行 python 脚本在虚拟环境中  
                // 虚拟环境中 python.exe 的绝对路径  
                "command": "<PATH_TO_ENVIRONMENT>\\venv\\Scripts\\python",  
                "args": [  
                    // server.py 的绝对路径  
                    "<PATH_TO_SERVER>\\server.py"   
                ]  
            }  
        }  
    }

我在之前的这篇文章中已经解释过了这个配置。所以这次我就不重复解释了。创建完配置文件后,请重启Claude桌面。

重启了 Claude 桌面后,你可以看到叫做“从 MCP 连接”的按钮,点击它。然后选择“选择集成”。

在这里的下拉列表中,你可以看到你在这个MCP中创建的提示语被列在这里。现在我们来看看如何使用这些提示语。首先,让我们尝试“解决此问题”。如果你点击它,你会看到这样的弹出窗口。

它会要求你填写在提示中定义的参数。填写这些参数并提交,它会作为附件出现在你的Claude桌面上。现在你可以在聊天框里输入剩下的提示内容。

其他MCP提示也差不多。唯一不同的是它们不需输入参数。它们会直接作为聊天的附件添加。

第五部分:总结了

我们可以将这些MCP提示当作模板。MCP提示,这些可以当作模板。如果你用Claude Desktop来做重复性任务的话,你可以为此目的创建MCP提示。你就不需要手动输入这些提示了,可以从MCP服务器中直接获取。此外,你还可以把所有提示存放在一个集中位置。

感谢你加入我们的社区!

在你走之前,

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

举报

0/150
提交
取消