memento-mcp
为 Claude/Cursor 等 MCP 客户端提供持久化知识图谱记忆,让 AI 跨会话记住人物、
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
为 Claude/Cursor 等 MCP 客户端提供持久化知识图谱记忆,让 AI 跨会话记住人物、
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
你一定有过这样的经历:让 AI 助手分析一个复杂项目,聊到一半时它突然"失忆"了——之前提到的关键人物、技术栈、项目背景,全都不记得了。每次对话都是一次"零基础起步"。这对于需要跨会话积累知识的 AI 应用来说,简直是致命的短板。
Memento MCP 正是为解决这一痛点而生。它为任何支持 Model Context Protocol(MCP)的 AI 客户端(如 Claude Desktop、Cursor、GitHub Copilot)提供了一套持久化、可追溯的知识图谱记忆系统。让 AI 不仅能在单次对话中保持上下文,还能跨会话、跨任务地记住关键实体、关系和观察结果。
图1:Memento MCP 项目 Logo
Memento MCP 由独立开发者 Gannon Hall(GitHub @gannonh)于 2025 年 3 月创建,采用 MIT 许可证开源。项目定位为"MCP 协议的知识图谱记忆后端",解决了 LLM 长期记忆这一行业级难题。
在 MCP 生态中,Memento 的出现填补了一个关键空白:此前 MCP 协议定义了一套工具调用标准,但没有官方的记忆存储方案。开发者要么自行实现简单的键值存储,要么干脆放弃持久化。Memento MCP 以 Neo4j 图数据库 + OpenAI 向量嵌入的组合,提供了一套生产级的知识图谱记忆解决方案,并在 GitHub 上迅速积累到 422 颗星,获得了 Smithery AI 平台的官方推荐。
Memento MCP 的底层设计围绕两大核心概念:实体(Entity) 和 关系(Relation)。
实体是知识图谱中的节点,每个实体包含:
John_Smithperson、organization、event关系是有向连接边,定义两个实体之间的关联:
works_at、created_by)这种设计比简单的键值存储强大得多。当你说"帮我记住 John 在 Anthropic 工作",Memento 会创建一个 John_Smith 实体(类型 person)和一个 Anthropic 实体(类型 organization),再用一条 works_at 关系将它们连接起来——未来 AI 可以顺着关系图谱进行复杂推理,而不仅仅是关键词匹配。
从代码结构来看,Memento MCP 是一个典型的 TypeScript 工程:
src/
├── KnowledgeGraphManager.ts # 核心管理器,所有知识图谱操作入口
├── index.ts # CLI 入口,初始化存储和嵌入服务
├── server/
│ ├── setup.ts # MCP Server 初始化
│ └── handlers/ # 工具调用处理器(create_entities, search_nodes等)
├── embeddings/ # 向量嵌入层
│ ├── EmbeddingService.ts # 嵌入服务接口
│ ├── OpenAIEmbeddingService.ts # OpenAI text-embedding-3-small 实现
│ ├── EmbeddingJobManager.ts # 嵌入任务队列(带速率限制)
│ └── EmbeddingServiceFactory.ts # 工厂模式创建嵌入服务
├── storage/
│ ├── neo4j/ # Neo4j 存储驱动
│ └── VectorStoreFactory.ts # 向量存储工厂
├── types/ # 类型定义(Entity, Relation, VectorStore等)
└── utils/ # 工具函数(FS操作、日志)
核心技术栈:
@modelcontextprotocol/sdk 1.11.0,标准化的 MCP Server 实现text-embedding-3-small(1536 维,cosine 相似度)Memento MCP 暴露的核心工具(LLM 可调用的 MCP 工具):
| 工具名称 | 功能描述 |
|---|---|
create_entities | 创建新实体及其向量嵌入 |
read_graph | 读取图谱片段 |
create_relations | 创建实体间关系 |
add_observations | 为实体添加观察记录 |
delete_entities | 删除实体 |
delete_observations | 删除观察记录 |
delete_relations | 删除关系 |
search_nodes | 语义搜索实体 |
open_nodes | 读取指定实体的完整信息 |
get_entity_history | 获取实体版本历史 |
get_relation_history | 获取关系版本历史 |
get_relation | 查询特定关系详情 |
这套工具集覆盖了知识图谱的全生命周期操作——CRUD + 历史追踪 + 语义搜索,功能相当完整。
Memento MCP 的部署体验在开源 MCP 项目中属于中上水平:
优点:
docker-compose.yml,Neo4j 数据库一键启动,数据持久化到本地卷.env.example 清晰标注了必需的环境变量局限:
npm run neo4j:init部署流程(简化版):
git clone https://github.com/gannonh/memento-mcp.git
cd memento-mcp
cp example.env .env # 填入 OPENAI_API_KEY
docker-compose up -d neo4j # 启动 Neo4j
npm install && npm run build
npm run neo4j:init # 初始化 Neo4j schema
接入 Claude Desktop 只需在 claude_desktop_config.json 中添加 server 配置即可。
最适用的场景:
局限性:
Memento MCP 的出现反映了 AI 应用架构的一个重要趋势:记忆层(Memory Layer)的独立化。此前,AI 的上下文全靠 prompt 拼接,记忆能力受限于 context window 大小。Memento 代表的知识图谱记忆方案,通过将"记忆"外部化到专业数据库,让 AI 可以突破 context 限制,拥有近乎无限的长期记忆。
从 GitHub 422 星的增长势头来看,社区对这类工具的需求非常旺盛。随着 MCP 协议的普及(Anthropic 主推),预计会出现更多类似的知识记忆中间件,而 Memento MCP 凭借其干净的架构设计和 Neo4j 的成熟生态,已经在这个细分领域占据了先发优势。
分析时间:2026-06-25 | 数据来源:GitHub API + 源码分析 | 部署难度:中等(需要 Docker + Neo4j + OpenAI Key)