🚀 A-MEM MCP 服务器
本项目是一个基于人工智能辅助软件工程的实验项目,旨在为Claude Code提供一个持久的、具备上下文感知能力的内存系统,解决在多会话和多项目中维护复杂代码库持久理解的难题。
🚀 快速开始
🚀 一键安装
git clone git@github.com:nixlim/amem_mcp.git
cd amem_mcp
./scripts/install.sh
安装程序将自动完成以下操作:
- ✅ 检查先决条件和依赖项
- ✅ 检测您的Claude安装(Code/Desktop)
- ✅ 清理现有的容器和进程
- ✅ 使用Docker启动A-MEM服务
- ✅ 配置Claude MCP集成并正确处理API密钥
- ✅ 测试安装并验证连接
- ✅ 确保所有内存操作正常工作
手动安装
如果您更喜欢手动设置:
- 先决条件:Docker、Docker Compose、Go 1.23+、OpenAI API密钥
- 设置:
cp .env.example .env
并添加您的API密钥
- 启动:
docker-compose up -d && make build
- 配置:请遵循 安装指南
📚 文档
- 快速入门指南 - 5分钟内启动运行
- 安装指南 - 全面的设置说明
- MCP配置指南 - Claude集成详情
验证
安装完成后,验证A-MEM是否正常工作:
docker-compose ps
./scripts/validate_installation.sh
✨ 主要特性
核心内存系统
- 内存创建:存储带有AI生成的关键字、标签和嵌入的代码片段
- 内存检索:使用向量相似度搜索进行排名和过滤
- 内存进化:由AI驱动的分析来更新和优化内存网络
- MCP集成:与Claude Code兼容的JSON-RPC 2.0服务器
高级功能(第二阶段)
- 真实嵌入:Sentence-transformers和OpenAI嵌入服务
- 智能进化:自动进行内存网络优化
- 提示工程:基于模板的大语言模型提示管理
- 监控与指标:全面的Prometheus可观测性
- 任务调度:基于Cron的自动维护
- 多大语言模型支持:LiteLLM代理以实现回退和模型灵活性
- 向量存储:ChromaDB用于可扩展的相似度搜索
📦 安装指南
./scripts/install.sh
这将启动Docker容器并构建服务器。
应该
将MCP配置追加到Claude Desktop(会备份现有配置,如果需要,有恢复脚本) - “在我的机器上可以正常工作” (TM)
重启Claude Desktop,它应该会出现在MCP服务器列表中。如有任何问题,请在此处提出 :)
💻 使用示例
基础用法
1. store_coding_memory
存储带有AI分析的编码内存。
{
"tool": "store_coding_memory",
"arguments": {
"content": "function fibonacci(n) { return n <= 1 ? n : fibonacci(n-1) + fibonacci(n-2); }",
"project_path": "/projects/algorithms",
"code_type": "javascript",
"context": "Recursive implementation of Fibonacci sequence"
}
}
2. retrieve_relevant_memories
使用向量相似度搜索相关内存。
{
"tool": "retrieve_relevant_memories",
"arguments": {
"query": "How to implement fibonacci efficiently?",
"max_results": 5,
"min_relevance": 0.7
}
}
3. evolve_memory_network
触发内存网络进化(第二阶段功能)。
{
"tool": "evolve_memory_network",
"arguments": {
"trigger_type": "manual",
"scope": "recent",
"max_memories": 100
}
}
📚 详细文档
配置
配置通过YAML文件和环境变量进行管理:
config/development.yaml
- 开发设置
config/production.yaml
- 生产设置
.env
- 环境变量(API密钥、覆盖设置)
关键配置部分:
- server:端口、日志记录、请求限制
- chromadb:向量数据库连接
- litellm:大语言模型代理设置和回退
- evolution:内存进化调度
- monitoring:指标和跟踪
架构
┌─────────────────┐ ┌──────────────┐ ┌──────────────┐
│ Claude Code │───▶│ MCP Server │───▶│ Memory │
│ │ │ │ │ System │
└─────────────────┘ └──────────────┘ └──────┬───────┘
│
▼
┌──────────────┐
│ LiteLLM │
│ Analysis │
└──────┬───────┘
│
▼
┌──────────────┐
│ ChromaDB │
│ Vector Store │
└──────────────┘
开发
项目结构
├── cmd/server/ # 主服务器入口点
├── pkg/
│ ├── config/ # 配置管理
│ ├── mcp/ # MCP协议处理程序
│ ├── memory/ # 核心内存系统
│ ├── models/ # 数据模型和架构
│ └── services/ # 外部服务集成
├── config/ # 配置文件
├── prompts/ # 大语言模型提示模板
└── docker/ # Docker配置
运行测试
go test ./...
构建
go build -o amem-server cmd/server/main.go
CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o amem-server cmd/server/main.go
监控
服务器在端口9090上公开Prometheus指标:
- 内存操作计数
- 大语言模型请求延迟
- 向量搜索持续时间
- 错误率
访问指标地址:http://localhost:9090/metrics
故障排除
常见问题
- ChromaDB连接失败:
- 确保ChromaDB正在运行:
docker-compose ps chromadb
- 检查配置中的URL:
chromadb.url
- 大语言模型API错误:
- 验证
.env
文件中的API密钥
- 检查速率限制和配额
- 查看配置中的回退模型
- 内存存储错误:
- 检查ChromaDB日志:
docker-compose logs chromadb
- 验证集合初始化
日志
查看服务器日志:
docker-compose logs amem-server
./amem-server -log-level debug
贡献
- 分叉仓库
- 创建功能分支
- 进行带测试的更改
- 提交拉取请求
许可证
本项目采用MIT许可证,详情请参阅 LICENSE 文件。
路线图
- 第一阶段(当前):具备核心内存操作的最小可行产品
- 第二阶段:内存进化和优化
- 第三阶段:高级调度和监控 // TODO: 更新
- 第四阶段:多用户支持和扩展
🔧 技术细节
项目背景
本项目名称已更改为 zetmem
,可在此处找到:
https://github.com/nixlim/zetmem
这是一个关于人工智能辅助软件工程的实验项目。目前,人类尚未直接编写任何代码(无论如何,还没有)。使用时请自行承担风险 :)
解决的问题
这个基于Zettlekasten的模型上下文协议内存服务器解决了在使用Claude Code和Claude Desktop等工具时,跨多个会话和项目维护对复杂代码库的持久、不断发展的理解这一挑战。传统方法通常会导致碎片化、非持久的记忆,每次会话都会重置,使得构建和搜索全面的知识库变得困难。该服务器通过创建一个“活的”内存系统来解决这个问题,该系统会随着新笔记和信息的添加而自我更新,自动发现关系和连接,以促进更深入的洞察和无缝的连续性。
当前状态
最新版本:v1.1.0 - 工作区管理 ✅
新功能:
- ✅ 工作区管理:按文件系统路径或用户定义的名称对内存进行逻辑分组
- ✅ 三个新的MCP工具:workspace_init、workspace_create、workspace_retrieve
- ✅ 向后兼容性:从基于项目的组织无缝迁移
- ✅ 智能默认设置:自动检测和初始化工作区
近期修复:
- ✅ 内存存储与检索:修复了错误报告和相关性计算问题
- ✅ 嵌入集成:解决了维度不匹配和服务连接问题
- ✅ OpenAI API集成:修复了关键的认证问题
- ✅ MCP协议合规性:解决了JSON-RPC通知处理问题
- ✅ 容器管理:增强了清理和进程管理
- ✅ Claude Desktop集成:改进了配置处理
致谢
本MCP服务器是基于以下论文构建的:
@article{xu2025mem,
title={A-mem: Agentic memory for llm agents},
author={Xu, Wujiang and Liang, Zujie and Mei, Kai and Gao, Hang and Tan, Juntao and Zhang, Yongfeng},
journal={arXiv preprint arXiv:2502.12110},
year={2025}
}
论文PDF链接:https://arxiv.org/pdf/2502.12110v1
论文的GitHub链接:https://github.com/WujiangXu/A-mem
论文作者也有他们自己的系统实现(我认为不是MCP服务器):
https://github.com/WujiangXu/A-mem-sys
本项目已能正常工作,有测试、启动脚本和本地Docker。Claude Desktop集成正常,Claude Code也应如此。我没有编写一行代码,我与人工智能协作,我负责导航,它负责驱动。