Memory Engine について
Memory Engineは、AIアシスタント向けのローカル優先型長期記憶MCPサーバーです。情報を型付きの原子データと関係として保存し、全文・セマンティック検索とグラフ展開、記憶の整理を組み合わせてセッション間の継続性を支えます。
主な機能
- 01SQLiteによるローカル記憶保存
- 02全文検索とセマンティック検索
- 03型付き関係を持つナレッジグラフ
- 04記憶の整理とエラー記録
- 05バックアップ、復元、JSON入出力
- 06任意のグラフ探索Web UI
活用シーン
- 01セッションをまたいだプロジェクト決定の想起
- 02保存した記憶からタスク用コンテキストを作成
- 03エラーと修正内容の記録
- 04Markdownメモの取り込みと記憶の管理
MCP 対応
FastMCPサーバーとして、記憶操作、グラフ検索、メンテナンス、インポート・エクスポート、バックアップ・復元のツールを公開します。SSEエンドポイント経由で接続でき、クライアント設定例も用意されています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
docker run -i --rm -e MEMORY_DB_PATH -e MARKDOWN_SOURCE -e MEMORY_PORT ghcr.io/simoneb79/memory-engine-mcp:1.5.3MEMORY_DB_PATHSQLite database path inside the container.MARKDOWN_SOURCEOptional directory for one-way markdown import.MEMORY_PORTSSE server port. Default: 8085.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ghcr.io/simoneb79/memory-engine-mcp:1.5.3SSEツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
🧠 Memory Engine MCP
AI アシスタント向けの、ローカルファーストでグラフを活用する長期記憶。
SQLite + セマンティック検索 + ナレッジグラフ + 継続性を必要とするエージェント向けの MCP ツール。
Claude Desktop · Claude Code · Cursor · Cline · Windsurf · OpenClaw · あらゆる MCP クライアントに対応
Memory Engine が選ばれる理由
ほとんどの MCP メモリーサーバーは、単純なキーと値のストアか、プレーンテキスト検索のラッパーです。
Memory Engine は異なります。メモリーを型付きアトムと、それらを結ぶ型付きボンドとしてモデル化し、次の要素を組み合わせたハイブリッドランキングパイプラインでコンテキストを取得します。
- 全文検索(SQLite FTS5)
- ローカルの Ollama 埋め込みによるセマンティック類似度
- 信頼度、新しさ、重み
- 関連するメモリーからのグラフ展開
目標は単なる保存ではありません。時間の経過とともに想起し、関連付け、減衰し、整理し、学習するメモリーシステムを実現することです。
主な機能
- ローカルファースト — SQLite データベースを使用し、Ollama によるローカル埋め込みも任意で利用できます。クラウド API は必須ではありません。
- MCP ネイティブ — FastMCP を通じて 35 個のツールを公開します。
- グラフを活用した想起 — 双方向のボンドをたどって上位の検索結果を展開し、より豊かなコンテキストを提供します。
- セマンティック検索 —
nomic-embed-textによる意味ベースの検索です。 - Markdown との共存 — 人が読みやすい形式のメモリーを置き換えることなく、既存のメモを一方向でインポートできます。
- エラーメモリー — 間違いと修正を記憶し、失敗を繰り返すと設定へ自動的に昇格します。
- 認知キュレーター — 圧縮、ボンドの提案、重複の検出、孤立したアトムの分類を行う、非破壊のメンテナンス処理です。
- セッションウォッチャー — OpenClaw の正規 SQLite 取り込み(スキーマ 17)、リセットを考慮したダイジェスト、JSONL のレガシーフォールバックに対応します。
- バックアップと復元 — SQLite の完全なスナップショット、JSON のエクスポート/インポート、自動安全バックアップを伴う検証済み復元に対応します。
- 認証とセキュリティ強化 — API トークン、セキュアなバインド、入力検証、レート制限を任意で利用できます。
- テストスイート — CRUD、ランキング、マイグレーション、認証、バックアップ、並行処理、トランスクリプトの取り込みを網羅する 144 件のテストです。
- ベンチマーク — Precision@K、MRR、レイテンシのパーセンタイルを測定する、CLI による想起品質テストスイートです。
アーキテクチャ
AI assistant / MCP client
│
▼
FastMCP server — 35 tools
│
▼
Memory engine — hybrid ranking, graph recall, decay, learning
│
├── SQLite — atoms, bonds, FTS5, JSON metadata, versions
├── Ollama — optional local embeddings
├── Curator — conservative maintenance
└── Session watcher — OpenClaw SQLite + JSONL fallback
MCP ツール
メモリー
| ツール | 用途 |
|---|---|
remember | アトムを作成または更新する |
recall | グラフ展開を伴うスマートなハイブリッド想起 |
working_set | タスク指向のコンテキストパックを構築する |
semantic_search | セマンティック検索のみを行う |
get_atom | ボンドを含めて 1 つのアトムを読み取る |
list_atoms | ドメイン/タイプ/ステータス別にアトムを閲覧する |
merge_atoms | 重複するアトムを統合する |
export_atom | 1 つのアトムを Markdown としてエクスポートする |
ナレッジグラフ
| ツール | 用途 |
|---|---|
link / unlink | 型付きボンドを作成または削除する |
search_graph | 1 つのアトムからグラフをたどる |
suggest_bonds | 1 つのアトムに対するボンドを提案する |
suggest_bonds_all | ボンドを一括で提案または作成する |
学習とメンテナンス
| ツール | 目的 |
|---|---|
curator_run | 保守的なキュレーション処理 |
cognitive_status | グラフとメモリの健全性指標 |
learning_run | 矛盾、弱いアトム、統合候補、ギャップを検出 |
ask_pending / answer_human | 人間参加型の確認 |
decay_run | 減衰サイクルを実行 |
cleanup_sessions | 期限切れのセッションアトムを削除 |
cleanup_duplicates | 重複したセッションアトムを削除 |
reindex_embeddings | 埋め込みを再構築 |
エラーの記憶と設定
| ツール | 目的 |
|---|---|
error_check | タスクを実行する前に過去の失敗を確認 |
error_log | 間違いとその修正を記録 |
error_list | 未解決/解決済みのエラーを確認 |
preference_search | 構造化された設定を検索 |
インポートとイントロスペクション
| ツール | 目的 |
|---|---|
import_markdown | Markdown のメモをアトムにインポート |
memory_summary | 3 段階の要約:全体 → ドメイン → 詳細 |
stats | データベースの統計情報 |
version | サーバーのバージョン |
recall_session | 1 つの OpenClaw セッションを検索 |
session_summary | 1 つの OpenClaw セッションを要約 |
memory_contradict | 古いアトムを、それと矛盾する新しいアトムで置き換え |
list_contradictions | 明示的な矛盾/置き換えの記録を一覧表示 |
classify_memory_tier | 3 層の分類(エピソード/意味/手続き)を推定 |
memory_impact | 影響分析:このアトムに依存する項目を確認 |
バックアップ、復元、エクスポート
| ツール | 目的 |
|---|---|
backup_database | SQLite スナップショットを作成、一覧表示、検証、またはクリーンアップ |
restore_database | バックアップから復元(自動で安全用バックアップを作成) |
export_all | すべてのメモリデータをポータブルな JSON としてエクスポート |
import_data | JSON からインポート(マージモードまたは置き換えモード) |
Web UI(任意)
Memory Engine には、グラフの探索、アトムの確認、矛盾の閲覧、影響分析に使える任意の Web UI が含まれています。
# In docker-compose.yml, add:
# environment:
# - MEM_UI_PORT=6000
# expose:
# - "6000"
または、スタンドアロンで実行します。
python3 web_ui.py
# Open http://localhost:6000
Web UI:インタラクティブなグラフ、アトムの詳細、矛盾ブラウザー、統計ダッシュボード
Docker ですぐに始める
オプション A — ビルド済みイメージを使用(推奨)
# docker-compose.yml
services:
memory-engine:
image: ghcr.io/simoneb79/memory-engine-mcp:2.1.0
ports:
- "8085:8085"
volumes:
- memory-data:/data
restart: unless-stopped
volumes:
memory-data:
docker compose up -d
バージョンを固定してください。 本番環境では
:1.7.0のような明示的なタグを使用してください。:latestは予告なく変更される可能性があるため、使用しないでください。
オプション B — ソースからビルド
git clone https://github.com/SimoneB79/memory-engine-mcp.git
cd memory-engine-mcp
cp docker-compose.yml docker-compose.local.yml
# Edit volume paths in docker-compose.local.yml if needed
docker compose -f docker-compose.local.yml up -d --build
デフォルトのエンドポイント:
http://localhost:8085/sse
MCP クライアントの設定例:
{
"mcpServers": {
"memory-engine": {
"url": "http://localhost:8085/sse",
"transport": "sse"
}
}
}
Docker、ローカル Python、Claude Desktop、Cursor、OpenClaw の例については、docs/INSTALL.md を参照してください。
ローカル Python
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python server.py
設定
主な設定ファイル:config.json
重要な環境変数:
| 変数 | デフォルト | 目的 |
|---|---|---|
MEMORY_DB_PATH | /data/memory.db | SQLite データベースのパス |
MARKDOWN_SOURCE | /workspace/memory | インポート対象の Markdown ディレクトリ |
MEMORY_HOST | 127.0.0.1 | サーバーのバインドアドレス(安全なデフォルト値) |
MEMORY_PORT | 8085 | SSE ポート |
MEMORY_API_TOKEN | (なし) | 認証用の任意の API トークン(「セキュリティ」を参照) |
OPENCLAW_AGENT_DB | (なし) | エージェントごとの優先 OpenClaw SQLite DB(スキーマ 17) |
OPENCLAW_SESSIONS_DIR | /sessions | エージェント DB が設定されていない場合の従来形式の JSONL フォールバック |
SESSION_DIGEST_DIR | /data/session_digests | 任意のセッションダイジェスト出力先 |
SQLite のマウント、WAL/SHM の処理、フィルタリング、セキュリティ境界については、 OpenClaw のトランスクリプト取り込みを参照してください。
セマンティック検索には、コンテナまたはホストからアクセスできる Ollama が必要です。デフォルト:
{
"ollama": {
"enabled": true,
"host": "http://ollama:11434",
"model": "nomic-embed-text"
}
}
Ollama を使用しない場合は、ollama.enabled を false に設定してください。FTS による検索は引き続き利用できます。
メモリモデル
アトムには次の項目があります。
titlebodytype:fact、decision、event、preference、log、procedure、noteなどdomain:プロジェクトまたはトピックの名前空間confidenceweighttags- オプションの TTL
ボンドは、次の関係タイプでアトムを接続します。
is_a · part_of · depends_on · contradicts · refines · derived_from · detail_of · related_to
使用例
remember(
title="Use PostgreSQL for analytics",
body="SQLite is kept for local memory, PostgreSQL is used for multi-user analytics.",
type="decision",
domain="project:analytics",
confidence=0.9,
tags=["database", "architecture"]
)
recall(query="what database did we choose for analytics?", limit=5)
working_set(
query="continue the analytics backend work",
domain="project:analytics",
limit=8,
graph_depth=1
)
セキュリティ
デフォルトでは、Memory Engine はオープンモード(認証なし)で動作します。stdio または信頼できるローカル環境で安全に使用できます。
API トークン認証を有効にするには、次のようにします。
// config.json
{
"security": {
"api_token": "your-secret-token",
"allow_remote": false
}
}
または、環境変数で設定します。
MEMORY_API_TOKEN=your-secret-token
認証が有効な場合:
- MCP SSE リクエストには
Authorization: Bearer <token>が必要です - Web UI の API エンドポイントには
?token=<token>または Bearer ヘッダーが必要です allow_remote: trueでない限り、サーバーは127.0.0.1にバインドされます- 入力検証(タイトル/本文のサイズ制限)とレート制限は常に有効です
セキュリティ機能の全一覧については、CHANGELOG.md を参照してください。
公開とレジストリ
このリポジトリは MCP の検出に対応しています。
- MCP レジストリ名:
io.github.simoneb79/memory-engine-mcp - レジストリのメタデータ:
server.json - Docker/OCI 検証ラベル:
Dockerfileに含まれています - クライアント設定の例:
mcp.json
公開チェックリストについては、docs/PUBLISHING.md を参照してください。
リポジトリの状態
- GitHub の公開リポジトリ:https://github.com/SimoneB79/memory-engine-mcp
- 既存の掲載ページ:https://mcpmarket.com/server/memory-engine
- ライセンス:MIT
ライセンス
MIT — LICENSE を参照してください。
🧠 とともに制作:SimoneB79
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。