2.1.0 • Published 6 months ago

@delorenj/memory-bank-mcp v2.1.0

Weekly downloads
-
License
MIT
Repository
-
Last release
6 months ago

Memory Bank MCP

Memory Bank is an MCP server that helps teams create, manage, and access structured project documentation. It generates and maintains a set of interconnected Markdown documents that capture different aspects of project knowledge, from high-level goals to technical details and day-to-day progress.

Features

  • AI-Generated Documentation: Leverages Gemini API to automatically generate comprehensive project documentation
  • Structured Knowledge System: Maintains six core document types in a hierarchical structure
  • MCP Integration: Implements the Model Context Protocol for seamless integration with AI assistants
  • Customizable Location: Specify where you want your Memory Bank directory created
  • Document Templates: Pre-defined templates for project brief, product context, system patterns, etc.
  • AI-Assisted Updates: Update documents manually or regenerate them with AI assistance
  • Advanced Querying: Search across all documents with context-aware relevance ranking

Installation

# Clone the repository
git clone https://github.com/delorenj/memory-bank-mcp.git
cd memory-bank-mcp

# Install dependencies
pnpm install

# Create .env file with your Gemini API key (optional)
echo "GEMINI_API_KEY=your_api_key_here" > .env

Usage

Development Mode

# Start in development mode
pnpm run dev

Production Mode

# Build the project
pnpm run build

# Start in production mode
pnpm run start

MCP Configuration

To integrate Memory Bank with the Model Context Protocol (MCP), add the following configuration to your mcp.json file:

{
  "memoryBank": {
    "command": "npx",
    "args": ["@delorenj/memory-bank-mcp"],
    "env": {
      "GEMINI_API_KEY": "your_gemini_api_key_here"
    }
  }
}

MCP Tools

Memory Bank MCP provides the following tools via the Model Context Protocol:

initialize_memory_bank

Creates a new Memory Bank structure with all document templates.

Parameters:

  • goal (string): Project goal description (min 10 characters)
  • geminiApiKey (string, optional): Gemini API key for document generation
  • location (string, optional): Absolute path where memory-bank folder will be created

Example:

await callTool({
  name: "initialize_memory_bank",
  arguments: {
    goal: "Building a self-documenting AI-powered software development assistant",
    location: "/Users/username/Documents/projects/ai-assistant"
  }
});

Configuration

Memory Bank can be configured using a .memorybankconfig file in JSON format:

{
  "bankName": "memory-bank",
  "bankPath": "./docs"
}
  • bankName: The name of the memory bank folder (default: "memory-bank")
  • bankPath: The path where the memory bank folder will be created (default: "./docs")

The configuration file is optional. If not present, default values will be used. Command-line parameters (like location) take precedence over config file values.

update_document

Updates a specific document in the Memory Bank.

Parameters:

  • documentType (enum): One of: projectbrief, productContext, systemPatterns, techContext, activeContext, progress
  • content (string, optional): New content for the document
  • regenerate (boolean, default: false): Whether to regenerate the document using AI

Example:

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

Searches across all documents with context-aware relevance ranking.

Parameters:

  • query (string): Search query (min 5 characters)

Example:

await callTool({
  name: "query_memory_bank",
  arguments: {
    query: "system architecture components"
  }
});

export_memory_bank

Exports all Memory Bank documents.

Parameters:

  • format (enum, default: "folder"): Export format, either "json" or "folder"
  • outputPath (string, optional): Custom output path for the export

Example:

await callTool({
  name: "export_memory_bank",
  arguments: {
    format: "json",
    outputPath: "/Users/username/Documents/exports"
  }
});

Document Types

Memory Bank organizes project knowledge into six core document types:

  1. Project Brief (projectbrief.md): Core document defining project objectives, scope, and vision
  2. Product Context (productContext.md): Documents product functionality from a user perspective
  3. System Patterns (systemPatterns.md): Establishes system architecture and component relationships
  4. Tech Context (techContext.md): Specifies technology stack and implementation details
  5. Active Context (activeContext.md): Tracks current tasks, open issues, and development focus
  6. Progress (progress.md): Documents completed work, milestones, and project history

License

MIT

2.1.0

6 months ago

2.0.3

6 months ago

2.0.2

6 months ago

2.0.0

6 months ago