@delorenj/memory-bank-mcp
v2.1.0
Published
Implements a file based memory bank and provides a set of tools for interacting with it.
Readme
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
