MemoryMesh
MCP 知识图谱记忆服务器,让 AI 持久记住 RPG 世界中的人物、地点和关系
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
MCP 知识图谱记忆服务器,让 AI 持久记住 RPG 世界中的人物、地点和关系
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下:你正在和 AI 玩一个史诗级的文字 RPG 游戏,剧情跨越 50 个章节、NPC 超过 200 个、每条支线任务相互交织。普通的 AI 对话系统每次都像"金鱼记忆"——聊完第三章,它已经完全忘了第一章里你救了哪只受伤的独角兽。但 MemoryMesh 不一样:它为 AI 模型配备了一个持久化的知识图谱记忆服务器,让 AI 能够跨会话、跨长文本持续"记住"结构化的上下文信息。
MemoryMesh 起源于 Model Context Protocol(MCP) 官方服务器仓库中的知识图谱记忆服务器,2024 年 12 月由独立开发者 CheMiguel23 分叉并持续迭代,当前版本为 v0.3.0(2026年1月发布)。v0.3.0 完成了对 MCP SDK 的大版本升级(从 v1.0.4 → v1.25.2),实现了对 2025 年 11 月 MCP 规范的完全兼容,可无缝接入 Claude Desktop、ChatGPT、Cursor、VS Code 等主流 AI 客户端。
MemoryMesh 的本质是一个本地知识图谱服务器,通过 MCP 协议与 AI 客户端通信。在 MemoryMesh 中,数据以**节点(Node)和边(Edge)**的图结构存储:
name(唯一标识符)、nodeType(类型,如 npc、location)、metadata(描述性字符串数组)和 weight(关系强度,0-1之间)四个核心字段。from(源节点)、to(目标节点)和 edgeType(关系类型,如 owns、located_in)三个字段。这种图结构天然适合 RPG 和叙事类应用——"Aragorn"是一个 player_character 节点,它和 "Andúril"(artifact)之间有一条 owns 类型的边,权重为 1(最强关系)。AI 每次调用 MCP 工具时,MemoryMesh 自动维护这个知识图谱的一致性,并在数据不合理时报错引导 AI 修正。
MemoryMesh 的代码架构采用了经典的分层领域设计(Layered Architecture),共 6 大模块:
ApplicationManager,协调 GraphManager(图操作)、SearchManager(检索)、TransactionManager(事务管理)三个专业管理器,所有业务逻辑的入口点。Graph(图数据结构)、Node、Edge、GraphValidator(图验证)、MetadataProcessor(元数据处理)、SchemaBuilder(Schema 构建器)——完全不依赖外部框架,是项目的"业务心脏"。JsonLineStorage(持久化存储)和 EventEmitter(事件系统),未来可扩展支持数据库、向量库等。ToolsRegistry 统一管理所有 MCP 工具,DynamicSchemaToolRegistry 根据用户自定义 Schema 动态生成 CRUD 工具。operations.ts、tools.ts)和通用工具函数(如错误格式化 responseFormatter.ts)。依赖注入通过 TypeScript 构造器实现,ApplicationManager 接受 IStorage 接口注入,默认使用 JsonLineStorage,解耦清晰。模块之间通过 index.ts barrel export 控制公开接口,避免暴露内部实现细节。
MemoryMesh 最具特色的设计是动态 Schema 驱动工具生成。用户只需在 dist/data/schemas/ 目录下放置 .schema.json 文件,MemoryMesh 启动时自动解析每个 Schema,并据此生成对应的 MCP 工具。
内置了丰富的示例 Schema,覆盖 RPG 场景的典型实体:玩家角色(player_character)、NPC、物品(artifact)、任务(quest)、阵营(faction)、技能(skills)、位置(location)、库存(inventory)、货币(currency)、时间(temporal)、交通工具(transportation)共 11 类。用户也可以完全自定义 Schema,通过 name、relationships(定义边类型约束)、required(必需字段)和 properties(属性配置)构建自己的领域模型。Schema 变更时 MemoryMesh 会自动重建对应的 MCP 工具,真正做到"改 Schema 即改 API"。
项目采用 TypeScript 开发(tsconfig.json 严格模式),主要依赖:
@modelcontextprotocol/sdk(v1.25.2):MCP 协议实现,MemoryMesh 的立身之本zod(^3.25.0):运行时 Schema 验证库,MCP SDK 的强制依赖开发依赖方面,使用 Vitest 作为测试框架(支持 V8 代码覆盖率,配置在 vitest.config.ts),配合 TypeScript 编译、 ts-node(开发调试)和 copyfiles(构建资源拷贝)。Node.js 最低版本要求 18,支持 Alpine 轻量镜像。
MemoryMesh 提供两种运行方式:
方式一:npm 部署(推荐开发者)
git clone https://github.com/CheMiguel23/MemoryMesh.git
cd MemoryMesh
npm install
npm run build
npm start # 标准启动
npm run start:claude # Claude Desktop 专用启动(自动配置 MCP 路径)
方式二:Docker 容器(推荐快速体验)
docker build -t memorymesh .
docker run memorymesh
Dockerfile 采用多阶段构建:第一阶段 node:18-alpine 完成 npm install + TypeScript 编译,第二阶段 node:18-alpine 运行时仅 npm ci --omit=dev,最终镜像极简。不支持 docker-compose,无 Web UI,不消耗 GPU 资源,512MB RAM 即可流畅运行。
MemoryMesh 包含完整的单元测试套件(Vitest),测试覆盖图验证器、边权重工具、Schema 构建器、响应格式化器、MCP 合规性等核心模块。v0.3.0 升级继承了大量 MCP SDK 的安全修复,包括正则表达式 DoS 防护和 Header 验证加固。同时项目已通过 MseeP.ai 安全审计,审计报告徽章公开于 README 顶部。
MemoryMesh 最适合以下场景:
需要注意的是:MemoryMesh 本身不是一个 AI 模型,而是为 AI 提供记忆的基础设施——它不生成内容,只存储和检索结构化数据。此外,图谱查询性能随节点数量线性增长,对于超大规模(>10万节点)场景,当前 JSONL 持久化方案可能成为瓶颈,建议未来迁移到专用图数据库(如 Neo4j)。另需关注 MCP 协议本身的版本演进,v0.3.0 基于 2025-11-25 规范,MCP 协议规范仍在快速迭代,升级时需留意兼容性变更。
项目基本信息