Memlord
resmiKiş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_memorykullanı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_memorykullanı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_reportadayları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çindreamistemini çalıştırın.
Dokümantasyon
Kişisel kullanım ve ekipler için kendi sunucunuzda barındırılan MCP bellek sunucusu
Hızlı Başlangıç • Nasıl Çalışır • MCP Araçları • Yapılandırma • Gereksinimler • Lisans
✨ Ö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 (
dreamMCP istemi +dream_reportaracı): 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
| Memlord | OpenMemory | mcp-memory-service | basic-memory | |
|---|---|---|---|---|
| Arama | BM25 + vektör + RRF | Yalnızca vektör (Qdrant) | BM25 + vektör + RRF | BM25 + vektör |
| Gömmeler | Yerel ONNX, sıfır yapılandırma | Varsayılan OpenAI; Ollama isteğe bağlı | Yerel ONNX, sıfır yapılandırma | Yerel FastEmbed |
| Depolama | PostgreSQL + pgvector | PostgreSQL + Qdrant | SQLite-vec / Cloudflare Vectorize | SQLite + 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ı | 11 | 5 | 15+ | ~20 |
| Kendi sunucunuzda | ✅ tek süreç | ✅ Docker (3 konteyner) | ✅ | ✅ |
| Bellek girdisi | Manuel (açık saklama) | LLM tarafından otomatik çıkarılan | Manuel | Manuel (Markdown notları) |
| Bellek türleri | olgu / tercih / talimat / geri bildirim / karar / içgörü | otomatik çıkarılan olgular | — | gö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) |
| Lisans | AGPL-3.0 / Ticari | Apache 2.0 | Apache 2.0 | AGPL-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şken | Varsayılan | Açıklama |
|---|---|---|
MEMLORD_DB_URL | postgresql+asyncpg://postgres:postgres@localhost/memlord | PostgreSQL bağlantı URL'si |
MEMLORD_PORT | 8000 | Sunucu portu |
MEMLORD_BASE_URL | http://localhost:8000 | OAuth için genel URL (HTTP modu) |
MEMLORD_OAUTH_JWT_SECRET | memlord-dev-secret-please-change | JWT 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_memory | Bir anıyı kaydet (içeriğe göre idempotent); neredeyse aynı olanlarda hata verir; isteğe bağlı expires_at |
retrieve_memory | Hibrit anlamsal + tam metin araması; varsayılan olarak parçacıklar döndürür |
recall_memory | Doğal dil zaman ifadesine göre arama; varsayılan olarak parçacıklar döndürür |
list_memories | Tür/etiket filtreleriyle sayfalandırılmış liste |
search_by_tag | VE/VEYA etiket araması |
get_memory | Ada göre tam içerikli tek bir anı getir (süresi dolmuş olanlar dahil) |
update_memory | Ada 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_memory | Ada göre sil |
move_memory | Bir anıyı farklı bir çalışma alanına taşı |
list_workspaces | Üyesi olduğunuz çalışma alanlarını listele (kişisel olanlar dahil) |
dream_report | Salt 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.