Back to MCP directory
publicPublicdnsLocal runtime

amem_mcp

Zetmem是一个基于Zettlekasten方法的AI辅助记忆服务器项目,旨在为Claude等AI编程工具提供持久化的上下文记忆系统,支持跨会话和项目的代码记忆存储、检索与智能演化。

article

README

🚀 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密钥
  • ✅ 测试安装并验证连接
  • ✅ 确保所有内存操作正常工作

手动安装

如果您更喜欢手动设置:

  1. 先决条件:Docker、Docker Compose、Go 1.23+、OpenAI API密钥
  2. 设置cp .env.example .env 并添加您的API密钥
  3. 启动docker-compose up -d && make build
  4. 配置:请遵循 安装指南

📚 文档

验证

安装完成后,验证A-MEM是否正常工作:

# 检查服务
docker-compose ps

# 验证安装
./scripts/validate_installation.sh

# 在Claude中测试
# 询问Claude:"What tools do you have available?"
# 您应该看到:store_coding_memory, retrieve_relevant_memories, evolve_memory_network

✨ 主要特性

核心内存系统

  • 内存创建:存储带有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

故障排除

常见问题

  1. ChromaDB连接失败
    • 确保ChromaDB正在运行:docker-compose ps chromadb
    • 检查配置中的URL:chromadb.url
  2. 大语言模型API错误
    • 验证 .env 文件中的API密钥
    • 检查速率限制和配额
    • 查看配置中的回退模型
  3. 内存存储错误
    • 检查ChromaDB日志:docker-compose logs chromadb
    • 验证集合初始化

日志

查看服务器日志:

# Docker部署
docker-compose logs amem-server

# 直接执行
./amem-server -log-level debug

贡献

  1. 分叉仓库
  2. 创建功能分支
  3. 进行带测试的更改
  4. 提交拉取请求

许可证

本项目采用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也应如此。我没有编写一行代码,我与人工智能协作,我负责导航,它负责驱动。

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client