Memlord MCP Server

resmi

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

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ı
  • 🛠️ 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

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ırmaOpenAI varsayılan; 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ı⚠️ 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ı10515+~20
Kendi sunucunuzda✅ tek süreç✅ Docker (3 konteyner)
Bellek girdisiManuel (açık saklama)LLM tarafından otomatik çıkarılırManuelManuel (Markdown notları)
Bellek türleriolgu / tercih / talimat / geri bildirimotomatik çı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 ü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ş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); yakın kopyalarda uyarır; 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 ifadesiyle arama; varsayılan olarak parçacıklar döndürür
list_memoriesTür/etiket filtreli sayfalı liste
search_by_tagVE/VEYA etiket araması
get_memoryTam 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_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)

Ç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.