Project Memory MCP について
Project Memory MCPは、会話をまたいでプロジェクトの知識をMarkdownに保持するMCPサーバー兼Claude Codeプラグインです。プラグインはセッション開始時の読み込みや、記憶の整理・重複除去も自動で行えます。
主な機能
- 01Markdownでプロジェクト情報を保存・取得
- 02SEARCH/REPLACEによる差分更新
- 03部分一致による記憶の検索
- 04Claude Codeの開始時に記憶を自動読込
- 05記憶ファイルの自動整理と重複除去
活用シーン
- 01会話をまたいで設計判断や注意点を保持
- 02プロジェクト記録を検索して周辺情報を取得
- 03Claude Codeの開始時にプロジェクト記憶を読込
- 04重複または古い記憶項目を整理
MCP 対応
MCPサーバーは、MEMORY.mdの読み取り、検索、全体置換、差分更新のツールを提供します。Codex、Claude Desktop、CursorなどのMCPクライアントで利用でき、許可ディレクトリでアクセス範囲を制限できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Project Memory MCP
プロジェクトのメモリを永続化するための MCP サーバーおよび Claude Code プラグインです。MEMORY.md ファイルを使って、AI エージェントが会話をまたいでプロジェクトに関する知識を維持できるようにします。
機能
- Markdown 形式でプロジェクトの知識を保存・取得
- SEARCH/REPLACE パッチによる段階的な更新
- 自動読み込みフック — 最初のプロンプトでプロジェクトのメモリを自動的に読み込みます(Claude Code プラグイン)
- Dream による統合 — プロジェクトのメモリを自動的に整理し、重複を除去します(Claude Code プラグイン)
インストール
Claude Code プラグイン(推奨)
MCP サーバー、自動読み込みフック、Dream による統合をインストールします:
/plugin marketplace add /path/to/project-mem-mcp
/plugin install project-mem@cc-plugin-project-mem
スタンドアロン MCP サーバー
Codex、Claude Desktop、Cursor、その他の MCP クライアント向け:
uvx project-mem-mcp
MCP クライアントの設定
{
"mcpServers": {
"project-mem-mcp": {
"command": "uvx",
"args": [
"project-mem-mcp",
"--allowed-dir", "/path/to/your/projects"
]
}
}
}
--allowed-dir 引数は、サーバーがアクセスできるディレクトリを制限します。複数回指定できます。省略した場合、現在の作業ディレクトリがデフォルトになります。
ソースからインストール
git clone https://github.com/pynesys/project-mem-mcp.git
cd project-mem-mcp
python -m venv venv
source venv/bin/activate
pip install -e .
ツール
get_project_memory
MEMORY.md の内容を取得します。追加の引数がない場合は、ファイル全体を返します。ファイルが推定トークン数で約20Kを超える場合、サーバーは ValueError を発生させます(ほとんどのクライアントのツール結果上限より少ない値です)。必要な内容を取得するには、head_only または offset/limit を使用してください。
get_project_memory(
project_path: str,
offset: int = 0, # 1-indexed start line; 0 = from start
limit: int | None = None, # max lines to return
head_only: bool = False, # return only size + heading TOC
) -> str
大きなファイルでの一般的な使い方:最初に head_only=True を指定してサイズとセクションの目次(行範囲)を取得し、その後 offset/limit で各セクションを取得します。
search_project_memory
MEMORY.md 内を部分文字列で検索します。大文字と小文字は区別しません。一致した行を1始まりの行番号とともに返します。一致箇所の前後のコンテキストを取得するには、get_project_memory(offset, limit) と組み合わせてください。
search_project_memory(
project_path: str,
query: str,
max_results: int = 50,
) -> str
set_project_memory
MEMORY.md 全体を上書きします。新しいプロジェクトメモリを作成するとき、またはパッチの適用に失敗したときに使用します。
set_project_memory(
project_path: str,
project_info: str | None = None,
project_info_file: str | None = None,
)
内容の指定元は、次の2つのうち正確に1つです。project_info は Markdown テキストを直接指定します。project_info_file は、サーバーが読み込む UTF-8 ファイルの絶対パスです。ファイルに下書きした大規模な書き換えでは、内容をパラメーターとして再度出力する必要がないため、こちらの使用を推奨します。パラメーターはシェル展開されないため、project_info 内の $(cat draft.md) は機能しません(サーバーは、未展開の置換に見えるペイロードを拒否します)。
update_project_memory
MEMORY.md に単一の SEARCH/REPLACE パッチを適用します:
update_project_memory(project_path: str, patch_content: str)
パッチ形式:
<<<<<<< SEARCH
Text to find in the project memory file
=======
Text to replace it with
>>>>>>> REPLACE
検索テキストはファイル内に正確に1回だけ出現する必要があります。内容を削除するには、置換テキストを空にしてください。
プラグインの機能
Claude Code プラグインとしてインストールすると、次の機能も利用できます:
Project-memory スキル(自動起動)
プロジェクトメモリをいつ、どのように保存するかを Claude に案内します。保存する価値のある知見(アーキテクチャ上の決定事項、注意点、自明ではないパターン、現在の作業コンテキストなど)が見つかると、自動的に起動します。このスキルは user-invocable: false に設定されているため、スラッシュコマンドの選択画面には表示されません。メインモデルが自律的に呼び出します。
自動読み込みフック
各セッションの最初のプロンプトで、MEMORY.md をコンテキストに自動的に読み込みます。手動でツールを呼び出す必要はありません。
夢の統合
書き込み後に、次の条件を満たすとプロジェクトメモリの自動メンテナンスが実行されます。
- ファイルサイズが50KBを超えた場合
- 前回の統合から24時間以上経過した場合
夢の統合では、sonnet サブエージェントが起動し、次の作業を行います。
CLAUDE.mdファイル内で重複しているコンテンツを削除します- 使用されなくなったトピックをまとめ、古い
Recent Sessionsのエントリを簡潔にします - 明確さとLLMの読みやすさを高めるように再構成します
- ファイルの内容をそのまま維持するのではなく、目安として1回の処理で約30%、大幅に縮小します
夢の統合を起動したセッションで、変更せずに残す必要のある内容を書き込んだ場合は、サブエージェントにポインターを記した短い Preserve verbatim リストを渡します。該当項目はそのまま保持され、ファイルの残りの部分では統合が実行されます。
バックアップは作成されません。必要に応じて、git を使って夢の統合前の状態に戻してください。
手動で実行する場合:/dream
前回の夢の統合のタイムスタンプは、MEMORY.md の先頭にある YAML フロントマターブロック内の last_dream: に保存されます。以前このプラグインを使用していたプロジェクトには、.claude/.last-dream-timestamp ファイルが残っている場合があります。このファイルは現在無視されるため、安全に削除できます(アップグレード後、最初の夢の統合の実行時にフロントマターが更新されます)。
セキュリティ
- プロジェクトのパスは
--allowed-dir引数に照らして検証されます - プロジェクトのメモリファイルに機密情報を含めないでください
- プロジェクトのメモリファイルは英語で記述する必要があります
依存関係
- fastmcp (>=3.2.0, <4.0.0)
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。