memory bank MCP
An MCP server that helps teams create, manage, and access structured project documentation through six core document types, leveraging AI to generate comprehensive project knowledge management.
An MCP server that helps teams create, manage, and access structured project documentation through six core document types, leveraging AI to generate comprehensive project knowledge management.
A structured documentation system for project knowledge management via Model Context Protocol (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.
# 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 start
To integrate Memory Bank with the Model Context Protocol (MCP), add the following configuration to your mcp.json
file:
{
"memoryBank": {
"command": "node",
"args": ["/path/to/memory-bank-mcp/dist/index.js"],
"env": {
"GEMINI_API_KEY": "your_gemini_api_key_here"
}
}
}
Replace /path/to/memory-bank-mcp/dist/index.js
with the absolute path to your built index.js file, and add your Gemini API key (if applicable).
Example:
{
"memoryBank": {
"command": "node",
"args": ["/Users/username/memory-bank-mcp/dist/index.js"],
"env": {
"GEMINI_API_KEY": "AIzaSyXXXXXXXXXXXXXXXXXXXXXXXX"
}
}
}
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"
}
});
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
## Purpose
To 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"
}
});
Memory Bank organizes project knowledge into six core document types:
projectbrief.md
): Core document defining project objectives, scope, and visionproductContext.md
): Documents product functionality from a user perspectivesystemPatterns.md
): Establishes system architecture and component relationshipstechContext.md
): Specifies technology stack and implementation detailsactiveContext.md
): Tracks current tasks, open issues, and development focusprogress.md
): Documents completed work, milestones, and project historyMIT