mcpField
M
Memory Engine

Memory Engine

リモート
github.com/SimoneB79メモリ・ナレッジ11 週間前に更新

Memory Engine について

Memory Engineは、AIアシスタント向けのローカル優先型長期記憶MCPサーバーです。情報を型付きの原子データと関係として保存し、全文・セマンティック検索とグラフ展開、記憶の整理を組み合わせてセッション間の継続性を支えます。

主な機能

  1. 01SQLiteによるローカル記憶保存
  2. 02全文検索とセマンティック検索
  3. 03型付き関係を持つナレッジグラフ
  4. 04記憶の整理とエラー記録
  5. 05バックアップ、復元、JSON入出力
  6. 06任意のグラフ探索Web UI

活用シーン

  1. 01セッションをまたいだプロジェクト決定の想起
  2. 02保存した記憶からタスク用コンテキストを作成
  3. 03エラーと修正内容の記録
  4. 04Markdownメモの取り込みと記憶の管理

MCP 対応

FastMCPサーバーとして、記憶操作、グラフ検索、メンテナンス、インポート・エクスポート、バックアップ・復元のツールを公開します。SSEエンドポイント経由で接続でき、クライアント設定例も用意されています。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"memory-engine": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"MEMORY_DB_PATH",
"-e",
"MARKDOWN_SOURCE",
"-e",
"MEMORY_PORT",
"ghcr.io/simoneb79/memory-engine-mcp:1.5.3"
],
"env": {
"MEMORY_DB_PATH": "<MEMORY_DB_PATH>",
"MARKDOWN_SOURCE": "<MARKDOWN_SOURCE>",
"MEMORY_PORT": "<MEMORY_PORT>"
}
}
}
}
起動コマンドdocker run -i --rm -e MEMORY_DB_PATH -e MARKDOWN_SOURCE -e MEMORY_PORT ghcr.io/simoneb79/memory-engine-mcp:1.5.3
設定が必要な環境変数
MEMORY_DB_PATHSQLite database path inside the container.
MARKDOWN_SOURCEOptional directory for one-way markdown import.
MEMORY_PORTSSE server port. Default: 8085.

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
ocighcr.io/simoneb79/memory-engine-mcp:1.5.3

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

バージョン ライセンス:MIT Python MCP Registry 対応 Docker

Memory Engine のロゴ

🧠 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_atom1 つのアトムを Markdown としてエクスポートする
ナレッジグラフ
ツール用途
link / unlink型付きボンドを作成または削除する
search_graph1 つのアトムからグラフをたどる
suggest_bonds1 つのアトムに対するボンドを提案する
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_markdownMarkdown のメモをアトムにインポート
memory_summary3 段階の要約:全体 → ドメイン → 詳細
statsデータベースの統計情報
versionサーバーのバージョン
recall_session1 つの OpenClaw セッションを検索
session_summary1 つの OpenClaw セッションを要約
memory_contradict古いアトムを、それと矛盾する新しいアトムで置き換え
list_contradictions明示的な矛盾/置き換えの記録を一覧表示
classify_memory_tier3 層の分類(エピソード/意味/手続き)を推定
memory_impact影響分析:このアトムに依存する項目を確認
バックアップ、復元、エクスポート
ツール目的
backup_databaseSQLite スナップショットを作成、一覧表示、検証、またはクリーンアップ
restore_databaseバックアップから復元(自動で安全用バックアップを作成)
export_allすべてのメモリデータをポータブルな JSON としてエクスポート
import_dataJSON からインポート(マージモードまたは置き換えモード)

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

Memory Engine Web UI — グラフエクスプローラー
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.dbSQLite データベースのパス
MARKDOWN_SOURCE/workspace/memoryインポート対象の Markdown ディレクトリ
MEMORY_HOST127.0.0.1サーバーのバインドアドレス(安全なデフォルト値)
MEMORY_PORT8085SSE ポート
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 による検索は引き続き利用できます。

メモリモデル

アトムには次の項目があります。

  • title
  • body
  • type:fact、decision、event、preference、log、procedure、note など
  • domain:プロジェクトまたはトピックの名前空間
  • confidence
  • weight
  • tags
  • オプションの 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 を参照してください。

リポジトリの状態

ライセンス

MIT — LICENSE を参照してください。


🧠 とともに制作:SimoneB79

コメント

MCP は初めてですか?

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

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