mcpField
M
Memlord

Memlord

認証済みおすすめリモート
memlord.comメモリ・ナレッジ295 週間前に更新
リポジトリ公式サイト

Memlord について

Memlord は、個人およびチーム向けのセルフホスト可能な MCP メモリサーバーです。PostgreSQL と pgvector を用い、BM25 による全文検索とベクトル検索を組み合わせています。ユーザーごとの分離、共有ワークスペース、OAuth 2.1 認可、Web UI を備えます。ライセンスは AGPL-3.0 と商用ライセンスの二本立てです。

主な機能

  1. 01BM25 とベクトル検索を組み合わせたハイブリッド検索
  2. 02ユーザーごとの分離と共有ワークスペース
  3. 03OAuth 2.1 認可サーバーの内蔵
  4. 04閲覧・編集・JSON エクスポートができる Web UI
  5. 05LLM を用いた dream による整理ワークフロー
  6. 06保存前の近似重複検出

活用シーン

  1. 01個人やチームで共有するメモリストアの運用
  2. 02複数の MCP クライアント間での好みや決定事項の保存と検索
  3. 03類似または矛盾するメモリの定期的な整理

MCP 対応

本プロジェクトは MCP サーバーであり、store_memory、retrieve_memory、dream_report などのメモリ関連ツール 11 件と dream プロンプトを MCP クライアントに提供します。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://app.memlord.com/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

ツール

詳細

ハイブリッド BM25 + セマンティック検索を備えたセルフホスト可能な MCP メモリサーバー。PostgreSQL +
pgvector を利用

個人利用とチーム向けのセルフホスト可能な MCP メモリサーバー

License Python Version MCP Ruff MCP score

クイックスタート • 仕組み • MCP ツール • 設定 • 要件 • ライセンス


✨ 機能

  • 🔍 ハイブリッド検索 — BM25 (全文検索) + ベクトル KNN (pgvector) を Reciprocal Rank Fusion で統合
  • 📂 マルチユーザー — 各ユーザーは自分のメモリのみを閲覧できます。チームの共有ナレッジベース用のワークスペースも利用可能
  • 🛠️ 11 個の MCP ツール — 保存、取得、呼び出し、一覧表示、タグ検索、取得、更新、削除、移動、ワークスペース一覧表示、dream レポート
  • 💤 Dreaming — ガイド付きの統合パス (dream MCP プロンプト + dream_report ツール): ほぼ重複したメモリや競合するメモリを検出し、クライアント LLM によって非破壊的にインサイトへマージします
  • 🌐 Web UI — ブラウザでメモリを閲覧、検索、編集、削除できます。JSON のエクスポート/インポートにも対応
  • 🔒 OAuth 2.1 — 完全なインプロセス認可サーバーを常時有効化
  • 🐘 PostgreSQL — 埋め込みには pgvector、全文検索には tsvector を使用
  • 📊 段階的な開示 — 検索はデフォルトでコンパクトなスニペットを返します。必要なものだけに対して get_memory(name) を呼び出すことで、 トークン使用量を削減できます
  • 🔁 重複排除 — 保存前にほぼ同一のメモリを自動検出し、ノイズの蓄積を防ぎます

🆚 Memlord の比較

MemlordOpenMemorymcp-memory-servicebasic-memory
検索BM25 + ベクトル + RRFベクトルのみ(Qdrant)BM25 + ベクトル + RRFBM25 + ベクトル
埋め込みローカル ONNX、設定不要デフォルトは OpenAI、Ollama は任意ローカル ONNX、設定不要ローカル FastEmbed
ストレージPostgreSQL + pgvectorPostgreSQL + QdrantSQLite-vec / Cloudflare VectorizeSQLite + Markdown ファイル
マルチユーザー✅❌ 実質シングルユーザー⚠️ エージェント ID によるスコープ分け、分離なし❌
ワークスペース✅ 共有 + 個人、招待リンク⚠️ 「Apps」名前空間⚠️ タグ + conversation_id✅ プロジェクト単位のフラグ
認証✅ OAuth 2.1❌ なし(セルフホスト)✅ OAuth 2.0 + PKCE❌
Web UI✅ 閲覧、編集、エクスポート✅ Next.js ダッシュボード✅ リッチ UI、グラフ可視化、品質スコア❌ ローカルのみ、クラウド非対応
MCP ツール11515+~20
セルフホスト可能✅ 単一プロセス✅ Docker(3 コンテナ)✅✅
メモリ入力手動(明示的な保存)LLM による自動抽出手動手動(Markdown ノート)
メモリの種類fact / preference / instruction / feedback / decision / insight自動抽出されたファクト—オブザベーション + wiki リンク
時間を考慮した検索✅ 自然言語の日付⚠️ REST のみ、MCP ツールでは未対応—✅ recent_activity
トークン効率✅ 段階的な開示❌—✅ build_context トラバーサル
インポート / エクスポート✅ JSON✅ ZIP(JSON + JSONL)—✅ Markdown(人間が読める形式)
ライセンスAGPL-3.0 / CommercialApache 2.0Apache 2.0AGPL-3.0
競合が真に優位に立つ点:
  • OpenMemory — 生の会話テキストからメモリを自動抽出します。何を手動で保存するかを決める必要がありません。インポート/エクスポートも良好です
  • mcp-memory-service — よりリッチな Web UI(グラフ可視化、品質スコアリング、8 つのタブ)。より寛容なライセンス(Apache 2.0)。複数のトランスポートオプション(stdio、SSE、HTTP)
  • basic-memory — メモリは人間が読める Markdown ファイルで、サーバーなしで編集、バージョン管理、閲覧ができます。Wiki スタイルのエンティティリンクがローカルナレッジグラフを形成します。約 20 の MCP ツール

Memlord を選ぶべき場合:

  • ゼロ設定のローカル埋め込みが欲しい — ONNX モデルがサーバーに同梱されており、Ollama や外部 API は不要です
  • 適切な OAuth 2.1 認証と招待ベースのワークスペースを備えたマルチユーザーチームサーバーを運用している
  • 単一マシンの SQLite を超えてスケールする本番グレードのデータベース(PostgreSQL)が欲しい
  • メモリを明示的に管理する — LLM が抽出を決めたすべてではなく、重要なものだけを型付けしてタグ付けして保存する
  • クラウドサブスクリプションなしで、完全な CRUD と JSON エクスポートを備えたセルフホスト可能な Web UIが欲しい

🚀 クイックスタート

🐳 Docker
cp .env.example .env
docker compose up
HTTP サーバー(マルチユーザー、Web UI、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 UI は http://localhost:8000 を開いてください。MCP エンドポイントは /mcp にあります。


🔍 仕組み

各検索リクエストは BM25 とベクトル KNN を並列で実行し、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])

⚙️ 設定

すべての設定は MEMLORD_ プレフィックスを使用します。完全なリストは.env.exampleを参照してください。

変数デフォルト説明
MEMLORD_DB_URLpostgresql+asyncpg://postgres:postgres@localhost/memlordPostgreSQL 接続 URL
MEMLORD_PORT8000サーバーポート
MEMLORD_BASE_URLhttp://localhost:8000OAuth 用の公開 URL(HTTP モード)
MEMLORD_OAUTH_JWT_SECRETmemlord-dev-secret-please-changeJWT 署名シークレット(HTTP モード)

デプロイ前に MEMLORD_BASE_URL を公開 URL に設定し、MEMLORD_OAUTH_JWT_SECRET を変更してください。


🛠️ MCP ツール

ツール説明
store_memoryメモリを保存します(内容に対して冪等)。ほぼ重複する場合はエラーを発生させます。任意で expires_at を指定できます
retrieve_memoryハイブリッドなセマンティック検索 + 全文検索。デフォルトではスニペットを返します
recall_memory自然言語の時間表現で検索します。デフォルトではスニペットを返します
list_memories型/タグフィルター付きのページネーションされた一覧
search_by_tagAND/OR タグ検索
get_memory名前で単一のメモリを完全な内容とともに取得します(期限切れも含む)
update_memory名前で内容、型、タグ、メタデータ、または有効期限を更新します(任意で名前変更も可能)
delete_memory名前で削除します
move_memoryメモリを別のワークスペースに移動します
list_workspaces自分がメンバーであるワークスペース(個人用を含む)を一覧表示します
dream_report読み取り専用の統合候補:類似するメモリのペア、期限切れおよびまもなく期限切れになるメモリ

dream MCP プロンプトは、クライアント LLM を dream_report の出力に対する完全な統合パスへと導きます:類似するペアを分類し(重複 / 補完 / 競合)、insight メモリへマージし、expires_at によって置き換えられたものを退役させます — 決して破壊的にではなく。

ワークスペースの管理(作成、招待、参加、脱退)は Web UI で行います。


💻 システム要件

  • Python 3.12
  • PostgreSQL ≥ 15(pgvector 拡張機能付き)
  • uv — Python パッケージマネージャー

👨‍💻 開発

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

📄 ライセンス

Memlord はデュアルライセンスです:

  • AGPL-3.0 — オープンソースでの使用は無料です。改変したバージョンをネットワークサービスとして実行する場合、ソースコードを公開する必要があります。
  • 商用ライセンス — プロプライエタリまたはクローズドソースのデプロイ向けです。購入については [email protected] または [email protected] までお問い合わせください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。