@delorenj/memory-bank-mcp v2.1.0
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" > .envUsage
Development Mode
# Start in development mode
pnpm run devProduction Mode
# Build the project
pnpm run build
# Start in production mode
pnpm run startMCP 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 generationlocation(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,progresscontent(string, optional): New content for the documentregenerate(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:
- Project Brief (
projectbrief.md): Core document defining project objectives, scope, and vision - Product Context (
productContext.md): Documents product functionality from a user perspective - System Patterns (
systemPatterns.md): Establishes system architecture and component relationships - Tech Context (
techContext.md): Specifies technology stack and implementation details - Active Context (
activeContext.md): Tracks current tasks, open issues, and development focus - Progress (
progress.md): Documents completed work, milestones, and project history
License
MIT