メモリバンクMCP
Memory Bankは、チームが構造化されたプロジェクトドキュメントを作成、管理、そしてアクセスするのに役立つMCPサーバーです。プロジェクトの大まかな目標から技術的な詳細、日々の進捗状況まで、プロジェクトの知識のさまざまな側面を捉えた、相互に連携したMarkdownドキュメントのセットを生成・管理します。
特徴
AI生成ドキュメント: Gemini APIを活用して包括的なプロジェクトドキュメントを自動的に生成します
構造化知識システム: 6つのコア文書タイプを階層構造で維持します
MCP統合: AIアシスタントとのシームレスな統合を実現するモデルコンテキストプロトコルを実装
カスタマイズ可能な場所: メモリバンクディレクトリを作成する場所を指定します
ドキュメント テンプレート: プロジェクト概要、製品コンテキスト、システム パターンなどの事前定義されたテンプレート。
AI支援による更新: ドキュメントを手動で更新するか、AI支援で再生成します
高度なクエリ: コンテキストを考慮した関連性ランキングですべてのドキュメントを検索
Related MCP server: Linear
インストール
# Clone the repository
git clone https://github.com/tuncer-byte/memory-bank-mcp.git
cd memory-bank-mcp
# Install dependencies
npm install
# Create .env file with your Gemini API key (optional)
echo "GEMINI_API_KEY=your_api_key_here" > .env使用法
開発モード
# Start in development mode
npm run dev生産モード
# Build the project
npm run build
# Start in production mode
npm run startMCP構成
Memory Bank を Model Context Protocol (MCP) と統合するには、 mcp.jsonファイルに次の構成を追加します。
{
"memoryBank": {
"command": "node",
"args": ["/path/to/memory-bank-mcp/dist/index.js"],
"env": {
"GEMINI_API_KEY": "your_gemini_api_key_here"
}
}
}/path/to/memory-bank-mcp/dist/index.jsを、構築した index.js ファイルへの絶対パスに置き換え、Gemini API キー (該当する場合) を追加します。
例:
{
"memoryBank": {
"command": "node",
"args": ["/Users/username/memory-bank-mcp/dist/index.js"],
"env": {
"GEMINI_API_KEY": "AIzaSyXXXXXXXXXXXXXXXXXXXXXXXX"
}
}
}MCPツール
メモリ バンク MCP は、モデル コンテキスト プロトコルを介して次のツールを提供します。
initialize_memory_bank
すべてのドキュメント テンプレートを使用して新しいメモリ バンク構造を作成します。
パラメータ:
goal(文字列):プロジェクト目標の説明(10文字以上)geminiApiKey(文字列、オプション): ドキュメント生成用のGemini APIキーlocation(文字列、オプション):メモリバンクフォルダが作成される絶対パス
例:
await callTool({
name: "initialize_memory_bank",
arguments: {
goal: "Building a self-documenting AI-powered software development assistant",
location: "/Users/username/Documents/projects/ai-assistant"
}
});update_document
メモリ バンク内の特定のドキュメントを更新します。
パラメータ:
documentType(列挙型): 次のいずれか:projectbrief、productContext、systemPatterns、techContext、activeContext、progresscontent(文字列、オプション): ドキュメントの新しいコンテンツregenerate(boolean, default: false): AIを使用してドキュメントを再生成するかどうか
例:
await callTool({
name: "update_document",
arguments: {
documentType: "projectbrief",
content: "# Project Brief\n\n## Purpose\nTo develop an advanced and user-friendly AI..."
}
});query_memory_bank
コンテキストに応じた関連性ランキングを使用して、すべてのドキュメントを検索します。
パラメータ:
query(文字列): 検索クエリ (最小 5 文字)
例:
await callTool({
name: "query_memory_bank",
arguments: {
query: "system architecture components"
}
});export_memory_bank
すべてのメモリ バンク ドキュメントをエクスポートします。
パラメータ:
format(列挙型、デフォルト: "folder"): エクスポート形式。"json" または "folder" のいずれかoutputPath(文字列、オプション): エクスポートのカスタム出力パス
例:
await callTool({
name: "export_memory_bank",
arguments: {
format: "json",
outputPath: "/Users/username/Documents/exports"
}
});ドキュメントの種類
メモリ バンクは、プロジェクトの知識を 6 つのコア ドキュメント タイプに整理します。
プロジェクト概要(
projectbrief.md):プロジェクトの目的、範囲、ビジョンを定義する中核文書製品コンテキスト(
productContext.md):ユーザーの視点から製品の機能を文書化します。システムパターン(
systemPatterns.md):システムアーキテクチャとコンポーネントの関係を確立します技術コンテキスト(
techContext.md):テクノロジースタックと実装の詳細を指定しますアクティブコンテキスト(
activeContext.md):現在のタスク、未解決の問題、開発の焦点を追跡します。進捗状況(
progress.md):完了した作業、マイルストーン、プロジェクトの履歴を文書化します。
ライセンス
マサチューセッツ工科大学