Memlord MCP Server
resmiKişisel kullanım ve ekipler için kendi kendine barındırılan MCP bellek sunucusu
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ı
- 🛠️ 10 MCP aracı — sakla, getir, hatırla, listele, etikete göre ara, al, güncelle, sil, taşı, çalışma alanlarını listele
- 🌐 Web Arayüzü — tarayıcıda anılara göz at, ara, düzenle ve sil; JSON dışa/içe aktar
- 🔒 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ı almak için
get_memory(name)çağrısı yapın, böylece token kullanımı azalır - 🔁 Tekilleştirme — kaydetmeden önce neredeyse aynı anıları otomatik olarak tespit eder, 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 | OpenAI varsayılan; 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ı | ⚠️ 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 at, düzenle, dışa aktar | ✅ Next.js gösterge paneli | ✅ zengin arayüz, grafik görselleştirme, kalite puanları | ❌ yerel; yalnızca bulut |
| MCP araçları | 10 | 5 | 15+ | ~20 |
| Kendi sunucunuzda | ✅ tek süreç | ✅ Docker (3 konteyner) | ✅ | ✅ |
| Bellek girdisi | Manuel (açık saklama) | LLM tarafından otomatik çıkarılır | Manuel | Manuel (Markdown notları) |
| Bellek türleri | olgu / tercih / talimat / geri bildirim | 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 üstünlük sağladığı noktalar:
- OpenMemory — ham konuşma metninden anıları otomatik çı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 taşıma 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 istiyorsunuz — 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 işletiyorsunuz
- Tek bir makinenin SQLite'ının ötesine ölçeklenebilen üretim sınıfı bir veritabanı (PostgreSQL) istiyorsunuz
- Anıları açıkça yönetiyorsunuz — LLM'nin çıkarmaya karar verdiği her şeyi değil, tam olarak önemli olanı, türü ve etiketi belirlenmiş olarak saklayın
- Bulut aboneliği olmadan tam CRUD ve JSON dışa aktarma özellikli kendi sunucunuzda barındırılan bir Web Arayüzü istiyorsunuz
🚀 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\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])
⚙️ 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); yakın kopyalarda uyarır; 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 ifadesiyle arama; varsayılan olarak parçacıklar döndürür |
list_memories | Tür/etiket filtreli sayfalı liste |
search_by_tag | VE/VEYA etiket araması |
get_memory | Tam içerikle ada göre tek bir anı getir |
update_memory | İçeriği, türü, etiketleri, meta verileri veya son kullanma tarihini ada göre 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) |
Ç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 veya kapalı kaynak dağıtımlar için. Satın almak için [email protected] veya [email protected] adresine ulaşın.