项目简介

Memory Service 是一个基于 Model Context Protocol (MCP) 构建的后端服务,专为 Claude Desktop 等大型语言模型(LLM)客户端设计。它利用 ChromaDB 向量数据库和 sentence-transformers 模型,为 LLM 提供语义记忆和持久化存储功能。该服务旨在帮助 LLM 跨会话和实例维护上下文,构建长期的知识库,提升对话和应用体验。

主要功能点:

  • 语义搜索: 通过 sentence-transformers 模型进行语义向量化,实现基于语义相似度的记忆检索,即使query与记忆内容不完全匹配也能找到相关信息。
  • 标签系统: 支持为记忆添加标签,并根据标签进行检索,方便用户组织和查找特定类型的记忆。
  • 持久化存储: 使用 ChromaDB 向量数据库存储记忆,确保数据持久化,重启服务或客户端后记忆不会丢失。
  • 数据库管理工具: 提供数据库备份、优化、健康检查、重复数据清理等工具,保障服务稳定运行。
  • 多种记忆操作: 支持存储、检索、按标签搜索、精确匹配检索、调试检索等多种记忆操作,满足不同场景的需求。

安装步骤

1. 手动安装 (推荐):

  • 创建 Python 虚拟环境:

    python -m venv venv
    source venv/bin/activate   # Linux/macOS
    venv\Scripts\activate  # Windows
  • 安装依赖:

    pip install -r requirements.txt
    uv add mcp  # 可选,如果需要使用 uv 工具
    pip install -e .

2. 通过 Smithery 自动安装 (可选):

如果你使用 Claude Desktop 客户端,可以使用 Smithery 简化安装:

bash      npx -y @smithery/cli install @doobidoo/mcp-memory-service --client claude      

服务器配置

MCP 客户端(例如 Claude Desktop)需要配置服务器的启动命令才能连接 Memory Service。以下是 'claude_desktop_config.json' 的配置示例:

{
  "memory": {
    "command": "uv",  // 或 "python" ,取决于你的环境配置
    "args": [
      "--directory",
      "你的_mcp_memory_service_目录",  //  **[请替换为你的 mcp-memory-service 仓库的绝对路径,例如 "C:\\REPOSITORIES\\mcp-memory-service" 或 "/home/user/repos/mcp-memory-service"]**
      "run",
      "memory" //  指定运行 "memory" 服务,对应 src/mcp_memory_service/server.py 中的入口
    ],
    "env": {
      "MCP_MEMORY_CHROMA_PATH": "你的_chroma_db_路径",  // **[可选,请替换为你希望 ChromaDB 数据库存储的路径,例如 "C:\\Users\\John.Doe\\AppData\\Local\\mcp-memory\\chroma_db" 或 "/home/user/.mcp-memory/chroma_db", 默认会自动创建在项目目录下的 chroma_db 文件夹中]**
      "MCP_MEMORY_BACKUPS_PATH": "你的_备份路径"   // **[可选,请替换为你希望备份文件存储的路径,例如 "C:\\Users\\John.Doe\\AppData\\Local\\mcp-memory\\backups" 或 "/home/user/.mcp-memory/backups", 默认会自动创建在项目目录下的 backups 文件夹中]**
    }
  }
}

配置参数说明:

  • 'command': 启动服务器的命令,通常是 'uv' (如果安装了 uv) 或 'python'。
  • 'args': 传递给启动命令的参数列表。
    • '--directory':指定 MCP 服务器代码所在的目录。[务必替换为实际仓库路径]
    • 'run memory':指示 uv 或 python 运行 'memory' 服务。
  • 'env': 设置服务器运行的环境变量。
    • 'MCP_MEMORY_CHROMA_PATH': [可选] 指定 ChromaDB 数据库的存储路径。如果未设置,将使用默认路径(项目目录下的 'chroma_db' 文件夹)。
    • 'MCP_MEMORY_BACKUPS_PATH': [可选] 指定数据库备份文件的存储路径。如果未设置,将使用默认路径(项目目录下的 'backups' 文件夹)。

重要提示:

  • 路径替换: 请务必将 '你的_mcp_memory_service_目录'、'你的_chroma_db_路径' 和 '你的_备份路径' 替换为你的实际路径。
  • 环境变量: 你也可以通过系统环境变量配置 'CHROMA_DB_PATH' 和 'BACKUP_PATH',优先级高于 'claude_desktop_config.json' 中的配置。

基本使用方法

  1. 启动服务器:

    在你的 'mcp-memory-service' 仓库目录下,打开终端并运行以下命令启动服务器 (用于测试目的):

    python src/test_management.py

    或者,如果你配置了 'uv',可以使用 'claude_desktop_config.json' 中配置的命令启动:

    uv run memory
  2. 连接客户端:

    配置你的 MCP 客户端(例如 Claude Desktop),使其连接到正在运行的 Memory Service 服务器。客户端会通过 MCP 协议与服务器通信,调用服务器提供的工具。

  3. 使用工具:

    客户端可以通过调用服务器提供的工具来操作记忆。例如:

    • 'store_memory': 存储新的记忆内容,可以添加标签和类型等元数据。
    • 'retrieve_memory': 根据查询语句检索相关的记忆。
    • 'search_by_tag': 根据标签搜索记忆。
    • 'delete_memory': 根据 content_hash 删除指定的记忆。
    • 'debug_retrieve': 调试检索,返回更详细的相似度信息。

    具体工具的使用方法和参数,请参考仓库 'README.md' 文件中 "Available Tools and Operations" 部分的详细描述。

示例使用场景:

  • 让 LLM 记住对话历史,保持上下文连贯性。
  • 构建个人知识库,让 LLM 能够检索和利用存储的知识。
  • 为 LLM 应用增加记忆功能,例如任务管理、日程提醒等。

信息

分类

数据库与文件