MCPサーバ - Memory Bank
概要
Memory Bank MCP (@allpepper/memory-bank-mcp) は、AIアシスタントのコンテキスト永続化を実現するMCPサーバ実装である。
Cline Memory Bankの概念を基に、マルチプロジェクト対応のMCP実装として拡張されている。
プロジェクト固有の知識をマークダウンファイルで構造化して、複数のセッションにわたってAIアシスタントが継続的にアクセスできる永続メモリシステムを提供する。
これにより、AIアシスタントはセッションをまたいでプロジェクトの背景・設計・進捗情報を保持し、継続的な作業を行えるようになる。
開発元はalioshr (GitHub) であり、MITライセンスのもとで公開されている。
npmパッケージ名は @allpepper/memory-bank-mcp で、GitHubリポジトリ から入手できる。
Claude Desktop、Claude Code、Cline、Roo Code、VS Code、Cursor等の主要なMCPクライアントに対応し、Windows、MacOS、Linuxで動作する。
下表に、主な機能を示す。
| 機能 | 説明 |
|---|---|
| マルチプロジェクト対応 | プロジェクト固有のメモリバンクディレクトリで隔離管理 |
| 永続コンテキスト | セッション間でプロジェクトの知識を保持 |
| ファイル操作 | 構造化されたマークダウンファイルの読み取り・書き込み・更新 |
| セキュリティ | パストラバーサル防止による安全なファイルアクセス |
動作要件
前提条件
Memory Bank MCPを使用するために必要な前提条件を以下に示す。
- Node.js
- v16以上が必要。v18以上を推奨。
- npxコマンド
npxコマンドを使用して、Memory Bank MCPを実行するために必要- Node.jsに同梱されている。
- メモリバンク用ディレクトリ
- 環境変数
MEMORY_BANK_ROOTで指定するディレクトリが必要 - 事前に作成しておくこと。
- 環境変数
インストール
Smithery経由のインストール
Smithery CLIを使用してインストールする場合は、以下に示すコマンドを実行する。
npx -y @smithery/cli install @allpepper/memory-bank-mcp --client claude
--client オプションには、使用するMCPクライアント名 (claude 等) を指定する。
NPM直接インストール
npmを使用してグローバルインストールする場合は、以下に示すコマンドを実行する。
npm install -g @allpepper/memory-bank-mcp
MCPクライアントの設定
設定ファイルの場所
各MCPクライアントの設定ファイルの場所は、以下の通りである。
Claude Desktop
- Linux
- ~/.config/Claude/claude_desktop_config.json
- MacOS
- ~/Library/Application Support/Claude/claude_desktop_config.json
- Windows
- %APPDATA%\Claude\claude_desktop_config.json
Claude Code
- ローカルスコープ
- .mcp.json (プロジェクトルート) :
claude mcp addコマンドで生成される。
- .mcp.json (プロジェクトルート) :
- ユーザスコープ
- ~/.claude.json (ホームディレクトリ)
VS Code
- .vscode/mcp.json (プロジェクトルート)
Cursor
- グローバル設定
- ~/.cursor/mcp.json
- プロジェクト設定
- .cursor/mcp.json
Claude Desktopの設定
claude_desktop_config.json ファイルに以下に示す内容を設定する。
{
"mcpServers": {
"memory-bank": {
"command": "npx",
"args": ["-y", "@allpepper/memory-bank-mcp@latest"],
"env": {
"MEMORY_BANK_ROOT": "/path/to/memory-banks"
}
}
}
}
設定ファイルを保存した後、Claude Desktopを再起動して設定を反映する。
Claude Codeの設定
Claude Codeでは、claude mcp add コマンドを実行して、Memory Bank MCPを追加できる。
以下に示すコマンドで、MCPサーバをClaude Codeに登録する。
claude mcp add memory-bank -- npx -y @allpepper/memory-bank-mcp@latest
プロジェクトの .mcp.json ファイルに設定を記述する場合は、以下の内容を記述する。
{
"mcpServers": {
"memory-bank": {
"command": "npx",
"args": ["-y", "@allpepper/memory-bank-mcp@latest"],
"env": {
"MEMORY_BANK_ROOT": "/path/to/memory-banks"
}
}
}
}
VS Code / Cursorの設定
.vscode/mcp.json または .cursor/mcp.json ファイルに以下に示す内容を設定する。
ワークスペースフォルダ内にメモリバンクを配置する場合は、変数 ${workspaceFolder} を使用できる。
{
"mcpServers": {
"memory-bank": {
"command": "npx",
"args": ["-y", "@allpepper/memory-bank-mcp@latest"],
"env": {
"MEMORY_BANK_ROOT": "${workspaceFolder}/memory-banks"
}
}
}
}
環境変数
環境変数一覧
下表に、Memory Bank MCPの動作をカスタマイズするための環境変数を示す。
| 環境変数 | 必須 | 説明 |
|---|---|---|
MEMORY_BANK_ROOT |
必須 | メモリバンクディレクトリのルートパスを指定する。 全プロジェクトのメモリバンクがこのディレクトリ配下に作成される。 |
MEMORY_BANK_FOLDER |
オプション | メモリバンクのカスタムフォルダ名を指定する。 デフォルト値は memory-bank である。 |
提供ツール
ツール一覧
下表に、Memory Bank MCPが提供するツールを示す。
| ツール名 | 説明 | パラメータ |
|---|---|---|
memory_bank_read |
メモリバンクファイルの内容を読み取る。 | projectId: プロジェクト識別子filePath: 読み取るファイルのパス
|
memory_bank_write |
新規メモリバンクファイルを作成して内容を書き込む。 | projectId: プロジェクト識別子filePath: 作成するファイルのパスcontent: 書き込む内容
|
memory_bank_update |
既存のメモリバンクファイルを部分的に更新する。 | projectId: プロジェクト識別子filePath: 更新するファイルのパスpatches: 適用するパッチ内容
|
list_projects |
メモリバンクに登録されているプロジェクトの一覧を表示する。 | なし |
list_project_files |
指定したプロジェクト内のファイル一覧を表示する。 | projectId: プロジェクト識別子
|
メモリバンクのファイル構造
推奨ファイル構成
メモリバンクは、プロジェクトルート配下の memory-bank ディレクトリに構造化されたマークダウンファイルとして保存される。
推奨されるファイル構成を以下に示す。
<プロジェクト>/ └── memory-bank/ ├── projectContext.md # プロジェクトの基礎定義 (目的、スコープ、制約) ├── productContext.md # ビジネス・ユーザー視点の背景情報 ├── activeContext.md # 現在のセッション状態とタスク情報 ├── systemPatterns.md # 技術アーキテクチャと設計パターン ├── techContext.md # 技術スタック・開発環境の詳細 ├── progress.md # プロジェクトの進捗状況と履歴 └── decisionLog.md # 技術的意思決定の記録 (オプション) </syntaxhighlight>
各ファイルの役割
下表に、各メモリバンクファイルの役割と記録する内容を示す。
| ファイル名 | 役割 | 記録する内容 |
|---|---|---|
| projectContext.md | プロジェクトの基礎定義 | プロジェクトの目的、スコープ、制約条件 |
| productContext.md | 製品・ビジネス背景 | ビジネス要件、ユーザー視点の背景情報 |
| activeContext.md | 現在の作業状態 | 現在のセッション状態、進行中のタスク情報 |
| systemPatterns.md | 技術設計情報 | 技術アーキテクチャ、設計パターン、規約 |
| techContext.md | 技術環境情報 | 技術スタック、開発環境の詳細、依存関係 |
| progress.md | 進捗管理 | プロジェクトの進捗状況と作業履歴 |
| decisionLog.md | 意思決定記録 (オプション) | 技術的意思決定とその根拠の記録 |
使用例
Memory Bank MCPの各ツールは、AIアシスタントが自然言語の指示を受けて自動的に呼び出す。
メモリバンクの初期化
プロジェクト開始時にメモリバンクを初期化する場合の操作例を以下に示す。
- 新しいプロジェクトでメモリバンクを作成する場合
# プロンプト例 : Initialize a memory bank for this project.
セッション開始時の確認
セッション開始時に前回の作業状態を確認する場合の操作例を以下に示す。
- 前回のセッションからの継続作業を確認する場合
# プロンプト例 : Let me check the active context to see where we left off.
設計決定の記録
アーキテクチャや技術的な意思決定をメモリバンクに記録する場合の操作例を以下に示す。
- 技術的な設計決定を記録する場合
# プロンプト例 : Record this architectural decision in the memory bank.
進捗の更新
作業の進捗状況をメモリバンクに記録する場合の操作例を以下に示す。
- 本日完了した作業を進捗ファイルに記録する場合
# プロンプト例 : Update the progress file to reflect what we've completed today.
トラブルシューティング
一般的な問題
下表に、Memory Bank MCPで発生する可能性がある問題と対処法を示す。
| 問題 | 原因 | 対処法 |
|---|---|---|
| Node.jsバージョンエラーが発生する | Node.jsのバージョンが要件を満たしていない。 | Node.js v18以上にアップグレードする。 アップグレード後、パッケージを再インストールする。 |
| サーバが起動しない | 設定ファイルの記述が誤っている。 | 設定JSONの command と args の内容を確認する。ターミナルで手動実行してエラー内容を確認する。 |
| JSON解析エラーが発生する | サーバの出力に不正なJSON形式が含まれている。 | サーバのログを確認する。 パッケージを一度アンインストールして再インストールする。 |
| 接続タイムアウトが発生する | サーバの起動に時間が掛かっている。 | MCPクライアントの設定でタイムアウト値を増加させる。 例: "timeout": 300000
|
| 権限エラーが発生する | MEMORY_BANK_ROOT で指定したディレクトリへの書き込み権限がない。 |
ディレクトリの書き込み権限を確認する。 例: ls -ld /path/to/memory-banks権限がない場合は、 chmod 755 /path/to/memory-banks を実行する。
|
| パストラバーサルエラーが発生する | 指定したファイルパスが MEMORY_BANK_ROOT 配下にない。 |
ファイルパスが MEMORY_BANK_ROOT 内に収まっているか確認する。../ 等の相対パスによる上位ディレクトリへのアクセスは拒否される。
|