给你的AI一个在对话之间持续的记忆。 再也不会丢失重要的上下文。
MCP Memory 是一个强大的、基于Elasticsearch的知识图谱系统,它赋予AI模型超出其上下文窗口限制的持久记忆。专为模型上下文协议(MCP)构建,确保您的大语言模型(LLMs)永远记住重要信息,创建更加连贯、个性化且有效的AI对话。
<p align="center"> <img src="https://via.placeholder.com/800x400?text=MCP+Memory+Visualization" alt="MCP Memory Visualization" width="600"> </p>您是否曾遇到过这些与AI助手相关的烦恼?
MCP Memory通过创建一个结构化、可搜索的记忆存储来解决这些问题,该存储可以无限期地保存上下文。现在,您的AI可以建立有意义的长期关系,并在数天、数周甚至数月的交互中保持连贯性。
开始使用非常简单:
# 1. 克隆仓库
git clone https://github.com/mcp-servers/mcp-servers.git
cd mcp-servers/memory
# 2. 安装依赖项
npm install
# 3. 启动Elasticsearch(使用Docker)
npm run es:start
# 注意:如果您希望使用自己的Elasticsearch安装,
# 设置ES_NODE环境变量指向您的Elasticsearch实例
# 4. 构建项目
npm run build
MCP Memory旨在与Claude Desktop无缝协作,为所有对话提供持久记忆:
复制并配置启动脚本:
仓库包含一个launch.example文件,您可以简单复制:
# 复制示例启动文件
cp launch.example launch.sh
# 编辑launch.sh以添加您的Groq API密钥
# 这是智能记忆检索所需的
nano launch.sh # 或使用您喜欢的编辑器
将脚本设为可执行:
chmod +x launch.sh
在Claude Desktop中添加命令:
验证连接:
有关完整的示例和视觉指南,请参阅在线的Claude Desktop MCP服务器设置指南。
MCP Memory创建了一个结构化的知识图谱,其中:
当集成到LLM中时,系统会自动:
对话1:初始信息
用户:我女儿的名字叫Emma,她下个月就8岁了。
Claude:太棒了!Emma下个月就8岁了。你有什么特别的计划吗?
(幕后操作:Claude将“Emma”存储为类型为“人”的实体,并记录她的年龄和生日时间)
对话2:几天或几周后
用户:我在考虑送什么礼物。
Claude:如果你正在寻找Emma 8岁生日的礼物想法,你考虑过她的当前兴趣是什么?在那个年纪,许多孩子喜欢创意物品、书籍或教育游戏。
(幕后操作:Claude检索了实体“Emma”,她的年龄以及生日即将到来的事实)
对话3:生日之后
用户:周六的派对进行得很顺利!
Claude:很高兴Emma的8岁生日派对在周六成功举行!她喜欢收到的礼物吗?
(幕后操作:Claude更新了关于Emma的观察,指出她的生日派对是在周六举行的,并且很成功)
当用户提到一些重要的事情时,代理:
当用户提到与存储的信息相关的事情时,代理:
这一切都是自动发生的——用户只需与助手进行正常的对话,而记忆系统则在幕后工作,维护跨会话的上下文。
MCP Memory包括智能的实体创建和更新处理:
MCP Memory包括一个全面的管理CLI,用于维护您的知识图谱:
# 搜索记忆
node dist/admin-cli.js search "Emma 生日"
# 查看特定实体的详细信息
node dist/admin-cli.js entity "Emma"
# 备份整个记忆系统
node dist/admin-cli.js backup memory-backup.json
将知识组织成不同的领域:
# 创建一个特定项目的记忆区域
node dist/admin-cli.js zones add client-acme "ACME Corp项目知识"
# 将数据导入该区域
node dist/admin-cli.js import acme-data.json client-acme
您还可以通过自然对话指示助手将记忆组织到不同的区域:
创建和使用记忆区域
用户:Claude,你能创建一个名为“work-project”的新记忆区域来存储关于我当前工作的项目信息吗?
Claude:我已经创建了一个名为“work-project”的新记忆区域。我会在这个区域存储与您的工作项目相关的信息。你想让我记住关于这个项目的什么信息?
用户:项目的截止日期是3月15日,我们正在建设一个新的库存管理系统。
Claude:我已经在“work-project”区域存储了关于您的工作项目的3月15日截止日期和您正在建设库存管理系统的相关信息。我会将未来关于此项目的任何信息组织在这个区域。
(幕后操作:Claude创建了一个新的记忆区域,并将项目信息具体存储在该区域)
检索特定区域的信息
用户:你记得我的工作项目吗?
Claude:根据我们讨论过的关于您的工作项目,我记得您正在建设一个库存管理系统,截止日期是3月15日。
(幕后操作:Claude专门在“work-project”区域搜索相关信息)
切换记忆区域
用户:Claude,我们现在切换到我的“烹饪”记忆区域。我想讨论一个食谱。
Claude:我已经切换到了您的“烹饪”记忆区域。今天你想讨论哪个食谱?
(幕后操作:Claude更新了其记忆上下文,优先搜索“烹饪”区域)
用户:上个月告诉你的那道意大利面是什么?
Claude:根据我们在“烹饪”区域之前的对话,你分享了一道使用培根、鸡蛋、佩科里诺奶酪和黑胡椒的卡邦纳拉食谱。你提到这是你在罗马旅行时学到的家庭最爱。
(幕后操作:Claude专门在“烹饪”区域搜索这些信息)
通过将记忆组织成不同的区域,对话变得更加相关和专注于当前的话题或项目。
利用Elasticsearch的强大搜索功能:
# 模糊搜索(即使有拼写错误也能找到“会议”)
node dist/admin-cli.js search "会议笔记"
# 区域特定搜索
node dist/admin-cli.js search "预算" client-acme
欢迎贡献!详情请参阅CONTRIBUTING.md。
MIT