mcpField
M
Memlord

Memlord

已认证精选远程服务
memlord.com记忆与知识295 周前更新

关于 Memlord

Memlord 是一个可自托管的 MCP 记忆服务,面向个人及团队使用。它基于 PostgreSQL 与 pgvector,结合 BM25 全文检索与向量检索,并提供多用户隔离、工作区、OAuth 2.1 授权和 Web 界面。项目采用 AGPL-3.0 与商业双许可。

主要功能

  1. 01BM25 与向量检索的混合搜索
  2. 02多用户隔离与共享工作区
  3. 03OAuth 2.1 内置授权服务
  4. 04Web 界面浏览、编辑与导入导出
  5. 05基于 LLM 的 dream 记忆整理流程
  6. 06保存前的近似重复检测

适用场景

  1. 01为个人或团队搭建共享的 AI 记忆库
  2. 02在多个 MCP 客户端之间保存并检索偏好与决策记录
  3. 03定期整理与合并相似或冲突的记忆

MCP 相关

该项目是 MCP 服务,提供 11 个记忆相关工具(如 store_memory、retrieve_memory、dream_report)以及 dream 提示词,供 MCP 客户端调用。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://app.memlord.com/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

详细介绍

基于 PostgreSQL +
pgvector 的可自托管 MCP 记忆服务,支持 BM25 + 语义混合搜索

面向个人和团队的可自托管 MCP 记忆服务

许可证 Python 版本 MCP Ruff MCP 评分

快速开始 • 工作原理 • MCP 工具 • 配置 • 系统要求 • 许可证


✨ 功能特性

  • 🔍 混合搜索 — BM25(全文搜索)+ 向量 KNN(pgvector),通过倒数排名融合进行合并
  • 📂 多用户 — 每位用户只能查看自己的记忆;工作区可用于共享团队知识
  • 🛠️ 11 个 MCP 工具 — 存储、检索、回忆、列出、按标签搜索、获取、更新、删除、移动、列出工作区、生成梦境报告
  • 💤 梦境整理 — 引导式整合流程(dream MCP 提示词 + dream_report 工具):查找近似重复和相互冲突的记忆,以非破坏方式将它们整合为洞见,由客户端大模型驱动
  • 🌐 Web 界面 — 在浏览器中浏览、搜索、编辑和删除记忆;导出/导入 JSON
  • 🔒 OAuth 2.1 — 完整的进程内授权服务器,始终启用
  • 🐘 PostgreSQL — 使用 pgvector 存储嵌入向量,使用 tsvector 进行全文搜索
  • 📊 渐进式披露 — 默认情况下,搜索仅返回精简片段;仅对所需内容调用 get_memory(name),降低令牌用量
  • 🔁 去重 — 保存前自动检测近似相同的记忆,避免噪声累积

🆚 Memlord 对比

MemlordOpenMemorymcp-memory-servicebasic-memory
搜索BM25 + 向量 + RRF仅向量(Qdrant)BM25 + 向量 + RRFBM25 + 向量
嵌入本地 ONNX,无需配置默认使用 OpenAI;可选 Ollama本地 ONNX,无需配置本地 FastEmbed
存储PostgreSQL + pgvectorPostgreSQL + QdrantSQLite-vec / Cloudflare VectorizeSQLite + Markdown 文件
多用户✅❌ 实际上仅支持单用户⚠️ 按 agent-ID 限定范围,无隔离❌
工作区✅ 共享 + 个人,邀请链接⚠️ “Apps” 命名空间⚠️ 标签 + conversation_id✅ 按项目设置标志
身份验证✅ OAuth 2.1❌ 无(可自托管)✅ OAuth 2.0 + PKCE❌
Web 界面✅ 浏览、编辑、导出✅ Next.js 仪表板✅ 丰富的界面、图可视化、质量评分❌ 本地;仅限云端
MCP 工具11515+~20
可自托管✅ 单进程✅ Docker(3 个容器)✅✅
记忆输入手动(显式存储)由 LLM 自动提取手动手动(Markdown 笔记)
记忆类型事实 / 偏好 / 指令 / 反馈 / 决策 / 洞察自动提取的事实—观察记录 + wiki 链接
时间感知搜索✅ 自然语言日期⚠️ 仅限 REST,不支持 MCP 工具—✅ recent_activity
Token 效率✅ 渐进式披露❌—✅ build_context 遍历
导入 / 导出✅ JSON✅ ZIP(JSON + JSONL)—✅ Markdown(人类可读)
许可证AGPL-3.0 / 商业Apache 2.0Apache 2.0AGPL-3.0
竞争对手真正占优之处:
  • OpenMemory — 可从原始对话文本中自动提取记忆;无需手动决定要存储什么;导入/导出功能良好
  • mcp-memory-service — Web UI 更丰富(图谱可视化、质量评分、8 个标签页);许可证限制更宽松(Apache 2.0);支持多种传输选项(stdio、SSE、HTTP)
  • basic-memory — 记忆以人类可读的 Markdown 文件形式保存,可编辑、进行版本控制,也可在没有任何 服务的情况下阅读;维基式实体链接可构成本地知识图谱;约 20 个 MCP 工具

适合选择 Memlord 的情况:

  • 你想要零配置本地嵌入——ONNX 模型随服务一同提供,无需 Ollama 或外部 API
  • 你运行的是多用户团队服务,需要完善的 OAuth 2.1 身份验证和基于邀请的工作区
  • 你想要生产级数据库(PostgreSQL),以便扩展到单机 SQLite 无法满足的规模
  • 你希望明确管理记忆——只存储真正重要的内容,并进行类型划分和标记,而非存储大模型决定提取的所有内容
  • 你想要可自托管的 Web UI,具备完整的 CRUD 和 JSON 导出功能,无需订阅云服务

🚀 快速入门

🐳 Docker
cp .env.example .env
docker compose up
HTTP 服务(多用户、Web UI、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 UI。MCP 端点位于 /mcp。


🔍 工作原理

每个搜索请求都会并行运行 BM25 和向量 KNN,然后通过倒数排名融合合并结果:

flowchart TD
    Q([query]) --> BM25["BM25\nsearch_vector @@ websearch_to_tsquery"]
    Q --> EMB["ONNX embed\nparaphrase-multilingual-MiniLM-L12-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_URLpostgresql+asyncpg://postgres:postgres@localhost/memlordPostgreSQL 连接 URL
MEMLORD_PORT8000服务端口
MEMLORD_BASE_URLhttp://localhost:8000OAuth 公共 URL(HTTP 模式)
MEMLORD_OAUTH_JWT_SECRETmemlord-dev-secret-please-changeJWT 签名密钥(HTTP 模式)

部署前,请将 MEMLORD_BASE_URL 设置为你的公共 URL,并更改 MEMLORD_OAUTH_JWT_SECRET。


🛠️ MCP 工具

工具描述
store_memory保存一条记忆(按内容幂等);遇到近似重复内容时会报错;可选设置 expires_at
retrieve_memory混合语义搜索和全文搜索;默认返回片段
recall_memory根据自然语言时间表达式搜索;默认返回片段
list_memories支持按类型和标签筛选的分页列表
search_by_tagAND/OR 标签搜索
get_memory按名称获取单条记忆及其完整内容(包括已过期的记忆)
update_memory按名称更新内容、类型、标签、元数据或到期时间(也可选择重命名)
delete_memory按名称删除记忆
move_memory将记忆移至其他工作区
list_workspaces列出你所属的工作区(包括个人工作区)
dream_report只读的整合候选项:相似记忆对、已过期和即将过期的记忆

dream MCP 提示词会引导客户端大模型基于 dream_report 输出完成一次完整的整合流程:对相似记忆对进行分类(重复/互补/冲突),合并为 insight 记忆,并通过 expires_at 让已被取代的记忆退役——绝不进行破坏性操作。

工作区管理(创建、邀请、加入、离开)通过 Web UI 进行。


💻 系统要求

  • 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 使用双重许可:

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。