适合谁
- 使用 Claude Code、Codex CLI 等 MCP 客户端并需要跨会话记忆的开发团队
- 希望自托管 SQLite 或使用 Cloudflare D1/R2 做云同步的用户
- 需要取代血缘(supersession lineage)与去重、而不只是追加文本的长期记忆场景
- 愿意自行配置嵌入与 LLM 供应商(OpenAI、OpenRouter、Cloudflare Workers AI 等)的高级用户
Memora 是一个社区维护(MIT 许可,非厂商官方)的 MCP 记忆层,把 AI 智能体的跨会话记忆做成可检索、可追溯、可视化的图谱数据。它的差异化在于 absorb 的 LLM 分类写入与取代血缘机制——更新不是覆盖而是新增版本并沿链检索——再加上 memory_digest 的主题聚合检索、结构化文档片段存储和内置图谱 UI。代价是配置面较大:嵌入与 LLM 是两个独立可拆分的供应商配置,存在部分拆分被拒绝、端点错误导致静默降级等陷阱;容器化部署还需常驻代理与 LaunchAgent。适合愿意自行配置密钥与端点、并对跨会话记忆有实际需求的团队;不适合追求零配置或需要官方支持的场景。
Memora 是一个面向 AI 智能体的 MCP 记忆层,提供结构化存储、语义检索、图谱关系以及可溯源的跨会话上下文。它使用 SQLite 作为本地存储,并可选同步到云端(S3、R2、Cloudflare D1)。核心能力包括:absorb(由 LLM 对写入事实分类为重复/更新/矛盾/相关/新增,跳过重复并建立关联)、supersession 血缘(更新以取代旧知识而非删除,检索默认沿链取当前版本)、memory_digest(topic) 主题摘要(聚合相关记忆、未完成的 TODO/Issue、关联边与来源 ID)、向量语义搜索(TF-IDF、sentence-transformers、OpenAI 三种后端)、LLM 去重、带类型的记忆链接、结构化文档片段存储、知识图谱可视化与内置实时图谱服务器、RAG 聊天面板、事件通知、统计与洞察、操作历史。一个进程可通过 MEMORA_DATABASES 注册表服务多个工作区,客户端用 /mcp/<name> 路径选择存储。
方式一(pip,本地 stdio):1) 执行 pip install memora-mcp(PyPI 包名为 memora-mcp,裸 memora 是无关项目);如需离线本地嵌入可执行 pip install "memora-mcp[local]"(约 2GB PyTorch)。2) 在项目根的 .mcp.json 中添加 "command": "memora-server",并按需设置 MEMORA_DB_PATH、MEMORA_ALLOW_ANY_TAG、MEMORA_GRAPH_PORT 等环境变量。3) 重启客户端。
方式二(容器,HTTP 服务):默认运行时为 Apple 的 container CLI,需 Apple 芯片且 macOS 26。依次执行 container system start;git clone 仓库并 cd 进入;cp instances/example.env instances/myinstance.env 并编辑 PORT 与后端(STORAGE_URI、VOLUME 或 MEMORA_DATABASES);创建凭证文件 ~/.config/memora/credentials.mcp.json(副本可通过 CRED_SOURCE 指定)并 chmod 600;复制 scripts/memora_proxy.py 到 ~/.local/libexec/memora/;然后执行 ./scripts/memora-instance.sh build myinstance、up myinstance、proxy myinstance,并运行其打印的 launchctl 命令。工作区 URL 为 http://127.0.0.1:<PORT>/mcp(非默认存储需追加 /<name>)。
Codex CLI 则写入 ~/.codex/config.toml 的 [mcp_servers.memora] 段,设置 command 与 env。
{"mcpServers":{"memora":{"command":"memora-server","args":[],"env":{"MEMORA_DB_PATH":"~/.local/share/memora/memories.db","MEMORA_ALLOW_ANY_TAG":"1","MEMORA_GRAPH_PORT":"8765"}}}}