项目简介

Prompt Saver MCP服务器是一个专为LLM应用设计的后端服务,旨在帮助用户高效地管理和优化其与LLM的交互。它能够自动将成功的对话会话提炼、分类并保存为结构化的提示词模板,支持通过向量搜索和文本搜索快速检索,并允许手动或AI辅助更新提示词,从而极大地提升LLM交互的效率和质量。

主要功能点

  • 保存提示词: 将成功的对话历史转化为结构化的提示词模板,并进行总结和分类。这有助于您积累高质量的LLM交互经验。
  • 使用提示词: 通过语义或文本搜索,根据您的需求快速检索最相关的提示词模板,避免重复劳动。
  • 获取提示词详情: 查看特定提示词的完整内容,包括其模板、历史和元数据,以便您在应用前进行全面了解。
  • 更新提示词: 手动修改现有提示词的总结、模板、使用案例或历史,以适应不断变化的需求。
  • AI改进提示词: 根据用户反馈和对话上下文,利用AI自动分析并优化提示词模板,持续提升其效果。
  • 按用例搜索: 针对特定任务类型(如代码生成、文本生成、数据分析、创意写作等)查找相关提示词,实现精准查找。

安装步骤

  1. 克隆仓库: 打开您的终端或命令行工具,执行以下命令克隆项目仓库:

    git clone https://github.com/davidhou17/prompt-saver-mcp
    cd prompt-saver-mcp
  2. 安装依赖: 推荐使用 'uv' 工具进行依赖管理(如果未安装 'uv',请先安装 'pip install uv'):

    uv sync

    或者,您也可以使用 'pip' 进行安装:

    pip install -e .
  3. 设置MongoDB Atlas:

    • 访问 MongoDB Atlas 创建一个免费集群。
    • 在您的集群中,创建一个名为 'prompt_saver' 的数据库。
    • 在 'prompt_saver' 数据库的 'prompts' 集合上,创建一个向量搜索索引。在Atlas UI中,导航到“Search” > “Create Search Index”,选择“Vector Search”模板,并将 'embedding' 字段的维度设置为 '2048',相似度选择 'dotProduct'。
  4. 配置环境变量:

    • 在项目根目录找到 '.env.example' 文件,将其复制一份并重命名为 '.env'。
    • 编辑 '.env' 文件,填入您的API密钥和MongoDB Atlas连接字符串。
    • 所有配置必填项:
      • 'MONGODB_URI': 您的MongoDB Atlas连接字符串。
      • 'VOYAGE_AI_API_KEY': 您的Voyage AI API密钥(用于生成向量嵌入,以实现语义搜索)。
    • 选择一个LLM提供商并配置相应密钥和模型:
      • Azure OpenAI: 配置 'AZURE_OPENAI_API_KEY' 和 'AZURE_OPENAI_ENDPOINT'。
      • OpenAI: 配置 'OPENAI_API_KEY'。
      • Anthropic: 配置 'ANTHROPIC_API_KEY'(请确保已安装 'anthropic' 包,'pip install anthropic')。

服务器配置(供MCP客户端集成)

要将Prompt Saver MCP服务器与您的MCP客户端(例如Claude Desktop或其他兼容MCP的LLM应用程序)集成,请根据您选择的LLM提供商,将以下JSON配置示例之一添加到客户端的配置文件中。

  • 使用Azure OpenAI 的配置示例:

    {
      "mcpServers": {
        "prompt-saver": {
          "command": "uv",
          "args": ["run", "python", "-m", "prompt_saver_mcp.server", "stdio"],
          "cwd": "/path/to/your/prompt-saver-mcp",
          "env": {
            "MONGODB_URI": "mongodb+srv://username:[email protected]/",
            "MONGODB_DATABASE": "prompt_saver",
            "VOYAGE_AI_API_KEY": "your_voyage_ai_api_key_here",
            "LLM_PROVIDER": "azure_openai",
            "AZURE_OPENAI_API_KEY": "your_azure_openai_api_key_here",
            "AZURE_OPENAI_ENDPOINT": "https://your-resource.openai.azure.com/",
            "AZURE_OPENAI_MODEL": "gpt-4o"
          }
        }
      }
    }

    请将 'command' 中的 'uv' 和 'args' 中的 '-m prompt_saver_mcp.server stdio' 配置为服务器启动命令,'cwd' 设置为项目所在目录的绝对路径,并在 'env' 中填入您实际的环境变量值。

  • 使用OpenAI 的配置示例:

    {
      "mcpServers": {
        "prompt-saver": {
          "command": "uv",
          "args": ["run", "python", "-m", "prompt_saver_mcp.server", "stdio"],
          "cwd": "/path/to/your/prompt-saver-mcp",
          "env": {
            "MONGODB_URI": "mongodb+srv://username:[email protected]/",
            "MONGODB_DATABASE": "prompt_saver",
            "VOYAGE_AI_API_KEY": "your_voyage_ai_api_key_here",
            "LLM_PROVIDER": "openai",
            "OPENAI_API_KEY": "your_openai_api_key_here",
            "OPENAI_MODEL": "gpt-4o"
          }
        }
      }
    }

    请将 'command' 中的 'uv' 和 'args' 中的 '-m prompt_saver_mcp.server stdio' 配置为服务器启动命令,'cwd' 设置为项目所在目录的绝对路径,并在 'env' 中填入您实际的环境变量值。

  • 使用Anthropic 的配置示例:

    {
      "mcpServers": {
        "prompt-saver": {
          "command": "uv",
          "args": ["run", "python", "-m", "prompt_saver_mcp.server", "stdio"],
          "cwd": "/path/to/your/prompt-saver-mcp",
          "env": {
            "MONGODB_URI": "mongodb+srv://username:[email protected]/",
            "MONGODB_DATABASE": "prompt_saver",
            "VOYAGE_AI_API_KEY": "your_voyage_ai_api_key_here",
            "LLM_PROVIDER": "anthropic",
            "ANTHROPIC_API_KEY": "your_anthropic_api_key_here",
            "ANTHROPIC_MODEL": "claude-sonnet-4-20250514"
          }
        }
      }
    }

    请将 'command' 中的 'uv' 和 'args' 中的 '-m prompt_saver_mcp.server stdio' 配置为服务器启动命令,'cwd' 设置为项目所在目录的绝对路径,并在 'env' 中填入您实际的环境变量值。

基本使用方法(通过MCP客户端自动调用工具)

配置好MCP服务器后,您的LLM客户端(例如Claude Desktop)将能够根据您在系统提示(System Prompt)中设置的指令自动调用Prompt Saver提供的工具。

为了最大化服务器的价值,建议在LLM的系统提示中添加以下指令:

Always search for relevant prompts before starting any large or complex tasks.

Upon successful completion of a task, always ask if I want to save the conversation as a prompt.

Upon successful completion of a task with a prompt, always ask if I want to update the prompt.

这将使LLM在适当的时机自动执行例如“使用提示词”来查找相关提示,或在任务完成后自动“保存提示词”或“更新提示词”,从而让您获得更加智能和自动化的LLM交互体验。

信息

分类

AI与计算