🚀 A-MEM MCP 服務器
A-MEM MCP 服務器是一個基於 AI 輔助軟件工程的實驗項目,旨在解決在使用 Claude Code 和 Claude Desktop 等工具時,跨多個會話和項目維護複雜代碼庫持久、不斷發展的理解這一挑戰。它創建了一個“活的”內存系統,隨著新筆記和信息的添加自動更新,促進更深入的洞察和無縫的連續性。
🚀 快速開始
🚀 一鍵安裝
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
- 配置:遵循 安裝指南
📚 文檔
驗證
安裝完成後,驗證 A-MEM 是否正常工作:
docker-compose ps
./scripts/validate_installation.sh
✨ 主要特性
核心內存系統
- 內存創建:存儲帶有 AI 生成的關鍵字、標籤和嵌入的代碼片段
- 內存檢索:使用向量相似性搜索進行排名和過濾
- 內存演進:由 AI 驅動的分析來更新和優化內存網絡
- MCP 集成:與 Claude Code 兼容的 JSON-RPC 2.0 服務器
高級功能(第二階段)
- 真實嵌入:使用 sentence-transformers 和 OpenAI 嵌入服務
- 智能演進:自動優化內存網絡
- 提示工程:基於模板的大語言模型提示管理
- 監控與指標:全面的 Prometheus 可觀測性
- 任務調度:基於 Cron 的自動維護
- 多 LLM 支持:使用 LiteLLM 代理進行回退和模型靈活切換
- 向量存儲:使用 ChromaDB 進行可擴展的相似性搜索
📦 安裝指南
項目名稱已更改為 zetmem
,可在此處找到:
https://github.com/nixlim/zetmem
運行以下命令開始安裝:
./scripts/install.sh
這將啟動 Docker 容器並構建服務器。該腳本應該
會將 MCP 配置附加到 Claude Desktop(會備份現有配置,如果需要,有恢復腳本) - “在我的機器上能正常工作” (TM)。
重新啟動 Claude Desktop,它應該會出現在 MCP 服務器列表中。如有任何問題,請在此處提出。
💻 使用示例
基礎用法
以下是使用 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
貢獻
- 分叉倉庫
- 創建特性分支
- 進行更改並編寫測試
- 提交拉取請求
🔧 技術細節
技術描述詳見 SYSTEM_DOCUMENTATION.md。
📄 許可證
本項目採用 MIT 許可證,詳情請參閱 LICENSE 文件。
路線圖
- 第一階段(當前):具備核心內存操作的最小可行產品
- 第二階段:內存演進和優化
- 第三階段:高級調度和監控 // TODO: 更新
- 第四階段:多用戶支持和擴展
致謝
本 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 的集成均已正常工作。整個項目我沒有編寫一行代碼,而是與 AI 協作,我負責導航,AI 負責編碼。