AI・機械学習
Show HN: MCP Memory – GoogleのOKFとSQLite FTS5を使用した高速エージェントメモリ
Show HN: MCP Memory – Fast Agent Memory Using Google's OKF and SQLite FTS5 (github.com)
要約
MCP-Memoryは、AIエージェントに永続的かつ長期的なメモリ機能を提供するサーバーです。Open Knowledge Format (OKF) 標準で記録をフォーマットし、ローカルSQLiteインスタンスでインデックス化することで、高速な検索を実現します。このシステムは、セッションを跨いだ状態の永続化、OKF標準への準拠、人間が閲覧可能なディレクトリ構造、そして高速なSQLite FTS5インデックス作成を特徴としています。
全文翻訳
MCP-Memory: OKFバックのエージェントメモリサーバー MCP-Memoryは、AIエージェント(Claude Desktop、Cursor、Antigravity、Windsurf、Codexなど)に永続的かつ長期的なメモリ機能を提供するModel Context Protocol (MCP) サーバーです。メモリレコードはOpen Knowledge Format (OKF v0.2) 標準を使用してフォーマットされ、ローカルSQLiteインスタンス(FTS5全文検索をサポート)でインデックス化され、高速なキーバリュー検索、タグフィルタリング、コンテンツ検索を可能にします。
高速トラック: クイックスタートへ直接ジャンプ
主な機能
セッションを跨いだ状態の永続化: AIエージェントが、チャットのターンやセッションを跨いで永続するステートフルなメモリ断片を読み取り、保存、検索、削除できるようにします。
OKF標準準拠: 各メモリ項目は、SPEC.mdとOKF_RULES.mdに厳密に準拠し、YAMLフロントマター(type, key, namespace, tags, generated, sources, verified, status, stale_after)を持つOKF v0.2 Markdownドキュメントとしてフォーマットされて保存されます。
デュアルレイヤーアーキテクチャ:
人間が閲覧可能なOKFディレクトリ: 各メモリは自動的にディスクにダンプされ、memory/バンドルディレクトリ内の生の.mdファイルとして同期され、階層的なindex.md(root index.mdはokf_version: "0.2"でバージョン管理)とlog.md更新履歴追跡ファイルが生成されます。
高性能SQLiteインデックス作成: SQLite FTS5(全文検索)と自動トリガーにより、20ミリ秒未満のキー検索とインスタントキーワード検索を実現します。
名前空間の分離: コンテキストの分離(例: user/preferences, project/architecture, default)をサポートします。
ゼロボイラープレートセットアップ: クイックセットアップウィザード(python3 setup.py)が、インストールされているMCPツール(Antigravity, Claude, Cursor, Windsurf, Codex)を自動設定します。
MCPツール
サーバーは、対話するエージェントに4つの主要なMCPツールを提供します:
1. memory_store
OKF v0.2形式でメモリレコードを保存または更新します。
パラメータ:
key (string, 必須): メモリの一意の識別子またはパス(例: user/preferences/coding_style または project/architecture)。
content (string または object, 必須): 保存するコア情報。
project_root (string, 必須): アクティブなプロジェクトのルートディレクトリへの絶対パス(例: /Users/user/Projects/my-app)。
tags (stringの配列, オプション): フィルタリング用の分類タグ。
namespace (string, オプション, デフォルト: "default"): スコープ/名前空間。
concept_type (string, オプション, デフォルト: "Agent Memory"): OKFコンセプトタイプ(例: Metric, Playbook, Attested Computation)。
title (string, オプション): 表示名。
description (string, オプション): 1行の要約。
resource (string, オプション): 基盤となるアセットの正規URI。
status (string, オプション, デフォルト: "stable"): ライフサイクル状態(draft | stable | deprecated)。
stale_after (string, オプション): ISO日付(YYYY-MM-DD)。
sources (オブジェクトの配列, オプション): プロビナンスソース [{resource, id, title, author, usage_count, last_modified}]
verified (オブジェクトの配列 または オブジェクト, オプション): 検証イベント [{by, at}]
generated_by (string, オプション): アクター識別子(アクター規約に従う <producer>/<version>, human:<id>, process:<id>)。
2. memory_retrieve
キーと名前空間で特定のメモリを取得します。
パラメータ:
key (string, 必須): 検索するメモリキー。
project_root (string, 必須): アクティブなプロジェクトのルートディレクトリへの絶対パス。
namespace (string, オプション, デフォルト: "default"): スコープ/名前空間。
3. memory_search
キーワード、タグ、または名前空間フィルターに一致するメモリを検索します。
パラメータ:
project_root (string, 必須): アクティブなプロジェクトのルートディレクトリへの絶対パス。
query (string, オプション): キー、フロントマター、コンテンツ全体でのキーワード検索クエリ。
tags (stringの配列, オプション): 特定のタグでフィルタリング。
namespace (string, オプション): 名前空間に検索を絞り込む。
limit (integer, オプション, デフォルト: 10): 結果の最大数。
5. memory_get_last
AGENT DIRECTIVE (セッション開始): 最後の記録セッションチェックポイント(system/last_memory)を取得し、AIエージェントがプロジェクトを開いたりセッションを開始したりしたときに、作業がどこで中断されたかを即座に把握できるようにします。
パラメータ:
project_root (string, 必須): アクティブなプロジェクトのルートディレクトリへの絶対パス。
namespace (string, オプション, デフォルト: "default"): スコープ/名前空間。
6. memory_update_last
AGENT DIRECTIVE (マイルストーンと進捗): マイルストーンの完了、重要な変更、作業の中断のたびに、正規セッションチェックポイント(system/last_memory)を更新します。
パラメータ:
content (string または object, 必須): 進捗を要約し、主要なメモリファイルを参照する簡単なメモまたは構造化された辞書。
project_root (string, 必須): アクティブなプロジェクトのルートディレクトリへの絶対パス。
namespace (string, オプション, デフォルト: "default"): スコープ/名前空間。
summary (string, オプション): 達成されたマイルストーンの1文での説明。
OKF (Open Knowledge Format) 構造
保存される各メモリは、OKF v0.2仕様(SPEC.md & OKF_RULES.md)に厳密に準拠しています:
---
type: Agent Memory
title: Coding Style
key: user/preferences/coding_style
namespace: default
tags:
- preferences
- style
status: stable
generated:
by: mcp-memory/0.2.0
at: '2026-08-12T19:23:35Z'
created_at: '2026-08-12T19:23:35Z'
updated_at: '2026-08-12T19:23:35Z'
---
User prefers functional programming style with explicit type annotations.
クイックスタート
1. リポジトリのクローン
git clone https://github.com/fellowgeek/mcp-memory
cd mcp-memory
2. 対話型セットアップウィザード
setup.pyを実行して、mcp-memoryをAIツールに自動検出および登録します:
python3 setup.py
注: setup.pyがツールの設定を完了すると、AIクライアントは必要に応じてバックグラウンドでmcp-memoryを自動的に起動します。ターミナルでサーバープロセスを手動で開始したり実行し続けたりする必要はありません。
3. CLI経由での手動実行(オプション/デバッグ用)
手動で起動を確認したり、stdio出力を検査したり、仮想環境(.venv)を事前に初期化したい場合は、run.shを直接実行できます:
./run.sh
手動クライアント設定
MCPクライアントを手動で設定したい場合は、"memory"サーバーエントリをrun.shを指すように追加します:
JSON設定(Antigravity, Claude Desktop, Cursor, Windsurf)
クライアントのmcp_config.jsonまたはclaude_desktop_config.jsonに追加します:
{
"mcpServers": {
"memory": {
"command": "/ABSOLUTE/PATH/TO/run.sh"
}
}
}
TOML設定(Codex Desktop)
~/.codex/config.tomlに追加します:
[mcp_servers.memory]
command = "/ABSOLUTE/PATH/TO/run.sh"
CLI設定
Claude Code CLI: claude mcp add --scope user memory -- /ABSOLUTE/PATH/TO/run.sh
Codex CLI: codex mcp add memory -- /ABSOLUTE/PATH/TO/run.sh
テスト
自動テストスイートを実行して、OKFシリアライゼーション、SQLiteデータベース操作、FastMCPツールの実行を確認します:
python3 test_memory.py
ストレージと環境変数
デフォルトでは、mcp-memoryは各プロジェクトのルートディレクトリ内にプロジェクト分離されたメモリストアを作成します:
OKF Markdownファイル(人間が読める形式): プロジェクトルート内のmemory/フォルダ。
SQLiteデータベース(非表示インデックス): プロジェクトルート内の.mcp_memory/memories.db。
この動作は、環境変数を使用してカスタマイズできます:
MCP_MEMORY_PROJECT_ROOT: プロジェクトルートディレクトリ(デフォルト: プロセスの現在の作業ディレクトリ cwd)。
MCP_MEMORY_DB_PATH: SQLiteデータベースファイルパス(デフォルト: プロジェクトルートからの相対パス .mcp_memory/memories.db)。
MCP_MEMORY_DIR: Open Knowledge Format (OKF) .mdファイル用のディレクトリ(デフォルト: プロジェクトルートからの相対パス memory)。
ヒント: すべてのプロジェクトで共有される単一のグローバルメモリストアを好む場合は、クライアントのMCP設定でMCP_MEMORY_DB_PATH=~/.mcp_memory/memories.db および MCP_MEMORY_DIR=~/.mcp_memory/memory を設定します。