Memlord

resmi

Kişisel kullanım ve ekipler için kendi kendine barındırılan MCP bellek sunucusu

Memlord MCP ile neler yapabilirsiniz?

  • Bir anıyı tür ve etiketlerle sakla — Bir gerçeği, tercihi, talimatı, geri bildirimi, kararı veya içgörüyü kaydetmek için store_memory kullanın, isteğe bağlı olarak bir son kullanma süresi belirleyin.
  • Anıları hibrit arama ile ara — İlgili anıları bulmak için retrieve_memory'e başvurun; BM25 tam metin ve vektör anlamsal aramasını birleştirir, kompakt parçacıklar döndürür.
  • Anıları zaman ifadesiyle hatırla — "geçen hafta" veya "dün" gibi doğal dil zaman sorgularıyla eşleşen anıları bulmak için recall_memory kullanın.
  • Tüm anıları gözden geçir ve filtrele — Saklanan anılar arasında sayfalamak için tür ve etiket filtreleriyle list_memories'i çağırın.
  • Anıları rüya yoluyla birleştir — Asistanın dream_report adaylarını incelemesi, neredeyse aynı olanları içgörülere dönüştürmesi ve geçersiz kılınan anıları yıkıcı olmayan bir şekilde emekliye ayırması için dream istemini çalıştırın.

Dokümantasyon

PostgreSQL + pgvector ile desteklenen, hibrit BM25 + anlamsal aramaya sahip, kendi sunucunuzda barındırılan MCP bellek sunucusu

Kişisel kullanım ve ekipler için kendi sunucunuzda barındırılan MCP bellek sunucusu

License Python Version MCP Ruff MCP score

Hızlı BaşlangıçNasıl ÇalışırMCP AraçlarıYapılandırmaGereksinimlerLisans


✨ Özellikler

  • 🔍 Hibrit arama — Karşılıklı Sıra Füzyonu ile birleştirilmiş BM25 (tam metin) + vektör KNN (pgvector)
  • 📂 Çok kullanıcılı — her kullanıcı yalnızca kendi anılarını görür; paylaşılan ekip bilgisi için çalışma alanları
  • 🛠️ 11 MCP aracı — sakla, getir, hatırla, listele, etikete göre ara, al, güncelle, sil, taşı, çalışma alanlarını listele, rüya raporu
  • 💤 Rüya görme — rehberli bir birleştirme geçişi (dream MCP istemi + dream_report aracı): neredeyse aynı ve çakışan anıları bulur, istemci LLM tarafından yönlendirilerek yıkıcı olmayan bir şekilde içgörülere dönüştürür
  • 🌐 Web Arayüzü — tarayıcıda anılara göz atın, arayın, düzenleyin ve silin; JSON dışa/içe aktarımı
  • 🔒 OAuth 2.1 — tam süreç içi yetkilendirme sunucusu, her zaman etkin
  • 🐘 PostgreSQL — gömme vektörleri için pgvector, tam metin araması için tsvector
  • 📊 Aşamalı açıklama — arama varsayılan olarak kompakt parçacıklar döndürür; yalnızca ihtiyacınız olanı get_memory(name) ile çağırarak token kullanımını azaltır
  • 🔁 Tekilleştirme — kaydetmeden önce neredeyse aynı anıları otomatik olarak algılar, gürültü birikimini önler

🆚 Memlord nasıl karşılaştırılır

MemlordOpenMemorymcp-memory-servicebasic-memory
AramaBM25 + vektör + RRFYalnızca vektör (Qdrant)BM25 + vektör + RRFBM25 + vektör
GömmelerYerel ONNX, sıfır yapılandırmaVarsayılan OpenAI; Ollama isteğe bağlıYerel ONNX, sıfır yapılandırmaYerel FastEmbed
DepolamaPostgreSQL + pgvectorPostgreSQL + QdrantSQLite-vec / Cloudflare VectorizeSQLite + Markdown dosyaları
Çok kullanıcılı❌ pratikte tek kullanıcılı⚠️ ajan kimliği kapsamı, izolasyon yok
Çalışma alanları✅ paylaşımlı + kişisel, davet bağlantıları⚠️ "Uygulamalar" ad alanı⚠️ etiketler + conversation_id✅ proje başına bayrak
Kimlik doğrulama✅ OAuth 2.1❌ yok (kendi sunucunuzda)✅ OAuth 2.0 + PKCE
Web Arayüzü✅ göz atma, düzenleme, dışa aktarma✅ Next.js panosu✅ zengin arayüz, grafik görselleştirme, kalite puanları❌ yerel; yalnızca bulut
MCP araçları11515+~20
Kendi sunucunuzda✅ tek süreç✅ Docker (3 konteyner)
Bellek girdisiManuel (açık saklama)LLM tarafından otomatik çıkarılanManuelManuel (Markdown notları)
Bellek türleriolgu / tercih / talimat / geri bildirim / karar / içgörüotomatik çıkarılan olgulargözlemler + wiki bağlantıları
Zaman farkında arama✅ doğal dil tarihleri⚠️ yalnızca REST, MCP araçlarında değil✅ recent_activity
Token verimliliği✅ aşamalı açıklama✅ build_context gezinmesi
İçe / Dışa Aktarma✅ JSON✅ ZIP (JSON + JSONL)✅ Markdown (insan tarafından okunabilir)
LisansAGPL-3.0 / TicariApache 2.0Apache 2.0AGPL-3.0

Rakiplerin gerçek bir üstünlüğe sahip olduğu yerler:

  • OpenMemory — ham konuşma metninden anıları otomatik olarak çıkarır; neyin manuel olarak saklanacağına karar vermeye gerek yoktur; iyi içe/dışa aktarma
  • mcp-memory-service — daha zengin web arayüzü (grafik görselleştirme, kalite puanlaması, 8 sekme); daha izin verici lisans (Apache 2.0); birden çok aktarım seçeneği (stdio, SSE, HTTP)
  • basic-memory — anılar, herhangi bir sunucu olmadan düzenleyebileceğiniz, sürüm kontrolü yapabileceğiniz ve okuyabileceğiniz, insan tarafından okunabilir Markdown dosyalarıdır; wiki tarzı varlık bağlantıları yerel bir bilgi grafiği oluşturur; ~20 MCP aracı

Memlord ne zaman seçilmeli:

  • Sıfır yapılandırmalı yerel gömmeler istiyorsanız — ONNX modeli sunucuyla birlikte gelir, Ollama veya harici API'ye gerek yoktur
  • Uygun OAuth 2.1 kimlik doğrulaması ve davet tabanlı çalışma alanlarına sahip çok kullanıcılı bir ekip sunucusu çalıştırıyorsanız
  • Tek bir makinenin SQLite'ının ötesine ölçeklenen üretim sınıfı bir veritabanı (PostgreSQL) istiyorsanız
  • Anıları açıkça yönetiyorsanız — LLM'nin çıkarmaya karar verdiği her şeyi değil, tam olarak önemli olanı, yazılan ve etiketleneni saklayın
  • Bulut aboneliği olmadan, tam CRUD ve JSON dışa aktarma özellikli kendi sunucunuzda barındırılan bir Web Arayüzü istiyorsanız

🚀 Hızlı Başlangıç

🐳 Docker

cp .env.example .env
docker compose up

HTTP sunucusu (çok kullanıcılı, Web Arayüzü, 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

Web Arayüzü için http://localhost:8000 adresini açın. MCP uç noktası /mcp adresindedir.


🔍 Nasıl Çalışır

Her arama isteği BM25 ve vektör KNN'yi paralel olarak çalıştırır, ardından sonuçları Karşılıklı Sıra Füzyonu ile birleştirir:

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

⚙️ Yapılandırma

Tüm ayarlar MEMLORD_ önekini kullanır. Tam liste için .env.example sayfasına bakın.

DeğişkenVarsayılanAçıklama
MEMLORD_DB_URLpostgresql+asyncpg://postgres:postgres@localhost/memlordPostgreSQL bağlantı URL'si
MEMLORD_PORT8000Sunucu portu
MEMLORD_BASE_URLhttp://localhost:8000OAuth için genel URL (HTTP modu)
MEMLORD_OAUTH_JWT_SECRETmemlord-dev-secret-please-changeJWT imzalama sırrı (HTTP modu)

Dağıtmadan önce MEMLORD_BASE_URL değerini genel URL'nize ayarlayın ve MEMLORD_OAUTH_JWT_SECRET değerini değiştirin.


🛠️ MCP Araçları

AraçAçıklama
store_memoryBir anıyı kaydet (içeriğe göre idempotent); neredeyse aynı olanlarda hata verir; isteğe bağlı expires_at
retrieve_memoryHibrit anlamsal + tam metin araması; varsayılan olarak parçacıklar döndürür
recall_memoryDoğal dil zaman ifadesine göre arama; varsayılan olarak parçacıklar döndürür
list_memoriesTür/etiket filtreleriyle sayfalandırılmış liste
search_by_tagVE/VEYA etiket araması
get_memoryAda göre tam içerikli tek bir anı getir (süresi dolmuş olanlar dahil)
update_memoryAda göre içeriği, türü, etiketleri, meta verileri veya son kullanma tarihini güncelle (ve isteğe bağlı olarak yeniden adlandır)
delete_memoryAda göre sil
move_memoryBir anıyı farklı bir çalışma alanına taşı
list_workspacesÜyesi olduğunuz çalışma alanlarını listele (kişisel olanlar dahil)
dream_reportSalt okunur birleştirme adayları: benzer anı çiftleri, süresi dolmuş ve yakında süresi dolacak anılar

dream MCP istemi, istemci LLM'yi dream_report çıktısı üzerinde tam bir birleştirme geçişinde yönlendirir: benzer çiftleri sınıflandır (aynı / tamamlayıcı / çakışan), insight anılarına birleştir, yerini alanları expires_at aracılığıyla kullanımdan kaldır — asla yıkıcı değildir.

Çalışma alanı yönetimi (oluşturma, davet etme, katılma, ayrılma) Web Arayüzü üzerinden yapılır.


💻 Sistem Gereksinimleri

  • Python 3.12
  • PostgreSQL ≥ 15, pgvector eklentisi ile
  • uv — Python paket yöneticisi

👨‍💻 Geliştirme

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

📄 Lisans

Memlord çift lisanslıdır:

  • AGPL-3.0 — açık kaynak kullanımı için ücretsizdir. Değiştirilmiş bir sürümü bir ağ hizmeti olarak çalıştırırsanız, kaynak kodunuzu yayınlamanız gerekir.
  • Ticari Lisans — özel mülk veya kapalı kaynak dağıtımları için. Satın almak için sergey@memlord.com veya dmitry@memlord.com adresine başvurun.