项目简介
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' 中的配置。
基本使用方法
-
启动服务器:
在你的 'mcp-memory-service' 仓库目录下,打开终端并运行以下命令启动服务器 (用于测试目的):
python src/test_management.py或者,如果你配置了 'uv',可以使用 'claude_desktop_config.json' 中配置的命令启动:
uv run memory -
连接客户端:
配置你的 MCP 客户端(例如 Claude Desktop),使其连接到正在运行的 Memory Service 服务器。客户端会通过 MCP 协议与服务器通信,调用服务器提供的工具。
-
使用工具:
客户端可以通过调用服务器提供的工具来操作记忆。例如:
- 'store_memory': 存储新的记忆内容,可以添加标签和类型等元数据。
- 'retrieve_memory': 根据查询语句检索相关的记忆。
- 'search_by_tag': 根据标签搜索记忆。
- 'delete_memory': 根据 content_hash 删除指定的记忆。
- 'debug_retrieve': 调试检索,返回更详细的相似度信息。
具体工具的使用方法和参数,请参考仓库 'README.md' 文件中 "Available Tools and Operations" 部分的详细描述。
示例使用场景:
- 让 LLM 记住对话历史,保持上下文连贯性。
- 构建个人知识库,让 LLM 能够检索和利用存储的知识。
- 为 LLM 应用增加记忆功能,例如任务管理、日程提醒等。
信息
分类
数据库与文件