关于 MCP Memory Server
MCP Memory Server 为需要跨对话保留信息的 LLM 提供 MCP 服务,数据存储在本地。它支持分类检索和使用统计。
主要功能
- 01跨会话持久记忆
- 02为记忆分类和添加标签
- 03自然语言搜索记忆
- 04记忆访问统计
- 05本地文件存储
适用场景
- 01在不同对话间保留项目笔记
- 02通过自然语言查询已存信息
- 03查看记忆使用情况
MCP 相关
它向 MCP 客户端提供存储、搜索、删除和列出记忆,以及获取使用统计的工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
MCP 记忆服务
一个为大语言模型提供持久化记忆能力的模型上下文协议(MCP)服务。存储概念、代码片段、笔记,以及任何你希望 LLM 在不同对话间记住的信息。
功能
- 🧠 持久化记忆 - 信息会在不同 LLM 会话间持续保留
- 🏷️ 智能整理 - 为记忆分类并添加标签,方便检索
- 🔍 自然语言搜索 - 使用对话式查询查找记忆
- 📊 使用情况分析 - 跟踪访问频率最高的记忆
- 🔒 本地存储 - 所有数据都保留在你的设备上
- ⚡ 快速访问 - 通过内存索引快速检索
- 🔧 轻松配置 - 基于环境变量进行配置
- 🛡️ 线程安全 - 通过适当的锁定支持并发访问
快速开始
前提条件
- Go 1.19 或更高版本
- Claude 桌面应用
安装
- 克隆并构建服务:
git clone https://github.com/yourusername/mcp-memory-server.git
cd mcp-memory-server
go build -o mcp-memory-server cmd/server/main.go
- 配置 Claude 桌面应用:
将以下内容添加到 Claude 桌面应用 MCP 配置文件中:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Linux: ~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"memory": {
"command": "/absolute/path/to/your/mcp-memory-server",
"args": [],
"env": {
"MCP_DATA_DIR": "/Users/yourusername/.mcp-memory"
}
}
}
}
请参阅 config.example.json,了解包含所有可用配置选项的完整示例。
- 重启 Claude 桌面应用
现在,记忆服务即可在 Claude 对话中使用!
用法
配置完成后,你可以在 Claude 桌面应用中使用以下命令:
存储信息
Remember this: The scraping project uses Go with Playwright for browser automation.
The architecture follows domain-driven design with repositories and services.
Category: project
Tags: go, scraping, web-automation
搜索记忆
What do you remember about Go web scraping?
按类别列出
Show me all my project memories
获取统计信息
What are my memory usage statistics?
可用工具
MCP 服务向 Claude 提供以下工具:
| 工具 | 描述 | 参数 |
|---|---|---|
remember | 存储新信息 | content(必填)、summary、category、tags |
recall | 搜索已存储的记忆 | query(必填)、category、tags、limit |
forget | 按 ID 删除记忆 | id(必填) |
list_memories | 使用筛选条件列出所有记忆 | category、tags、limit |
memory_stats | 获取使用情况统计信息 | 无 |
配置
使用环境变量配置服务:
存储配置
| 变量 | 描述 | 默认值 |
|---|---|---|
MCP_DATA_DIR | 存储记忆文件的目录 | ~/.mcp-memory |
MCP_MAX_FILE_SIZE | 记忆文件的最大大小(字节) | 104857600(100MB) |
MCP_MAX_STORAGE_SIZE | 存储空间总上限(字节) | 107374182400(100GB) |
异步行为配置
| 变量 | 描述 | 默认值 |
|---|---|---|
MCP_ENABLE_ASYNC | 启用异步保存操作 | true |
MCP_QUEUE_SIZE | 异步保存队列的大小 | 1000 |
MCP_WORKER_THREADS | 用于异步保存的工作线程数 | 2 |
压缩配置
| 变量 | 描述 | 默认值 |
|---|---|---|
MCP_ENABLE_COMPRESSION | 为记忆文件启用 gzip 压缩 | true |
MCP_COMPRESSION_LEVEL | gzip 压缩级别(1-9,9 为最高级别) | 6 |
加密配置
| 变量 | 描述 | 默认值 |
|---|---|---|
MCP_ENABLE_ENCRYPTION | 为记忆文件启用 AES-256-GCM 加密 | false |
MCP_ENCRYPTION_KEY_PATH | 加密密钥文件的路径 | ~/.mcp-memory/encryption.key |
其他配置
| 变量 | 描述 | 默认值 |
|---|---|---|
MCP_LOG_LEVEL | 日志级别(debug、info、warn、error) | info |
MCP_LOG_FORMAT | 日志格式(json、text) | json |
MCP_MAX_RESULTS | 返回的最大搜索结果数 | 20 |
MCP_ENABLE_EMBEDDINGS | 启用语义搜索(未来功能) | false |
MCP_EMBEDDING_MODEL | OpenAI 嵌入模型 | text-embedding-ada-002 |
数据存储
记忆存储在配置的数据目录中:
~/.mcp-memory/
├── memories/ # Individual memory JSON files
├── index/ # Search indexes (future enhancement)
├── logs/ # Application logs
└── encryption.key # Encryption key (if encryption is enabled)
每条记忆包括:
- 基于内容生成的唯一 ID(SHA256 哈希)
- 内容和可选摘要
- 用于整理的类别和标签
- 创建和更新时间戳
- 访问统计信息和上次访问时间
- 自定义元数据
记忆文件:
- 使用 gzip 压缩(可配置)
- 使用 AES-256-GCM 加密(可选)
- 以独立 JSON 文件的形式存储,以确保可靠性
性能调优
可针对不同用例调优服务:
适用于高吞吐量场景:
{
"env": {
"MCP_ENABLE_ASYNC": "true",
"MCP_QUEUE_SIZE": "5000",
"MCP_WORKER_THREADS": "4",
"MCP_COMPRESSION_LEVEL": "1"
}
}
适用于低延迟场景:
{
"env": {
"MCP_ENABLE_ASYNC": "false",
"MCP_ENABLE_COMPRESSION": "false"
}
}
适用于存储受限的环境:
{
"env": {
"MCP_ENABLE_COMPRESSION": "true",
"MCP_COMPRESSION_LEVEL": "9",
"MCP_MAX_STORAGE_SIZE": "1073741824"
}
}
架构
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ Claude LLM │◄──►│ MCP Protocol │◄──►│ Memory Store │
│ │ │ (JSON-RPC) │ │ (File-based) │
└─────────────────┘ └──────────────────┘ └─────────────────┘
│
▼
┌──────────────────┐
│ Local Storage │
│ ~/.mcp-memory/ │
└──────────────────┘
开发
项目结构
mcp-memory-server/
├── cmd/server/ # Main application entry point
├── internal/
│ ├── config/ # Configuration management
│ ├── mcp/ # MCP protocol implementation
│ └── memory/ # Memory storage and retrieval
├── pkg/logger/ # Logging utilities
├── go.mod
└── README.md
从源代码构建
# Clone the repository
git clone https://github.com/yourusername/mcp-memory-server.git
cd mcp-memory-server
# Install dependencies
go mod tidy
# Build
go build -o mcp-memory-server cmd/server/main.go
# Run tests
go test ./...
测试服务
你可以使用 JSON-RPC 手动测试 MCP 服务:
# List available tools
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | ./mcp-memory-server
# Store a memory
echo '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"remember","arguments":{"content":"Test memory","category":"test"}}}' | ./mcp-memory-server
故障排除
服务无法启动:
- 确认二进制文件具有执行权限
- 检查数据目录是否可写
- 查看数据目录中的日志
Claude 无法连接到服务:
- 确保
claude_desktop_config.json中的路径是绝对路径 - 确认服务二进制文件存在且可执行
- 检查 Claude Desktop 日志中的连接错误
- 修改配置后重启 Claude Desktop
记忆无法持久保存:
- 检查数据目录的文件权限
- 确认
MCP_DATA_DIR环境变量设置正确 - 查看服务日志中的错误消息
未来增强功能
- 语义搜索 - 使用向量嵌入提升搜索相关性
- Web 界面 - 基于浏览器的记忆管理
- 导入/导出 - 备份和恢复功能
- 记忆过期 - 自动清理旧记忆
- 加密 - 安全存储敏感信息
- 多用户支持 - 为不同用户提供独立的记忆空间
- 高级搜索 - 布尔查询和筛选器
贡献
欢迎贡献!请随时提交 Pull Request。对于重大更改,请先创建 issue,讨论你希望进行的更改。
- Fork 此仓库
- 创建功能分支(
git checkout -b feature/amazing-feature) - 提交更改(
git commit -m 'Add some amazing feature') - 推送到分支(
git push origin feature/amazing-feature) - 提交 Pull Request
许可证
本项目采用 MIT 许可证授权,详情请参阅 LICENSE 文件。
致谢
- 为 Model Context Protocol 构建
- 旨在与 Claude Desktop 无缝协作
- 灵感源自大模型对话中对持久记忆的需求
支持
如果你遇到问题或有疑问:
- 查看故障排除部分
- 搜索现有的 GitHub issues
- 创建新 issue,并详细描述你的问题
为 MCP 社区倾心打造 ❤️
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。