mcpField
C
Cline Memory Bank

Cline Memory Bank

ローカル
github.comメモリ・ナレッジ6167 週間前に更新

Cline Memory Bank について

Cline Memory Bank は、Cline VS Code 拡張機能向けにセッションをまたいでプロジェクトのコンテキストを管理する MCP サーバーです。プロジェクト情報、現在のタスク、進捗、技術的な決定を Markdown ファイルとして保存し、数日にわたる開発を継続する利用者に向いています。現在も開発中のプロジェクトです。

主な機能

  1. 01Memory Bank のファイル構造の初期化
  2. 02現在のセッションコンテキストの更新
  3. 03技術的な決定と理由の記録
  4. 04タスクの進捗とブロッカーの追跡
  5. 05リソースによるプロジェクトコンテキストと決定ログの読み取り

活用シーン

  1. 01複数の Cline セッションにわたるプロジェクト背景の維持
  2. 02アーキテクチャ上の決定と代替案の記録
  3. 03数日間にわたる開発タスクの進捗管理

MCP 対応

本プロジェクトは MCP サーバーであり、Cline などの MCP クライアントに initialize_memory_bank、update_context、record_decision、track_progress のツールと memory:// リソースを提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Cline Memory Bank

roo-code-memory-bankに着想を得ています。

このプロジェクトはまだ開発中ですが、ほぼ動作しています。

AI 支援開発向けに、プロジェクトコンテキストを永続的に管理する Model Context Protocol サーバーです。特に、Cline VSCode 拡張機能との連携を想定して設計されています。

目次

概要

Memory Bank MCP サーバーは、以下を管理するための構造化されたツールとリソースを提供し、開発セッションをまたいで一貫したプロジェクトコンテキストを維持します。

  • プロジェクトのコンテキストと技術的な詳細
  • 現在のセッションの状態とタスク
  • 進捗状況とマイルストーンの追跡
  • 技術的な決定とその根拠
graph LR
    VSCode[VS Code + Cline] --> MemBank[Memory Bank Server]
    MemBank --> Files[Markdown Files]
    Files --> Context[Project Context]
    Files --> Progress[Progress Tracking]
    Files --> Decisions[Decision Log]
    AI[AI Assistant] --> Files
    VSCode --> AI
    AI --> MemBank

永続メモリーシステム

このプロジェクトの最も強力な機能のひとつは、異なるコーディングセッション間でコンテキストを維持できることです。これは、VSCode を閉じて後から再開しても、取り組んでいた内容を忘れない「記憶」を AI アシスタントに持たせるようなものです。

仕組み

数日から数週間にわたる複雑なプロジェクトに取り組んでいると想像してください。通常、新しいコーディングセッションを開始するたびに、AI アシスタントにプロジェクトのコンテキストを説明し直す必要があります。Memory Bank を使うと、次のことができます。

graph LR
    Session[New Session] --> Load[Load Context]
    Load --> Read[Read Files]
    Read --> Update[Update Context]
    Update --> Write[Write Changes]
    Write --> Track[Track Progress]
    Track --> Record[Record Decisions]
    Record --> Ready[Ready for Tasks]
  • AI アシスタントが過去の議論や決定を記憶します
  • プロジェクトのアーキテクチャと目標についての理解を維持します
  • 進行中のタスクと進捗状況を追跡します
  • コーディングの好みやプロジェクトの規約を記憶します
主なメリット
  1. セッション間の継続性

    • 毎回プロジェクトを説明し直す必要がありません
    • 中断したところからそのまま再開できます
    • コードベースについて一貫した理解を維持します
  2. スマートなコンテキスト管理

    • 重要な技術的決定を自動的に追跡します
    • プロジェクトの進捗状況とマイルストーンを記録します
    • 開発の過程に関するドキュメントを維持します
  3. 生産性の向上

    • 各セッションでのプロジェクトへの適応が速くなります
    • 一貫性があり、コンテキストに沿った AI 支援を受けられます
    • 繰り返しの説明を減らせます
  4. プロジェクトの履歴

    • 特定の決定がなされた理由を追跡します
    • 完了した機能や変更のログを維持します
    • 新しいチームメンバーがプロジェクトの変遷を理解するのに役立ちます

Memory Bank は Cline VSCode Extension とシームレスに連携し、一度設定すれば追加のセットアップは不要です。バックグラウンドで静かに動作し、AI アシスタントが常に適切で役立つ支援を提供するために必要なコンテキストを保持します。

インストール

前提条件
  • Node.js(v16 以降)
  • Cline 拡張機能をインストール済みの VS Code
  • TypeScript(開発用)
セットアップ手順
  1. サーバーをクローンしてビルドします。
# Clone the repository
git clone https://github.com/dazeb/cline-mcp-memory-bank
cd cline-mcp-memory-bank

# Install dependencies (using pnpm as recommended)
pnpm install

# Build the server
pnpm run build

# Make globally available (optional, requires pnpm setup for global linking)
# pnpm link --global 
  1. Cline Extension を設定します(初期化コマンドの使用を推奨します)。

    **推奨方法:**ビルド後、プロジェクトのルートディレクトリから初期化コマンドを実行します。これにより、メモリーバンクのファイルが自動的に作成され、Cline の MCP 設定も構成されます。

    node build/index.js initialize_memory_bank . 
    

    **手動での方法(必要な場合):**以下を Cline の MCP 設定ファイルに追加します。パスは OS によって異なります。

    • Linux: ~/.config/Code - Insiders/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
    • macOS: ~/Library/Application Support/Code - Insiders/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
    • Windows: %APPDATA%\Code - Insiders\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json

    次の JSON オブジェクトを追加します。

{
  "mcpServers": {
    "memory-bank": {
      "command": "node",
      "args": [
        "/path/to/cline-memory-bank/build/index.js"
      ],
      "disabled": false,
      "autoApprove": []
    }
  }
}

/path/to/cline-memory-bank を、サーバーをインストールした実際の絶対パスに置き換えます(例:Windows の場合は C:\Users\YourUser\Projects\cline-mcp-memory-bank)。**注:**上記の初期化コマンドを使用すると、この設定は自動的に行われます。

機能

ツール

インストールとビルドの後、プロジェクトのルートディレクトリで次のコマンドを実行し、プロジェクトのメモリーバンクを初期化します。

node /path/to/cline-mcp-memory-bank/build/index.js initialize_memory_bank .

(/path/to/cline-memory-bank を、サーバーをクローンしてビルドした実際のパスに置き換えます。)

または、Cline でサーバーを設定している場合は、Cline にツールの実行を依頼できます。initialize the memory bank

初期化した後、以下のツールを使って、Cline にメモリーバンクのコンテキストの更新、決定事項の記録、進捗の追跡を依頼できます。また、.clinerules またはシステムプロンプトで設定することもできます。

  1. initialize_memory_bank

    • 新しいプロジェクト用のメモリーバンク構造を作成します
    • 初期テンプレートを含む必須の Markdown ファイルを作成します
    use_mcp_tool('memory-bank', 'initialize_memory_bank', {
      projectPath: '/path/to/project'
    });
    
  2. update_context

    • 現在のセッション情報でアクティブなコンテキストを更新します
    • モード、タスク、セッション状態を追跡します
    use_mcp_tool('memory-bank', 'update_context', {
      projectPath: '/path/to/project',
      content: {
        currentSession: {
          date: '2025-03-13',
          mode: 'development',
          task: 'Implementing new feature'
        }
      }
    });
    
  3. record_decision

    • 技術的な決定事項とその根拠を記録します
    • アーキテクチャ上の選択の履歴を保持します
    use_mcp_tool('memory-bank', 'record_decision', {
      projectPath: '/path/to/project',
      decision: {
        title: 'Authentication System',
        description: 'Implementing JWT-based authentication',
        rationale: 'Better scalability and stateless operation',
        alternatives: [
          'Session-based auth',
          'OAuth only'
        ]
      }
    });
    
  4. track_progress

    • プロジェクトの進捗とマイルストーンを更新します
    • タスクのステータスとブロッカーを管理します
    use_mcp_tool('memory-bank', 'track_progress', {
      projectPath: '/path/to/project',
      progress: {
        completed: ['Setup project', 'Initialize database'],
        inProgress: ['Implement auth', 'Create API routes'],
        blocked: ['Deploy to production']
      }
    });
    
リソース
  1. memory://project/context

    • プロジェクトの概要と技術スタック
    • アーキテクチャの原則とガイドライン
  2. memory://active/context

    • 現在のセッション状態とタスク
    • 対応中の検討事項とメモ
  3. memory://progress

    • プロジェクトのマイルストーンとタスクの追跡
    • 作業状況とブロッカー
  4. memory://decisions

    • 技術的な決定事項とその根拠
    • アーキテクチャ上の選択肢と代替案
システムプロンプトの提案

Cline のシステムプロンプト、または設定内の .clinerules ファイルに追加します。

Memory Bank Integration Rules:

CRITICAL: Before ANY task or response:
1. ALWAYS check active context (memory://active/context):
   - Current project state and mode
   - Ongoing tasks and their status
   - Recent decisions and updates
   - Open questions and concerns

2. ALWAYS review project context (memory://project/context):
   - Technical stack and dependencies
   - Project guidelines and standards
   - Architecture principles
   - Development workflow

3. ALWAYS consult decision log (memory://decisions) for:
   - Previous architectural choices
   - Established patterns
   - Technical rationales
   - Related decisions

4. ALWAYS check progress tracking (memory://progress):
   - Current phase and milestones
   - Completed work
   - In-progress tasks
   - Known blockers

After EVERY task:
1. Update active context with:
   - Task completion status
   - New information learned
   - Changes made

2. Record any technical decisions with:
   - Clear rationale
   - Considered alternatives
   - Impact assessment

3. Update progress tracking:
   - Mark completed items
   - Add new tasks identified
   - Note any blockers found

Key Guidelines:
- NEVER proceed without checking memory bank context
- ALWAYS maintain consistent project state
- Record ALL significant technical decisions
- Track progress in real-time
- Keep context updated with EVERY change

ファイル構成

初期化すると、プロジェクト内に次の構成が作成されます。

graph LR
    Root[Project Root] --> Bank[memory-bank]
    Bank --> PC[projectContext.md]
    Bank --> AC[activeContext.md]
    Bank --> P[progress.md]
    Bank --> DL[decisionLog.md]
    PC --> Stack[Technical Stack]
    AC --> Tasks[Active Tasks]
    P --> Status[Project Status]
    DL --> History[Decision History]
初期ファイルの内容

初期化時に、各ファイルには構造化された内容が入力されます。

  1. activeContext.md:

    • タイムスタンプ付きの現在のセッション情報
    • 初期タスク(プロジェクトの初期化、環境のセットアップ)
    • プロジェクトの目標と要件に関する未解決の質問
    • 最近の更新セクション
  2. progress.md:

    • 現在のフェーズ(初期化)
    • 初期の完了済みタスク(リポジトリのセットアップ、基本構造)
    • 進行中のタスク(環境設定、ドキュメント)
    • 今後のタスクセクション
    • ブロッカーの追跡
  3. decisionLog.md:

    • 初期のプロジェクト構成に関する決定事項
    • 代替案を含む開発ワークフローの選択
    • ドキュメント方針に関する決定事項
    • 保留中の決定事項のセクション
  4. projectContext.md:

    • プロジェクトの概要とバージョン
    • 検出された技術スタックと依存関係
    • 設定ファイルの一覧
    • アーキテクチャの原則
    • 開発環境のセットアップ手順
    • プロジェクトのワークフローに関するガイドライン

Cline での使用

graph LR
    Start[Start] --> Init[Initialize]
    Init --> Context[Load Context]
    Context --> Update[Make Changes]
    Update --> Progress[Track Progress]
    Progress --> Record[Record Decisions]
    Record --> Sync[Auto Sync]
    Sync --> Context

Cline にメモリバンクを初期化するよう依頼するだけです。

  1. 新しいメモリバンクを初期化します:

    use_mcp_tool('memory-bank', 'initialize_memory_bank', {
      projectPath: process.cwd()  // or specific path
    });
    
  2. プロジェクトのコンテキストにアクセスします:

    access_mcp_resource('memory-bank', 'memory://project/context');
    
  3. セッションのコンテキストを更新します:

    use_mcp_tool('memory-bank', 'update_context', {
      projectPath: process.cwd(),
      content: {
        currentSession: {
          date: new Date().toISOString().split('T')[0],
          mode: 'development',
          task: 'Current task description'
        }
      }
    });
    
  4. 技術的な決定を記録します:

    use_mcp_tool('memory-bank', 'record_decision', {
      projectPath: process.cwd(),
      decision: {
        title: 'Decision Title',
        description: 'What was decided',
        rationale: 'Why it was decided'
      }
    });
    

開発

サーバーを変更または拡張するには:

  1. src/index.ts のソースを更新します
  2. テストを実行します:npm test
  3. ビルドします:npm run build
  4. Cline 拡張機能を再起動して変更を読み込みます

コントリビューション

コントリビューションを歓迎します!以下の手順でお願いします:

  1. リポジトリをフォークします
  2. 機能ブランチを作成します
  3. 変更を加えます
  4. プルリクエストを送信します

ライセンス

MIT © dazeb

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。