克劳德内存MCP服务器
一个功能齐全的MCP服务器,使用RAG(检索增强生成)在会话之间为Claude提供持久内存。保持你发展之旅的“灵魂”。
特性
- 语义记忆 -使用向量相似性搜索存储和检索见解
- 自动检测 -自动检测内存类型、标签和重要性
- 记忆衰退 -除非经常访问,否则旧记忆会自然消失
- 会话跟踪 -按会话对记忆进行分组,并自动摘要
- 项目隔离 -按项目将记忆分开
- 去重 -防止存储重复信息
- CLI管理 -管理克劳德之外的记忆
- 导入/导出 -备份和恢复您的记忆库
建筑
┌─────────────────────────────────────────────────────────────────┐
│ Claude Code │
└─────────────────────────┬───────────────────────────────────────┘
│ MCP Protocol
┌─────────────────────────▼───────────────────────────────────────┐
│ MCP Server │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────────┐ │
│ │ Tools │ │ Resources │ │ Intelligence │ │
│ │ - remember │ │ - context │ │ - auto-type detection │ │
│ │ - recall │ │ - project │ │ - auto-tagging │ │
│ │ - forget │ │ │ │ - importance scoring │ │
│ │ - ... │ │ │ │ - session summarization │ │
│ └──────┬──────┘ └──────┬──────┘ └────────────┬────────────┘ │
└─────────┼────────────────┼──────────────────────┼───────────────┘
│ │ │
┌─────────▼────────────────▼──────────────────────▼───────────────┐
│ Data Layer │
│ ┌─────────────────────┐ ┌──────────────────────────────────┐ │
│ │ Local Embeddings │ │ ChromaDB │ │
│ │ (all-MiniLM-L6-v2) │ │ - memories collection │ │
│ │ │ │ - sessions collection │ │
│ │ ~23MB model │ │ - projects collection │ │
│ │ Runs on CPU │ │ │ │
│ └─────────────────────┘ └──────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘快速开始
1.安装依赖项
cd C:\DEV\RAG-Context
npm install
npm run build2.启动ChromaDB
选项A:Docker(推荐)
docker run -d -p 8000:8000 -v chroma-data:/chroma/chroma chromadb/chroma选项B:Python
pip install chromadb
.\start-chroma.ps13.配置克劳德代码
添加到 ~/.claude/settings.json:
{
"mcpServers": {
"memory": {
"command": "node",
"args": ["C:\\DEV\\RAG-Context\\dist\\index.js"]
}
}
}重新启动克劳德代码。
MCP工具参考
内存操作
| 工具 | 说明 |
|---|---|
remember | 存储具有类型、标签、重要性自动检测功能的内存 |
recall | 跨记忆的语义搜索 |
get_memory | 按ID检索全部内存 |
update_memory | 修改现有内存 |
forget | 删除内存 |
list_memories | 使用过滤器浏览回忆 |
memory_stats | 查看统计数据 |
会话管理
| 工具 | 说明 |
|---|---|
start_session | 开始新会话(启动时自动调用) |
end_session | 使用可选的自动摘要结束会话 |
项目管理
| 工具 | 说明 |
|---|---|
set_project | 设置当前项目上下文 |
list_projects | 查看所有项目 |
公用事业
| 工具 | 说明 |
|---|---|
find_similar | 查找与给定内容相似的记忆 |
merge_memories | 整合重复的记忆 |
memory_types | 列出可用内存类型 |
内存类型
| 类型 | 描述 | 由自动检测 |
|---|---|---|
decision | 架构/设计决策 | “决定”、“选择”、“因为” |
pattern | 代码模式和约定 | “模式”、“总是”、“从不” |
learning | 发现错误、发现问题、洞察 | “学到”、“发现”、“结果” |
context | 项目背景、要求 | (默认) |
preference | 用户工作流首选项 | “首选”、“我的方式” |
todo | 未来的工作,跟进 | “待办事项”,“稍后”,“应该” |
reference | 外部文档、链接 | URL、“文档”、“参考” |
summary | 自动生成的会话摘要 | (系统生成) |
自动检测标签
系统自动检测并应用相关标签:
architecture, api, database, auth, performance, security, testing, deployment, refactor, bugfix, feature, config, documentation, dependencies
CLI使用情况
管理克劳德之外的记忆:
# After building
npm run cli --
# Or directly
node dist/cli.js
# Commands:
node dist/cli.js search "authentication" # Semantic search
node dist/cli.js list 20 # List recent memories
node dist/cli.js stats # Show statistics
node dist/cli.js get mem_123456_abc123 # Get full memory
node dist/cli.js delete mem_123456_abc123 # Delete memory
node dist/cli.js export backup.json # Export all memories
node dist/cli.js import backup.json # Import memories
node dist/cli.js projects # List projects
node dist/cli.js set-project my-app # Set current project
node dist/cli.js config # Show configuration配置
配置文件: ~/.claude-memory/config.json
{
"chroma_host": "localhost",
"chroma_port": 8000,
"embedding_model": "Xenova/all-MiniLM-L6-v2",
"default_importance": 3,
"max_context_memories": 10,
"context_relevance_threshold": 0.3,
"auto_summarize_sessions": true,
"session_summary_min_memories": 3,
"enable_memory_decay": true,
"decay_half_life_days": 30,
"current_project": "my-project",
"projects": {}
}配置选项
| 选项 | 默认值 | 描述 |
|---|---|---|
chroma_host | localhost | ChromaDB主机 |
chroma_port | 8000 | ChromaDB端口 |
embedding_model | Xenova/all-MiniLM-L6-v2 | 局部嵌入模型 |
default_importance | 3 | 默认重要性(1-5) |
max_context_memories | 10 | 自动上下文的最大内存 |
context_relevance_threshold | 0.3 | 自动上下文的最小相似性 |
enable_memory_decay | true | 启用基于时间的衰减 |
decay_half_life_days | 30 | 距离记忆相关性减半还有几天 |
auto_summarize_sessions | true | 生成会话摘要 |
记忆衰退
记忆会随着时间的推移而自然衰退,模拟人类记忆:
- 基底衰变:相关性每30天减半(可配置)
- 重要性提升:重要性越高的记忆衰减越慢
- 访问权限提升:经常访问的记忆仍然具有相关性
公式: score = base_score × decay_factor × importance_boost + access_boost
用法示例
在开发过程中
You: "Remember that we decided to use PostgreSQL because of its JSON support"
Claude: [Calls remember tool] → Saved as DECISION, tags: [database], importance: 4
You: "What did we decide about the database?"
Claude: [Calls recall tool] → Found: "We decided to use PostgreSQL..."
You: "Remember: always use camelCase for API responses"
Claude: [Calls remember tool] → Saved as PATTERN, tags: [api], importance: 3项目切换
You: "Set project to backend-api"
Claude: [Calls set_project] → Set current project to: backend-api
You: "What patterns have we established?"
Claude: [Calls recall with type filter] → Shows patterns for backend-api only会话摘要
You: "End this session"
Claude: [Calls end_session] →
Session summary:
- Decisions (2): PostgreSQL for database, JWT for auth
- Patterns (1): camelCase API responses
- Learnings (1): Connection pooling prevents timeout issues数据存储
| 数据 | 位置 |
|---|---|
| 嵌入模型 | ~/.cache/huggingface/ (约23MB,首次运行时下载) |
| 配置 | ~/.claude-memory/config.json |
| 矢量数据 | ChromaDB(使用Docker卷或 --path) |
备份与恢复
# Export all memories
node dist/cli.js export memories-backup-2024.json
# Import to new installation
node dist/cli.js import memories-backup-2024.json故障排除
与ChromaDB的“连接被拒绝”
- 确保ChromaDB正在运行:
docker ps或检查chroma run是活跃的 - 检查端口:默认为8000
首次启动缓慢
- 正常:首次运行时嵌入模型下载(~23MB)
- 后续启动速度很快
搜索中找不到内存
- 检查项目筛选器:默认情况下,内存是项目范围的
- 降低配置中的相关性阈值
- 检查内存是否自动衰减(使用
includeDecayed: true)
发展
# Watch mode for development
npm run dev
# Run MCP server directly
npm start
# Run CLI
npm run cli -- stats许可证
麻省理工学院
