delx-memory について
delx-memory は、エージェントがセッションや MCP クライアントをまたいで共有できる SQLite のキー・バリュー型メモリを提供する、ローカル優先の MCP サーバーです。全文検索、期限管理、名前空間による分離に加え、認証情報の保存や意図しない変更を防ぐ仕組みを備えています。
主な機能
- 01共有 SQLite メモリストア
- 02全文検索、タグ、プレフィックス検索
- 03TTL 対応の読み取り
- 04認証情報らしいデータの拒否
- 05明示的な意図が必要な変更
- 06名前空間ごとのメモリ分離
活用シーン
- 01エージェントのセッション間で文脈を再開
- 02MCP クライアント間でメモリを共有
- 03タグやプレフィックスでメモリを検索
- 04メモリへの認証情報の保存を回避
MCP 対応
標準の stdio 接続で、メモリの検出、読み取り、検索、エクスポート、変更ツールを MCP クライアントに公開します。オプションで HTTP にも対応し、変更には explicit_user_intent: true が必要です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y delx-memoryDELX_MEMORY_PATHOptional path to the SQLite store. Defaults to ~/.delx-memory/db.sqlite.DELX_MEMORY_TRANSPORTOptional transport: stdio (default) or http.DELX_MEMORY_HOSTHTTP host when transport=http. Defaults to 127.0.0.1.DELX_MEMORY_PORTHTTP port when transport=http. Defaults to 3030.DELX_MEMORY_ALLOWED_ORIGINCORS allow-origin when transport=http. Defaults to http://HOST:PORT.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
8掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| key | string | はい | メモリエントリの安定した識別子です。自由形式のテキストです。大文字と小文字を区別します。 |
詳細
delx-memory
ローカルファーストの永続メモリ MCP サーバーです。MCP に対応するあらゆるエージェント(Claude Desktop、Cursor、Hermes、OpenClaw、Codex)が読み書きできる共有 SQLite ストアを 1 つ提供し、セッション間だけでなくツール間でもコンテキストを維持します。
選ばれる理由
チャットクライアントはそれぞれ、一時的なコンテキストしか保持しません。タブを閉じると、設定は消えてしまいます。Claude Desktop から Cursor に切り替えると、最初からやり直しです。Hermes でサイドプロジェクトを固定しても、次のエージェントには見えません。
delx-memory は、単一の共有 SQLite ファイルをキー/値形式のメモリレイヤーとして公開する小さな MCP サーバーです。MCP に対応するあらゆるクライアントが同じメモリファイルを読み書きできるため、真の継続性とツール間のコンテキスト共有を実現します。
- 15 個のツール — 検出+引き継ぎ+一括操作+FTS5 検索+意図によって制御される変更。
- SQLite の保存先は
~/.delx-memory/db.sqlite(ディレクトリの権限は 0700、ファイルの権限は 0600)です。 - シークレットのブロック:認証情報のようなキーや値の保存を拒否します。
- TTL に対応しています(読み取り時に遅延期限切れ処理を行います)。
- タグ+プレフィックスフィルター+FTS5 全文検索(bm25 によるランキング、語幹処理、発音区別符号の折りたたみ。FTS5 が利用できない場合は LIKE にフォールバック)。
- 変更には
explicit_user_intent: trueが必要なため、先走ったエージェントがコンテキストを黙って書き換えることはありません。 - テレメトリーはゼロ。ホームへの通信もゼロ。ファイルはあなたのものです。
マルチエージェントの名前空間
# Agent A
DELX_MEMORY_NAMESPACE=claude npx -y delx-memory
# Agent B (same machine, isolated keys)
DELX_MEMORY_NAMESPACE=cursor npx -y delx-memory
キーは namespace::key として保存されます。単一のグローバルストアを使う場合は、環境変数を省略してください(デフォルト)。
フットプリント/軽量モード
- デフォルトのトランスポートは
liteです。MCP SDK を読み込まず、stdio 経由でツールのみを提供します(常時稼働するエージェントにとって、RSS を最も大きく削減できます)。 - SDK の全機能(プロンプト+リソース):
delx-memory --sdkまたはDELX_MEMORY_TRANSPORT=sdk。 - HTTP はオプションです:
delx-memory --http(Express+SDK。デフォルトでは引き続きループバックのみ)。 DELX_MEMORY_LEAN=1は SDK 経由の場合のみ適用されます(プロンプト/リソースを省略)。doctor --jsonはrss_kbを報告します。残る主なコストは Node とネイティブのbetter-sqlite3です(埋め込みなし)。
コミュニティによる計測(カスタムトランスポートと SDK の比較)では、SDK のツリーが主なオーバーヘッドであることが示されました。issue #7 を参照してください。
インストールと実行
# Run once (npx will download + boot)
npx -y delx-memory doctor
# Or install globally
npm install -g delx-memory
delx-memory doctor
doctor コマンドは Node のバージョン、DB の書き込み可能性、ファイル権限を確認してから、次の手順を表示します。
HTTP(v2 ステートレス)
デフォルトは stdio です。オプションの Streamable HTTP はセッション ID を使わず、JSON レスポンスを返し、ループバックのみで動作します。
npx -y delx-memory --http
# GET http://127.0.0.1:3030/health
# POST http://127.0.0.1:3030/mcp (sessionless)
環境変数:DELX_MEMORY_HOST、DELX_MEMORY_PORT、DELX_MEMORY_TRANSPORT=http。
MCP クライアントへの接続
Claude Desktop
macOS では、~/Library/Application Support/Claude/claude_desktop_config.json に追加します。
{
"mcpServers": {
"delx-memory": {
"command": "npx",
"args": ["-y", "delx-memory"]
}
}
}
その後、Claude Desktop を再起動します。examples/claude-desktop.json を参照してください。
Cursor
~/.cursor/mcp.json に追加します。examples/cursor.json を参照してください。
Hermes
examples/hermes.md を参照してください。
OpenClaw
examples/openclaw.md を参照してください。
Codex CLI
examples/codex.toml を参照してください。
異なる点(率直に)
| delx-memory | 一般的なクラウドメモリ | グラフメモリ MCP | |
|---|---|---|---|
| データがマシンの外に出るか | いいえ | はい | 通常はいいえ |
| 複数クライアントで同じストアを利用 | はい(1つの SQLite) | アカウントに紐づく | プロセス内 |
| エージェントによる変更の安全性 | explicit_user_intent | さまざま | まれ |
| シークレットの保存 | 明示的に拒否 | 許可されることが多い | 許可されることが多い |
| デフォルトの RSS パス | Lite(MCP SDK なし) | 該当なし | フルスタック |
| 複数エージェントの分離 | DELX_MEMORY_NAMESPACE | テナント | 手動 |
| 検索 | FTS5 bm25 | 埋め込み(コスト/漏えい) | グラフウォーク |
ベクトル DB ではありません。セカンドブレインの SaaS でもありません。すでにモデルを持つエージェントのための、ローカルでの継続性を提供します。
ツール(15)
セッション開始
| ツール | 目的 |
|---|---|
memory_handoff | 1回の呼び出しで再開用の概要を取得:統計情報と最近のキー(値は任意)。セッション開始時にはこちらを優先してください。 |
memory_agent_manifest | エージェント向けのマシンインストール/運用契約。 |
memory_connection_status / memory_stats | 準備状況とストアサイズ。 |
memory_capabilities / memory_data_inventory | エージェント向けの自己説明。 |
読み取り
| ツール | 目的 |
|---|---|
memory_list | キーのみ。フィルター:prefix、tag、since(差分同期)。 |
memory_get / memory_get_many | 正確なキーまたは一括取得(最大 50 件)。 |
memory_search | FTS5 bm25(+ LIKE フォールバック)。検索クイックスタートを参照してください。 |
変更(explicit_user_intent: true が必要)
| ツール | 目的 |
|---|---|
memory_set / memory_set_batch | 1 つのキー、または 1 回のトランザクションで最大 50 件をアップサート。 |
memory_forget / memory_forget_by_tag | 1 つのキー、またはタグを指定して削除。 |
memory_export | JSON/JSONL/Markdown を出力。 |
呼び出し元が explicit_user_intent: true を渡さない限り、すべての変更処理は実行を拒否します。この意図は、エージェントが独自にメモリの更新を判断した場合、その根拠を示さなければならないということです。ユーザーはツール呼び出しでフラグを確認でき、依頼していない場合は拒否できます。
プライバシーに関する契約(お読みください)
delx-memory はシークレットマネージャーではありません。シークレットには macOS Keychain/gnome-keyring/Windows Credential Manager を使用してください。
保存を拒否するもの:
oauth、token、secret、password、cookie、refresh、api_key、api-key、apikey、bearer、credential、session_idに一致するキー(大文字と小文字は区別しません)。- 認証情報の形式に一致する値:
- JWT トークン(
eyJ…) Bearer <token>ヘッダー- Stripe
sk_live_…/sk_test_… - Slack
xoxb-…/xoxp-…など - GitHub
github_pat_…/ghp_…/gho_…/ghs_…/ghr_… - OpenAI/Anthropic
sk-…(現実的な長さの場合) - AWS アクセスキー
AKIA… Authorization: <scheme> <token>形式の文字列
- JWT トークン(
- ネストされたオブジェクトも再帰的に走査されます。
refresh_tokenという名前のネストされたフィールドは、値が空でも拒否されます。
ローカルに保持されるもの:
- DB ファイルは
~/.delx-memory/db.sqliteに保存されます。 - ディレクトリはモード
0700、ファイルはモード0600で作成されます(Windows/WSL/非 POSIX ファイルシステムでは可能な範囲で対応)。 - アップロードはありません。テレメトリもありません。ホームへの通信もありません。
保証しないこと:
- 同じマシンを使う他のユーザー(root や
sudoを使う同居人)はファイルを読めます。これが問題になる場合は、フルディスク暗号化(FileVault、BitLocker、LUKS)を使用してください。 - **TTL はベストエフォートです。**期限切れの行は次回の読み取り時に遅延削除されます。SQLite は自動的に
VACUUMを実行しないため、解放されたページがディスク上に残る場合があります。機微な一時データについては、DB ファイルを他の暗号化されていないドットファイルと同様に扱ってください。 - **永続性は保証しません。**失いたくない場合は、他のドットファイルと同様に
~/.delx-memory/db.sqliteをバックアップしてください。
セッションの例
agent> memory_stats({})
→ { total_keys: 0, db_path: "/Users/me/.delx-memory/db.sqlite", … }
user> Remember that I prefer concise responses in pt-BR.
agent> memory_set({
key: "user_preferences",
value: { language: "pt-BR", verbosity: "concise" },
tags: ["profile", "preferences"],
explicit_user_intent: true
})
→ { action: "created", key: "user_preferences", … }
# … new chat, possibly different tool …
agent> memory_list({ tag: "preferences" })
→ [{ key: "user_preferences", updated_at: … }]
agent> memory_get({ key: "user_preferences" })
→ { found: true, value: { language: "pt-BR", verbosity: "concise" } }
ストレージレイアウト
| デフォルトパス | ~/.delx-memory/db.sqlite |
| 上書き | DELX_MEMORY_PATH 環境変数 |
| ディレクトリモード | 0700 |
| ファイルモード | 0600 |
| スキーマ | memory(key PRIMARY KEY, value, created_at, updated_at, ttl_expires_at, tags, metadata) |
| インデックス | ttl_expires_at の部分インデックス、および tags、updated_at |
| 値ごとの上限 | 64 KB(JSON シリアライズ後) |
| キーごとの上限 | 512 文字 |
CLI
delx-memory Start MCP stdio server
delx-memory --http Start local HTTP MCP server (127.0.0.1:3030)
delx-memory setup Print MCP client config snippets
delx-memory setup --json Print as JSON
delx-memory doctor Health check + next steps
delx-memory doctor --json Health check as JSON
delx-memory version Print version
環境変数
| 変数 | デフォルト値 | 用途 |
|---|---|---|
DELX_MEMORY_PATH | ~/.delx-memory/db.sqlite | DB ファイルの場所 |
DELX_MEMORY_TRANSPORT | stdio | stdio または http |
DELX_MEMORY_HOST | 127.0.0.1 | HTTP ホスト |
DELX_MEMORY_PORT | 3030 | HTTP ポート |
DELX_MEMORY_ALLOWED_ORIGIN | http://HOST:PORT | CORS オリジン |
開発
git clone https://github.com/davidmosiah/delx-memory
cd delx-memory
npm install
npm test # typecheck + build + smoke + secret-detector + ttl + tag-delete + metadata
リポジトリの規約については AGENTS.md、セキュリティモデルと報告ポリシーについては SECURITY.md、PR のルールについては CONTRIBUTING.md をご覧ください。
ライセンス
MIT © 2026 David Batista. 行動規範。
スキルまたは MCP
同じパッケージに、2 つの利用方法があります。MCP は stdio/HTTP でツールを登録します。クライアントに MCP がない場合、スキルを使って CLI 経由で同じツールを実行できます。
npx -y delx-memory call memory_connection_status --json '{}'
skill/SKILL.md をエージェントのスキルディレクトリにコピーしてください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。