memory-lean について
memory-lean は、コーディングエージェントにセッションをまたぐナレッジグラフ型の記憶を提供する、ローカルファイルベースの MCP サーバーです。順位付き検索スニペットとブラウザー UI を備え、参照サーバーと同じファイル名やツール名を使いながら応答を簡潔に保ちます。
主な機能
- 01エンティティと関係の永続グラフ
- 02一致スニペット付きの順位検索
- 03記憶を閲覧・編集するブラウザー UI
- 04超過した事実のアーカイブと復元
- 05ロックと日次バックアップによるグラフ共有
- 06参照サーバーと互換性のあるファイル名とツール名
活用シーン
- 01コーディングセッション間でプロジェクト情報を保持
- 02タスク開始前に関連するプロジェクト情報を検索
- 03ブラウザーでエージェントの記憶を確認・編集
- 04複数のエージェントセッションで記憶グラフを共有
MCP 対応
stdio 経由で、グラフの検索、読み取り、編集を行う MCP ツールを提供します。エージェント間で同じローカルグラフを共有でき、Web UI からも変更できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
11掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| limit | number | いいえ | 結果の最大数(デフォルト 10、最大 50) |
| query | string | はい | 検索語 |
詳細
memory-lean
コンテキストウィンドウを圧迫しない、AI コーディングエージェント向けの長期記憶です。
エージェントが低コストで検索できるナレッジグラフと、そのすべてを確認・編集できるウェブ UI を提供します。
クイックスタート · ウェブ UI · 仕組み · ツール · 12 種類のエージェント向けセットアップ · 貢献
memory-lean は、Claude Code、Codex、Cursor、MiMo Code、その他すべての MCP クライアントに、セッションをまたいで使える記憶を提供するMCPサーバーです。存在するプロジェクト、依存関係、リリース済みのバージョン、保留中の作業、苦労して学んだルールなどを記憶できます。参照用のメモリーサーバー(@modelcontextprotocol/server-memory)と同じファイル名とツール名を使う、差し替え可能な代替品でありながら、回答は約 40 分の 1 のサイズです。
特長
|
回答を約 40 分の 1 に削減。 検索ではすべてのエンティティの全情報ではなく、関連度順の名前一覧と一致した行を返すため、エージェントはあらゆるタスクの前に記憶を確認できます。 |
人向けのウェブ UI。 グラフ全体を種類ごとにグループ化して確認し、関連をたどり、あらゆる情報を追加・編集・削除できます。エージェントによる書き込みはリアルタイムで表示されます。 |
|
そのまま置き換え可能。 参照用サーバーと同じ |
あらゆるエージェントで動作。 Claude Code、MiMo Code、Codex、Cursor、Copilot、Gemini CLI、Zed、JetBrains などに対応したコピー&ペーストで設定できる手順と、エージェントに使い方を教える指示が用意されています。 |
|
自動的に小さく保ちます。 短い事実、エンティティごとの上限、あふれた情報を保存するアーカイブにより、グラフが長文だらけになることはありません。 |
プライベートで安全。 ローカルのプレーンファイル、日次バックアップ、並行セッション用の書き込みロック、ネットワークアクセスなし。サーバーファイルは 1 つ、依存関係は 0 です。 |
237 個のエンティティ、355 個のリレーション、1,160 個の事実からなる実際のグラフで測定しました (トークン数 ≈ 文字数 ÷ 4)。
| 呼び出し | リファレンスサーバー | memory-lean | |
|---|---|---|---|
read_graph | 約 77,800 トークン | 約 2,000 トークン | 40 倍削減 |
search_nodes、よく使われる 5 語の平均 | 約 31,000 トークン | 約 770 トークン | 40 倍削減 |
1 つか 2 つのエンティティに一致する絞り込んだ検索では、削減できる量は少なくなります。削減できる部分がほとんどないためです。独自のグラフを測定するには、クローンから node tools/bench.mjs を実行してください。読み取り専用で、内容は表示せずサイズを出力します。
クイックスタート
Claude Code:プラグインをインストールします。サーバー、スキルとしての手順、各セッションの開始時に表示される短いリマインダー、/memory-ui が追加されます。
/plugin marketplace add zamansheikh/memory-lean
/plugin install memory-lean@memory-lean
その他のエージェント:MCP 設定にサーバーを追加し、手順を渡します。
{
"mcpServers": {
"memory": { "command": "npx", "args": ["-y", "memory-lean"] }
}
}
npx -y memory-lean --protocol >> AGENTS.md # into the rules file your agent reads
まずは試してみますか? 架空のサンプルグラフで Web UI を開きます。
npx -y memory-lean --ui --demo
各エージェントのセットアップ
| エージェント | サーバー設定 | 手順 |
|---|---|---|
| Claude Code | プラグイン | プラグインに含まれています |
| Xiaomi MiMo Code | mimocode.jsonc | スキルまたは AGENTS.md |
| opencode | opencode.json | AGENTS.md |
| OpenAI Codex CLI | codex mcp add | AGENTS.md |
| Cursor | .cursor/mcp.json | AGENTS.md またはルール |
| VS Code (Copilot) | .vscode/mcp.json | copilot-instructions.md |
| Gemini CLI | settings.json | GEMINI.md |
| Windsurf | mcp_config.json | ルール |
| Cline | cline_mcp_settings.json | .clinerules/ |
| Zed | settings.json | AGENTS.md または .rules |
| JetBrains IDEs | AI Assistant の設定 | ルールまたはガイドライン |
| Claude Desktop | claude_desktop_config.json | プロジェクトの手順 |
グラフは、どのエージェントが書き込んでも、最初の書き込み時に ~/.claude/memory-graph/memory.jsonl に作成されます。そのため、すべてのエージェントで 1 つのメモリを共有できます。別の場所に保存するには、MEMORY_FILE_PATH を設定します。
Web UI
npx -y memory-lean --ui
ブラウザーでメモリーを開きます。エージェントにできることは、すべてここで実行できます。
- 探索する。 種類ごとに吹き出しが表示されます。エンティティをクリックすると、つながっているすべての要素が強調表示されます。ノードをドラッグして配置を調整し、スクロールして拡大・縮小できます。検索では名前、種類、事実が一致します。
- 編集する。 事実の追加、編集、削除、エンティティの名前変更や種類の変更、関係の追加と削除、エンティティの作成と削除、アーカイブ済みの事実の復元ができます。すべての変更に、エージェントのツールと同じチェックが適用されます。
- 変更を確認する。 エージェントが行った変更は2秒以内に表示されます。
- 問題を見つける。 概要には保留中の作業、最も多くつながっているエンティティ、予算を超過している項目が表示されます。予算超過の項目はグラフ上でもマークされます。
![]() | ![]() |
| つながりをたどる。エンティティを選択すると、その事実と関係を確認できます。 | 何でも見つかる。名前、種類、事実をまとめて検索できます。 |
![]() | ![]() |
| その場で編集。エージェントと同じ300文字の上限が適用されます。 | ライトまたはダーク。システム設定に従うか、テーマを選択できます。 |
ページはお使いのマシン上(127.0.0.1)でのみ動作し、表示されるリンクに含まれる一度限りのキーが必要です。そのため、他のWebサイトがメモリーを読み取ったり変更したりすることはできません。どこにもアップロードされません。
仕組み
検索してから開く
リファレンスサーバーは、検索に対して、一致するすべてのエンティティを整形済みJSONとして返します。memory-leanは、一致した行を添えた名前のランキングを返します。
> search_nodes { "query": "deploy" }
57 match "deploy", top 10 shown (narrow the query or raise limit). open_nodes for full entities.
- shop-backend [service] 12 obs, 6 rel
› 2026-03-02: deployed 2.4.0 to production
› deploy with scripts/release.sh, never by hand
- PENDING shop-backend 2.4.0 [pending] 2 obs, 3 rel
› …mobile apps still call the old endpoint until the deploy of 2.4.0 reaches them
次に、エージェントは必要なものだけを開きます。
> open_nodes { "names": ["shop-backend"] }
## shop-backend [service] (3 archived)
- NestJS API behind api.example.com
- 2026-03-02: deployed 2.4.0 to production
## relations
shop-app -talks_to-> shop-backend
PENDING shop-backend 2.4.0 -blocks-> shop-app
軽量さを保つ仕組み
| 上限 | 内容 |
|---|---|
| 小さな応答 | search_nodesはスニペット付きの名前を最大10件返し、read_graphは名前のインデックスを返します。エンティティ全体を返すのはopen_nodesだけです。 |
| 短い事実 | 300文字を超える観察事項は拒否され、エージェントには分割するか、詳細をリポジトリに記載するよう伝えられます。 |
| エンティティごとの上限 | エンティティが保持できる観察事項は15件です。上限を超えると、日付の古いものからarchive/<entity>.mdに移動します。削除されることはありません。一覧表示や復元ができ、日付のない事実(アイデンティティに関する事実)は常に残ります。 |
| 絞り込める検索 | すべての単語がエンティティ内のどこかに一致する必要があるため、単語を追加するほど結果が絞り込まれます。リファレンスサーバーは、クエリ全体と完全に一致するフレーズを検索します。 |
データを安全に保つ仕組み
| 保護策 | 内容 |
|---|---|
| 安全に共有 | 書き込み時にロックファイルを取得するため、複数のエージェントセッションで1つのグラフを使っても互いの変更を上書きしません。書き込みのたびにファイル全体がアトミックに置き換えられます。 |
| 毎日のバックアップ | 1日1回、backups/にコピーが保存され、直近7件が保持されます。 |
| 破損した行も保持 | 読み取れない行は、次回の書き込み時にmemory.jsonl.unreadableへ移され、報告されます。黙って削除されることはありません。 |
| プレーンファイル | グラフはJSON Lines、アーカイブはMarkdown、バックアップはコピーです。すべて手動で読み取り、grepし、編集できます。 |
ツール
| ツール | 返される内容 |
|---|---|
search_nodes | エンティティ名のランク付きリスト。件数と、一致するスニペットを最大 2 件ずつ含みます。各単語は、名前、種類、観察事項、またはエンティティに接続する関係の種類のいずれかと一致する必要があります。 |
open_nodes | 指定したエンティティの全情報を、簡潔なテキスト形式で返します。エンティティに接続するすべての関係と、アーカイブ件数も含まれます。不明な名前には「もしかして」と候補を提示します。 |
read_graph | 種類ごとにまとめたエンティティ名と観察事項の件数のインデックスです。観察事項は含まれません。 |
create_entities | エンティティを作成します。既存の名前はスキップされます。 |
create_relations | 既存のエンティティ間に関係を作成します。重複はスキップされます。 |
add_observations | 長さの上限とエンティティごとの上限を適用しながら、エンティティに事実を追加します。 |
delete_observations | 完全一致するテキストの観察事項を削除します。 |
delete_relations | 指定した関係を削除します。 |
delete_entities | エンティティと、それに接続するすべての関係を削除します。 |
rename_entity | 観察事項、関係、アーカイブを維持したまま、エンティティの名前を変更します。リファレンスサーバーにはありません。 |
archived_observations | エンティティのアーカイブ済み項目を一覧表示します。任意で絞り込み、選択した事実を復元できます。リファレンスサーバーにはありません。 |
読み取りツール 3 つには読み取り専用のマークが付いているため、対応するクライアントでは確認を求めずに実行できます。
コマンドライン
| コマンド | 動作 |
|---|---|
memory-lean | MCP サーバーを stdio 経由で実行します。エージェントはこれを起動します。 |
memory-lean --ui [port] | Web UI を開きます。--no-open はリンクを出力するだけです。--demo は作成した仮のグラフの使い捨てコピーを使用します。 |
memory-lean --protocol | エージェントの指示を出力します。AGENTS.md、CLAUDE.md、または GEMINI.md にそのまま追記できます。 |
memory-lean --skill <dir> | 同じ指示を Agent Skill として <dir>/memory-graph に書き込みます。 |
memory-lean --lint | グラフ内で予算を超えている項目を報告します。読み取り専用です。 |
memory-lean --compact | グラフをバックアップしてから、上限を超えた観察事項をアーカイブに移動します。 |
memory-lean --version | バージョンを出力します。 |
npx を使う場合は、先頭に npx -y を付けます。例:npx -y memory-lean --ui。
エージェントに使い方を教える
メモリーサーバーが役立つのは、エージェントが作業前に読み込み、何かが変わったときに書き込む場合だけです。docs/AGENT-PROTOCOL.md には、タスク開始時に参照する情報、記録する内容、名前の付け方、保存してはいけない情報をまとめた、すぐに使える指示セットがあります。Claude Code プラグインにはこれが含まれています。それ以外のエージェントには、次のコマンド 1 つでインストールできます。
npx -y memory-lean --protocol >> AGENTS.md # into a rules file: always on
npx -y memory-lean --skill .agents/skills # as an Agent Skill: loaded when relevant
内容に合わせて、エンティティの種類と名前を調整してください。
リファレンスメモリーサーバーからの移行
MEMORY_FILE_PATH を既存の memory.jsonl に設定し、コマンドを切り替えてください。ファイル形式は同一なので、いつでも元に戻せます。300 文字を超える既存の観察事項はそのまま維持され、新しい書き込みのみチェックされます。予算を超えている項目を確認し、必要に応じて修正するには、次を実行してください。
npx -y memory-lean --lint # report only
npx -y memory-lean --compact # back up, then move overflow to archive/
設定
すべて任意の設定で、サーバーの環境変数として指定します。
| 変数 | デフォルト | 意味 |
|---|---|---|
MEMORY_FILE_PATH | ~/.claude/memory-graph/memory.jsonl | グラフの保存場所 |
MEMORY_OBS_MAX_CHARS | 300 | 受け付ける観察事項の最大文字数 |
MEMORY_OBS_MAX | 15 | 古い日付付きの観察事項がアーカイブされるまでに、エンティティごとに保持できる観察事項の数 |
MEMORY_SEARCH_LIMIT | 10 | 検索結果のデフォルト件数 |
MEMORY_BACKUPS_KEPT | 7 | 保持する日次バックアップの数 |
FAQ
メモリはどこかに送信されますか?
いいえ。サーバーはローカルファイルの読み書きを行い、ネットワークリクエストは一切行いません。Web UIがリッスンするのは127.0.0.1のみです。グラフをgitに含めないでください。また、パスワード、キー、トークンは絶対に保存しないでください。秘密情報の値ではなく、その保存場所を記録してください。
複数のエージェントやセッションで1つのグラフを共有できますか?
はい。書き込みのたびにロックを取得し、ファイルを再読み込みしてからアトミックに置き換えるため、並行するセッション(およびWeb UI)同士で変更が上書きされることはありません。
埋め込みではなく、なぜプレーンテキスト検索を使うのですか?
モデルもインデックスも依存関係も不要で、エージェントのクエリの大半は、すでに知っている名前だからです。巧妙なクエリより、適切なエンティティ名のほうが重要です。
古い事実はどうなりますか?
エンティティの事実が15件を超えると、日付のある古いものからグラフと同じ場所にあるarchive/<entity>.mdへ移動します。archived_observations、またはWeb UIの「Archive」セクションで、アーカイブ済みの項目を確認して復元できます。
ロードマップ
- サーバー、スキル、
/memory-uiを備えたClaude Codeプラグイン - 12種類のエージェント向けセットアップガイド
-
rename_entityとアーカイブからの復元 - グラフの表示と編集ができるWeb UI
- 公式MCPレジストリに掲載
- Claude Codeプラグインディレクトリに掲載
- すべてのエンティティのアーカイブ済み事実を横断検索
- Web UIでの取り消し機能
コントリビューション
アイデア、バグ報告、プルリクエストを歓迎します。サーバーは依存関係のない1つのファイルで、Web UIは1つのHTMLファイルです。また、npm testは数秒で完了するため、最初の変更にもすぐに取り組めます。CONTRIBUTING.mdには、構成、基本ルール、最初の貢献に適した課題の一覧が記載されています。
memory-leanでトークンを節約できたら、⭐を付けると、ほかの人にも見つけてもらいやすくなります。
サポート
memory-leanは無料で、MITライセンスのもとで提供されています。役に立った場合は、開発を支援できます。
作者
Siliftonの**Zaman Sheikh**が作成、保守しています。
Model Context Protocol reference memory serverのファイル形式とツール名をベースにしています。
ライセンス
MIT © 2026 Zaman Sheikh。商用利用を含め、自由に使用、変更、共有できます。著作権表示は残してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。



