MCP Memory Service
为 Claude 提供语义记忆和持久存储,利用 ChromaDB 和句子转换器来增强搜索和检索能力。
Tools
store_memory
Store new information with optional tags
retrieve_memory
Find relevant memories based on query
search_by_tag
Search memories by tags
README
MCP 内存服务
一个 MCP 服务器,为 Claude Desktop 提供语义记忆和持久存储功能,使用 ChromaDB 和句子转换器。此服务支持具有语义搜索功能的长期记忆存储,使其非常适合在对话和实例之间保持上下文。
<img width="240" alt="grafik" src="https://github.com/user-attachments/assets/eab1f341-ca54-445c-905e-273cd9e89555" /> <a href="https://glama.ai/mcp/servers/bzvl3lz34o"><img width="380" height="200" src="https://glama.ai/mcp/servers/bzvl3lz34o/badge" alt="Memory Service MCP server" /></a>
特性
- 使用句子转换器的语义搜索
- 基于自然语言的时间召回(例如,“上周”,“昨天早上”)
- 基于标签的记忆检索系统
- 使用 ChromaDB 的持久存储
- 自动数据库备份
- 内存优化工具
- 精确匹配检索
- 用于相似性分析的调试模式
- 数据库健康监控
- 重复检测和清理
- 可定制的嵌入模型
- 跨平台兼容性(Apple Silicon、Intel、Windows、Linux)
- 针对不同环境的硬件感知优化
- 针对有限硬件资源的优雅降级
快速开始
最快的入门方式:
# 如果尚未安装 UV,请安装 UV
pip install uv
# 克隆并安装
git clone https://github.com/doobidoo/mcp-memory-service.git
cd mcp-memory-service
uv venv
source .venv/bin/activate # 在 Windows 上:.venv\Scripts\activate
uv pip install -r requirements.txt
uv pip install -e .
# 运行服务
uv run memory
Docker 和 Smithery 集成
Docker 用法
该服务可以在 Docker 容器中运行,以实现更好的隔离和部署:
# 构建 Docker 镜像
docker build -t mcp-memory-service .
# 运行容器
# 注意:在 macOS 上,路径必须位于 Docker 允许的文件共享位置内
# 默认允许的位置包括:
# - /Users
# - /Volumes
# - /private
# - /tmp
# - /var/folders
# 带有正确 macOS 路径的示例:
docker run -it \
-v $HOME/mcp-memory/chroma_db:/app/chroma_db \
-v $HOME/mcp-memory/backups:/app/backups \
mcp-memory-service
# 对于生产用途,您可能希望在分离模式下运行它:
docker run -d \
-v $HOME/mcp-memory/chroma_db:/app/chroma_db \
-v $HOME/mcp-memory/backups:/app/backups \
--name mcp-memory \
mcp-memory-service
要在 macOS 上配置 Docker 的文件共享:
- 打开 Docker Desktop
- 转到 Settings (Preferences)
- 导航到 Resources -> File Sharing
- 添加您需要共享的任何其他路径
- 单击“Apply & Restart”
Smithery 集成
该服务通过 smithery.yaml
配置为 Smithery 集成。此配置支持与 Claude Desktop 等 MCP 客户端的基于 stdio 的通信。
要与 Smithery 一起使用:
- 确保您的
claude_desktop_config.json
指向正确的路径:
{
"memory": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-v", "$HOME/mcp-memory/chroma_db:/app/chroma_db",
"-v", "$HOME/mcp-memory/backups:/app/backups",
"mcp-memory-service"
],
"env": {
"MCP_MEMORY_CHROMA_PATH": "/app/chroma_db",
"MCP_MEMORY_BACKUPS_PATH": "/app/backups"
}
}
}
smithery.yaml
配置自动处理 stdio 通信和环境设置。
使用 Claude Desktop 进行测试
要验证基于 Docker 的内存服务是否与 Claude Desktop 正常工作:
- 使用
docker build -t mcp-memory-service .
构建 Docker 镜像 - 创建持久存储所需的目录:
mkdir -p $HOME/mcp-memory/chroma_db $HOME/mcp-memory/backups
- 更新您的 Claude Desktop 配置文件:
- 在 macOS 上:
~/Library/Application Support/Claude/claude_desktop_config.json
- 在 Windows 上:
%APPDATA%\Claude\claude_desktop_config.json
- 在 Linux 上:
~/.config/Claude/claude_desktop_config.json
- 在 macOS 上:
- 重新启动 Claude Desktop
- 当 Claude 启动时,您应该看到内存服务初始化并显示一条消息:
MCP Memory Service initialization completed
- 测试内存功能:
- 让 Claude 记住一些事情:“请记住我最喜欢的颜色是蓝色”
- 稍后在对话中或在新的对话中,询问:“我最喜欢的颜色是什么?”
- Claude 应该从内存服务中检索信息
如果您遇到任何问题:
- 检查 Claude Desktop 控制台中的错误消息
- 验证 Docker 是否具有访问已挂载目录的必要权限
- 确保 Docker 容器以正确的参数运行
- 尝试手动运行容器以查看任何错误输出
有关详细的安装说明、特定于平台的指南和故障排除,请参阅我们的文档:
配置
标准配置(推荐)
将以下内容添加到您的 claude_desktop_config.json
文件中以使用 UV(推荐以获得最佳性能):
{
"memory": {
"command": "uv",
"args": [
"--directory",
"your_mcp_memory_service_directory", // 例如,“C:\\REPOSITORIES\\mcp-memory-service”
"run",
"memory"
],
"env": {
"MCP_MEMORY_CHROMA_PATH": "your_chroma_db_path", // 例如,“C:\\Users\\John.Doe\\AppData\\Local\\mcp-memory\\chroma_db”
"MCP_MEMORY_BACKUPS_PATH": "your_backups_path" // 例如,“C:\\Users\\John.Doe\\AppData\\Local\\mcp-memory\\backups”
}
}
}
Windows 特定配置(推荐)
对于 Windows 用户,我们建议使用包装器脚本以确保正确安装 PyTorch。 有关详细说明,请参阅我们的Windows 设置指南。
{
"memory": {
"command": "python",
"args": [
"C:\\path\\to\\mcp-memory-service\\memory_wrapper.py"
],
"env": {
"MCP_MEMORY_CHROMA_PATH": "C:\\Users\\YourUsername\\AppData\\Local\\mcp-memory\\chroma_db",
"MCP_MEMORY_BACKUPS_PATH": "C:\\Users\\YourUsername\\AppData\\Local\\mcp-memory\\backups"
}
}
}
包装器脚本将:
- 检查是否已安装并正确配置 PyTorch
- 如果需要,使用正确的索引 URL 安装 PyTorch
- 使用适当的配置运行内存服务器
硬件兼容性
平台 | 架构 | 加速器 | 状态 |
---|---|---|---|
macOS | Apple Silicon (M1/M2/M3) | MPS | ✅ 完全支持 |
macOS | Rosetta 2 下的 Apple Silicon | CPU | ✅ 支持,带有回退 |
macOS | Intel | CPU | ✅ 完全支持 |
Windows | x86_64 | CUDA | ✅ 完全支持 |
Windows | x86_64 | DirectML | ✅ 支持 |
Windows | x86_64 | CPU | ✅ 支持,带有回退 |
Linux | x86_64 | CUDA | ✅ 完全支持 |
Linux | x86_64 | ROCm | ✅ 支持 |
Linux | x86_64 | CPU | ✅ 支持,带有回退 |
Linux | ARM64 | CPU | ✅ 支持,带有回退 |
内存操作
内存服务通过 MCP 服务器提供以下操作:
核心内存操作
store_memory
- 存储带有可选标签的新信息retrieve_memory
- 执行语义搜索以查找相关记忆recall_memory
- 使用自然语言时间表达式检索记忆search_by_tag
- 使用特定标签查找记忆exact_match_retrieve
- 查找具有精确内容匹配的记忆debug_retrieve
- 检索具有相似性分数的记忆
有关标签存储和管理的详细信息,请参阅我们的标签存储文档。
数据库管理
create_backup
- 创建数据库备份get_stats
- 获取内存统计信息optimize_db
- 优化数据库性能check_database_health
- 获取数据库健康指标check_embedding_model
- 验证模型状态
内存管理
delete_memory
- 按哈希删除特定内存delete_by_tag
- 删除具有特定标签的所有记忆cleanup_duplicates
- 删除重复条目
配置选项
通过环境变量配置:
CHROMA_DB_PATH: ChromaDB 存储的路径
BACKUP_PATH: 备份的路径
AUTO_BACKUP_INTERVAL: 备份间隔(以小时为单位)(默认值:24)
MAX_MEMORIES_BEFORE_OPTIMIZE: 自动优化的阈值(默认值:10000)
SIMILARITY_THRESHOLD: 默认相似性阈值(默认值:0.7)
MAX_RESULTS_PER_QUERY: 每次查询的最大结果数(默认值:10)
BACKUP_RETENTION_DAYS: 保留备份的天数(默认值:7)
LOG_LEVEL: 日志记录级别(默认值:INFO)
# 硬件特定的环境变量
PYTORCH_ENABLE_MPS_FALLBACK: 为 Apple Silicon 启用 MPS 回退(默认值:1)
MCP_MEMORY_USE_ONNX: 对仅 CPU 部署使用 ONNX Runtime(默认值:0)
MCP_MEMORY_USE_DIRECTML: 使用 DirectML 进行 Windows 加速(默认值:0)
MCP_MEMORY_MODEL_NAME: 覆盖默认嵌入模型
MCP_MEMORY_BATCH_SIZE: 覆盖默认批处理大小
获取帮助
如果您遇到任何问题:
- 查看我们的故障排除指南
- 查看安装指南
- 对于 Windows 特定问题,请参阅我们的Windows 设置指南
- 通过 Telegram 联系开发者:t.me/doobeedoo
项目结构
mcp-memory-service/
├── src/mcp_memory_service/ # 核心包代码
│ ├── __init__.py
│ ├── config.py # 配置实用程序
│ ├── models/ # 数据模型
│ ├── storage/ # 存储实现
│ ├── utils/ # 实用函数
│ └── server.py # 主 MCP 服务器
├── scripts/ # 辅助脚本
│ ├── convert_to_uv.py # 迁移到 UV 的脚本
│ └── install_uv.py # UV 安装助手
├── .uv/ # UV 配置
├── memory_wrapper.py # Windows 包装器脚本
├── memory_wrapper_uv.py # 基于 UV 的包装器脚本
├── uv_wrapper.py # UV 包装器脚本
├── install.py # 增强的安装脚本
└── tests/ # 测试套件
开发指南
- 带有类型提示的 Python 3.10+
- 使用数据类作为模型
- 模块和函数的三引号文档字符串
- 所有 I/O 操作的 Async/await 模式
- 遵循 PEP 8 样式指南
- 包括新功能的测试
许可证
MIT 许可证 - 有关详细信息,请参阅 LICENSE 文件
致谢
- ChromaDB 团队提供的向量数据库
- Sentence Transformers 项目提供的嵌入模型
- MCP 项目提供的协议规范
联系方式
推荐服务器
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。
mcp-server-qdrant
这个仓库展示了如何为向量搜索引擎 Qdrant 创建一个 MCP (Managed Control Plane) 服务器的示例。
mult-fetch-mcp-server
一个多功能的、符合 MCP 规范的网页内容抓取工具,支持多种模式(浏览器/Node)、格式(HTML/JSON/Markdown/文本)和智能代理检测,并提供双语界面(英语/中文)。
AIO-MCP Server
🚀 集成了 AI 搜索、RAG 和多服务(GitLab/Jira/Confluence/YouTube)的一体化 MCP 服务器,旨在增强 AI 驱动的开发工作流程。来自 Folk。
Knowledge Graph Memory Server
为 Claude 实现持久性记忆,使用本地知识图谱,允许 AI 记住用户的信息,并可在自定义位置存储,跨对话保持记忆。
https://github.com/Streen9/react-mcp
react-mcp 与 Claude Desktop 集成,能够根据用户提示创建和修改 React 应用程序。
MCP Atlassian
适用于 Atlassian Cloud 产品(Confluence 和 Jira)的 Model Context Protocol (MCP) 服务器。此集成专为 Atlassian Cloud 实例设计,不支持 Atlassian Server 或 Data Center 部署。