Memlord
官方自托管的MCP内存服务器,适用于个人和团队使用
你可以用 Memlord MCP 做什么?
- 按类型和标签存储记忆 — 使用
store_memory保存事实、偏好、指令或反馈,并自动检测近似重复。 - 通过混合检索搜索记忆 — 使用
retrieve_memory通过结合 BM25 全文搜索和语义向量搜索来查找记忆。 - 按时间表达式回忆记忆 — 使用
recall_memory通过自然语言时间查询(如 "last week" 或 "yesterday")查找记忆。 - 列出并筛选记忆 — 使用
list_memories按类型或标签浏览记忆,或通过search_by_tag使用 AND/OR 逻辑组合标签。 - 按需获取完整记忆内容 — 当需要超出搜索摘要的详细信息时,使用
get_memory按名称获取完整记忆。 - 更新、删除或移动记忆 — 使用
update_memory修改内容、标签或过期时间,使用delete_memory删除,或使用move_memory在工作空间之间移动。
文档
面向个人和团队的自托管 MCP 记忆服务器
快速入门 • 工作原理 • MCP 工具 • 配置 • 系统要求 • 许可证
✨ 功能特性
- 🔍 混合搜索 — 通过倒数排名融合(RRF)结合 BM25(全文)与向量 KNN(pgvector)
- 📂 多用户 — 每个用户只能看到自己的记忆;工作区用于共享团队知识
- 🛠️ 10 个 MCP 工具 — 存储、检索、回忆、列表、按标签搜索、获取、更新、删除、移动、列出工作区
- 🌐 Web 界面 — 在浏览器中浏览、搜索、编辑和删除记忆;支持 JSON 导出/导入
- 🔒 OAuth 2.1 — 完整的进程内授权服务器,始终启用
- 🐘 PostgreSQL — pgvector 用于嵌入,tsvector 用于全文搜索
- 📊 渐进式信息披露 — 搜索默认返回紧凑摘要;仅在需要时调用
get_memory(name),减少令牌消耗 - 🔁 去重 — 保存前自动检测近乎相同的记忆,防止噪音积累
🆚 Memlord 对比
| Memlord | OpenMemory | mcp-memory-service | basic-memory | |
|---|---|---|---|---|
| 搜索 | BM25 + 向量 + RRF | 仅向量(Qdrant) | BM25 + 向量 + RRF | BM25 + 向量 |
| 嵌入 | 本地 ONNX,零配置 | 默认 OpenAI;可选 Ollama | 本地 ONNX,零配置 | 本地 FastEmbed |
| 存储 | PostgreSQL + pgvector | PostgreSQL + Qdrant | SQLite-vec / Cloudflare Vectorize | SQLite + Markdown 文件 |
| 多用户 | ✅ | ❌ 实际为单用户 | ⚠️ 代理 ID 范围,无隔离 | ❌ |
| 工作区 | ✅ 共享 + 个人,邀请链接 | ⚠️ “应用”命名空间 | ⚠️ 标签 + conversation_id | ✅ 按项目标志 |
| 身份验证 | ✅ OAuth 2.1 | ❌ 无(自托管) | ✅ OAuth 2.0 + PKCE | ❌ |
| Web 界面 | ✅ 浏览、编辑、导出 | ✅ Next.js 仪表板 | ✅ 丰富的界面、图形可视化、质量评分 | ❌ 本地;仅云端 |
| MCP 工具 | 10 | 5 | 15+ | ~20 |
| 自托管 | ✅ 单进程 | ✅ Docker(3 个容器) | ✅ | ✅ |
| 记忆输入 | 手动(显式存储) | 由 LLM 自动提取 | 手动 | 手动(Markdown 笔记) |
| 记忆类型 | 事实 / 偏好 / 指令 / 反馈 | 自动提取的事实 | — | 观察 + wiki 链接 |
| 时间感知搜索 | ✅ 自然语言日期 | ⚠️ 仅 REST,不在 MCP 工具中 | — | ✅ recent_activity |
| 令牌效率 | ✅ 渐进式信息披露 | ❌ | — | ✅ build_context 遍历 |
| 导入 / 导出 | ✅ JSON | ✅ ZIP(JSON + JSONL) | — | ✅ Markdown(人类可读) |
| 许可证 | AGPL-3.0 / 商业 | Apache 2.0 | Apache 2.0 | AGPL-3.0 |
竞争对手的真正优势:
- OpenMemory — 从原始对话文本中自动提取记忆;无需手动决定存储内容;良好的导入/导出功能
- mcp-memory-service — 更丰富的 Web 界面(图形可视化、质量评分、8 个选项卡);更宽松的许可证(Apache 2.0);多种传输选项(stdio、SSE、HTTP)
- basic-memory — 记忆是人类可读的 Markdown 文件,无需服务器即可编辑、版本控制和阅读;wiki 风格的实体链接形成本地知识图谱;约 20 个 MCP 工具
何时选择 Memlord:
- 你想要零配置本地嵌入 — ONNX 模型随服务器提供,无需 Ollama 或外部 API
- 你运行一个多用户团队服务器,具有适当的 OAuth 2.1 身份验证和基于邀请的工作区
- 你想要一个生产级数据库(PostgreSQL),其扩展能力超越单机 SQLite
- 你显式地管理记忆 — 精确存储重要的内容,分类并标记,而非 LLM 决定提取的一切
- 你想要一个自托管 Web 界面,具有完整的 CRUD 和 JSON 导出功能,无需云订阅
🚀 快速入门
🐳 Docker
cp .env.example .env
docker compose up
HTTP 服务器(多用户、Web 界面、OAuth)
# Install dependencies
uv sync --dev
# Download ONNX model (~23 MB)
uv run python scripts/download_model.py
# Run migrations
alembic upgrade head
# Start the server
memlord
打开 http://localhost:8000 访问 Web 界面。MCP 端点位于 /mcp。
🔍 工作原理
每个搜索请求并行运行 BM25 和向量 KNN,然后通过倒数排名融合合并结果:
flowchart TD
Q([query]) --> BM25["BM25\nsearch_vector @@ websearch_to_tsquery"]
Q --> EMB["ONNX embed\nall-MiniLM-L6-v2 · 384d · local"]
EMB --> KNN["KNN\nembedding <=> query_vector\ncosine distance"]
BM25 --> RRF["RRF fusion\nscore = 1/(k+rank_bm25) + 1/(k+rank_vec)\nk=60"]
KNN --> RRF
RRF --> R([top-N results])
⚙️ 配置
所有设置均使用 MEMLORD_ 前缀。完整列表请参阅 .env.example。
| 变量 | 默认值 | 描述 |
|---|---|---|
MEMLORD_DB_URL | postgresql+asyncpg://postgres:postgres@localhost/memlord | PostgreSQL 连接 URL |
MEMLORD_PORT | 8000 | 服务器端口 |
MEMLORD_BASE_URL | http://localhost:8000 | OAuth 的公共 URL(HTTP 模式) |
MEMLORD_OAUTH_JWT_SECRET | memlord-dev-secret-please-change | JWT 签名密钥(HTTP 模式) |
部署前,将 MEMLORD_BASE_URL 设置为你的公共 URL,并更改 MEMLORD_OAUTH_JWT_SECRET。
🛠️ MCP 工具
| 工具 | 描述 |
|---|---|
store_memory | 保存记忆(按内容幂等);检测到近乎重复时引发错误;可选 expires_at |
retrieve_memory | 混合语义 + 全文搜索;默认返回摘要 |
recall_memory | 按自然语言时间表达式搜索;默认返回摘要 |
list_memories | 带类型/标签过滤的分页列表 |
search_by_tag | AND/OR 标签搜索 |
get_memory | 按名称获取单个记忆的完整内容 |
update_memory | 按名称更新内容、类型、标签、元数据或过期时间(并可选择重命名) |
delete_memory | 按名称删除 |
move_memory | 将记忆移动到不同的工作区 |
list_workspaces | 列出你所属的工作区(包括个人工作区) |
工作区管理(创建、邀请、加入、离开)通过 Web 界面处理。
💻 系统要求
- Python 3.12
- PostgreSQL ≥ 15,并安装 pgvector 扩展
- uv — Python 包管理器
👨💻 开发
pyright src/ # type check
ruff format . # format
pytest # run tests
alembic-autogen-check # verify migrations are up to date
📄 许可证
Memlord 采用双重许可:
- AGPL-3.0 — 开源使用免费。如果你将修改后的版本作为网络服务运行,则必须公开你的源代码。
- 商业许可证 — 用于专有或闭源部署。请联系 sergey@memlord.com 或 dmitry@memlord.com 购买。