Memlord

chính thức

Máy chủ bộ nhớ MCP tự lưu trữ dành cho sử dụng cá nhân và nhóm

Bạn có thể làm gì với Memlord MCP?

  • Lưu một bộ nhớ với loại và thẻ — Sử dụng store_memory để lưu một sự kiện, sở thích, hướng dẫn, phản hồi, quyết định hoặc hiểu biết, tùy chọn đặt thời gian hết hạn.
  • Tìm kiếm bộ nhớ bằng truy xuất kết hợp — Yêu cầu retrieve_memory tìm các bộ nhớ liên quan bằng cách kết hợp tìm kiếm toàn văn BM25 và tìm kiếm ngữ nghĩa vector, trả về các đoạn trích ngắn gọn.
  • Nhớ lại bộ nhớ theo biểu thức thời gian — Sử dụng recall_memory để tìm các bộ nhớ khớp với truy vấn thời gian bằng ngôn ngữ tự nhiên như "tuần trước" hoặc "hôm qua."
  • Duyệt và lọc tất cả bộ nhớ — Gọi list_memories với bộ lọc loại và thẻ để phân trang qua các bộ nhớ đã lưu.
  • Hợp nhất bộ nhớ thông qua dreaming — Chạy lời nhắc dream để trợ lý xem xét các ứng viên dream_report, hợp nhất các bản sao gần giống thành các hiểu biết, và loại bỏ các bộ nhớ bị thay thế một cách không phá hủy.

Tài liệu

Máy chủ bộ nhớ MCP tự lưu trữ với tìm kiếm lai BM25 + ngữ nghĩa, được hỗ trợ bởi PostgreSQL +
pgvector

Máy chủ bộ nhớ MCP tự lưu trữ cho cá nhân và nhóm

License Python Version MCP Ruff MCP score

Bắt đầu nhanhCách thức hoạt độngCông cụ MCPCấu hìnhYêu cầu hệ thốngGiấy phép


✨ Tính năng

  • 🔍 Tìm kiếm lai — BM25 (toàn văn) + vector KNN (pgvector) kết hợp qua Reciprocal Rank Fusion
  • 📂 Đa người dùng — mỗi người dùng chỉ thấy ký ức của riêng mình; không gian làm việc cho kiến thức nhóm chia sẻ
  • 🛠️ 11 công cụ MCP — lưu trữ, truy xuất, gợi nhớ, liệt kê, tìm kiếm theo thẻ, lấy, cập nhật, xóa, di chuyển, liệt kê không gian làm việc, báo cáo mơ
  • 💤 — một lượt củng cố có hướng dẫn (prompt MCP dream + công cụ dream_report): tìm các ký ức gần trùng lặp và xung đột, hợp nhất chúng thành thông tin chi tiết một cách không phá hủy, do LLM khách điều khiển
  • 🌐 Giao diện Web — duyệt, tìm kiếm, chỉnh sửa và xóa ký ức trong trình duyệt; xuất/nhập JSON
  • 🔒 OAuth 2.1 — máy chủ ủy quyền trong tiến trình đầy đủ, luôn được bật
  • 🐘 PostgreSQL — pgvector cho embedding, tsvector cho tìm kiếm toàn văn
  • 📊 Tiết lộ tiến triển — tìm kiếm trả về đoạn trích ngắn gọn theo mặc định; chỉ gọi get_memory(name) cho những gì bạn cần, giảm sử dụng token
  • 🔁 Loại bỏ trùng lặp — tự động phát hiện ký ức gần giống hệt trước khi lưu, ngăn tích tụ nhiễu

🆚 So sánh Memlord

MemlordOpenMemorymcp-memory-servicebasic-memory
Tìm kiếmBM25 + vector + RRFChỉ vector (Qdrant)BM25 + vector + RRFBM25 + vector
EmbeddingONNX cục bộ, không cần cấu hìnhOpenAI mặc định; Ollama tùy chọnONNX cục bộ, không cần cấu hìnhFastEmbed cục bộ
Lưu trữPostgreSQL + pgvectorPostgreSQL + QdrantSQLite-vec / Cloudflare VectorizeSQLite + tệp Markdown
Đa người dùng❌ thực tế là đơn người dùng⚠️ phạm vi agent-ID, không cô lập
Không gian làm việc✅ chia sẻ + cá nhân, liên kết mời⚠️ Không gian tên "Apps"⚠️ thẻ + conversation_id✅ cờ mỗi dự án
Xác thực✅ OAuth 2.1❌ không có (tự lưu trữ)✅ OAuth 2.0 + PKCE
Giao diện Web✅ duyệt, chỉnh sửa, xuất✅ Bảng điều khiển Next.js✅ Giao diện phong phú, trực quan hóa đồ thị, điểm chất lượng❌ cục bộ; chỉ đám mây
Công cụ MCP11515+~20
Tự lưu trữ✅ tiến trình đơn✅ Docker (3 container)
Đầu vào bộ nhớThủ công (lưu trữ rõ ràng)Tự động trích xuất bởi LLMThủ côngThủ công (ghi chú Markdown)
Loại bộ nhớsự kiện / sở thích / hướng dẫn / phản hồi / quyết định / thông tin chi tiếtsự kiện tự động trích xuấtquan sát + liên kết wiki
Tìm kiếm theo thời gian✅ ngày tháng ngôn ngữ tự nhiên⚠️ Chỉ REST, không có trong công cụ MCP✅ recent_activity
Hiệu quả token✅ tiết lộ tiến triển✅ duyệt build_context
Nhập / Xuất✅ JSON✅ ZIP (JSON + JSONL)✅ Markdown (con người đọc được)
Giấy phépAGPL-3.0 / Thương mạiApache 2.0Apache 2.0AGPL-3.0

Điểm mạnh thực sự của đối thủ:

  • OpenMemory — tự động trích xuất ký ức từ văn bản hội thoại thô; không cần quyết định lưu gì thủ công; nhập/xuất tốt
  • mcp-memory-service — giao diện web phong phú hơn (trực quan hóa đồ thị, chấm điểm chất lượng, 8 tab); giấy phép dễ dãi hơn (Apache 2.0); nhiều tùy chọn truyền tải (stdio, SSE, HTTP)
  • basic-memory — ký ức là tệp Markdown con người đọc được, bạn có thể chỉnh sửa, kiểm soát phiên bản và đọc mà không cần máy chủ; liên kết thực thể kiểu wiki tạo thành đồ thị tri thức cục bộ; ~20 công cụ MCP

Khi nào chọn Memlord:

  • Bạn muốn embedding cục bộ không cần cấu hình — mô hình ONNX đi kèm máy chủ, không cần Ollama hoặc API bên ngoài
  • Bạn chạy máy chủ nhóm đa người dùng với xác thực OAuth 2.1 chuẩn và không gian làm việc dựa trên lời mời
  • Bạn muốn cơ sở dữ liệu cấp sản xuất (PostgreSQL) có khả năng mở rộng vượt ra ngoài SQLite của một máy đơn
  • Bạn quản lý ký ức một cách rõ ràng — lưu chính xác những gì quan trọng, được đánh kiểu và gắn thẻ, không phải mọi thứ LLM quyết định trích xuất
  • Bạn muốn giao diện Web tự lưu trữ với CRUD đầy đủ và xuất JSON, không cần đăng ký đám mây

🚀 Bắt đầu nhanh

🐳 Docker

cp .env.example .env
docker compose up

Máy chủ HTTP (đa người dùng, giao diện 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

Mở http://localhost:8000 cho giao diện Web. Điểm cuối MCP ở /mcp.


🔍 Cách thức hoạt động

Mỗi yêu cầu tìm kiếm chạy BM25 và vector KNN song song, sau đó hợp nhất kết quả qua Reciprocal Rank Fusion:

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])

⚙️ Cấu hình

Tất cả cài đặt sử dụng tiền tố MEMLORD_. Xem .env.example để có danh sách đầy đủ.

BiếnMặc địnhMô tả
MEMLORD_DB_URLpostgresql+asyncpg://postgres:postgres@localhost/memlordURL kết nối PostgreSQL
MEMLORD_PORT8000Cổng máy chủ
MEMLORD_BASE_URLhttp://localhost:8000URL công khai cho OAuth (chế độ HTTP)
MEMLORD_OAUTH_JWT_SECRETmemlord-dev-secret-please-changeBí mật ký JWT (chế độ HTTP)

Đặt MEMLORD_BASE_URL thành URL công khai của bạn và thay đổi MEMLORD_OAUTH_JWT_SECRET trước khi triển khai.


🛠️ Công cụ MCP

Công cụMô tả
store_memoryLưu một ký ức (lũy đẳng theo nội dung); báo lỗi nếu gần trùng lặp; expires_at tùy chọn
retrieve_memoryTìm kiếm lai ngữ nghĩa + toàn văn; trả về đoạn trích theo mặc định
recall_memoryTìm kiếm theo biểu thức thời gian ngôn ngữ tự nhiên; trả về đoạn trích theo mặc định
list_memoriesDanh sách phân trang với bộ lọc loại/thẻ
search_by_tagTìm kiếm thẻ AND/OR
get_memoryLấy một ký ức đơn theo tên với nội dung đầy đủ (bao gồm cả đã hết hạn)
update_memoryCập nhật nội dung, loại, thẻ, siêu dữ liệu hoặc hết hạn theo tên (và tùy chọn đổi tên)
delete_memoryXóa theo tên
move_memoryDi chuyển một ký ức sang không gian làm việc khác
list_workspacesLiệt kê các không gian làm việc bạn là thành viên (bao gồm cá nhân)
dream_reportỨng viên củng cố chỉ đọc: các cặp ký ức tương tự, ký ức đã hết hạn và sắp hết hạn

Prompt MCP dream hướng dẫn LLM khách qua một lượt củng cố đầy đủ trên đầu ra dream_report: phân loại các cặp tương tự (trùng lặp / bổ sung / xung đột), hợp nhất thành ký ức insight, loại bỏ những cái bị thay thế qua expires_at — không bao giờ phá hủy.

Quản lý không gian làm việc (tạo, mời, tham gia, rời) được xử lý qua giao diện Web.


💻 Yêu cầu hệ thống

  • Python 3.12
  • PostgreSQL ≥ 15 với tiện ích mở rộng pgvector
  • uv — Trình quản lý gói Python

👨‍💻 Phát triển

pyright src/           # type check
ruff format .          # format
pytest                 # run tests
alembic-autogen-check  # verify migrations are up to date

📄 Giấy phép

Memlord được cấp phép kép: