home / mcp / roo code memory bank mcp server
Provides a file-based memory bank MCP server that lets AI assistants persist project context across sessions via structured memory files.
Configuration
View docs{
"mcpServers": {
"incomestreamsurfer-roo-code-memory-bank-mcp-server": {
"command": "node",
"args": [
"/path/to/your/cloned/repo/roo-code-memory-bank-mcp-server/dist/index.js"
]
}
}
}You run a small, file-based memory bank as a Model Context Protocol (MCP) server to help AI assistants persist and reference project context across sessions. It exposes a set of tools to initialize, inspect, read, and append entries to memory files, keeping your project context consistent over time.
You interact with the memory bank MCP server through your MCP client. Start by checking whether the memory bank exists, initialize it if needed, then read relevant files to load context and append new entries as decisions or progress occur. Use each tool to keep a precise, timestamped record of context changes so your AI can reference past decisions and status in future sessions.
Prerequisites you need to have before starting:
Node.js (v18 or later recommended) and npm are required to run the MCP server.
Install and run steps are shown with concrete commands you should execute in your terminal.
The server is designed to be run via an MCP client that launches the server process using a stdio configuration. The following configuration example demonstrates how to reference the compiled server and expose the available tools to your MCP client.
Available tools and their purposes are defined below. Use them in your MCP client configuration to enable automated interaction with the memory bank.
Keep the memory-bank directory and its markdown files under access control if you’re operating in a shared environment. Regularly back up the memory-bank directory to prevent data loss and ensure you have a rollback plan for any inadvertent modifications.
Creates the memory-bank/ directory with standard .md files (productContext.md, activeContext.md, progress.md, decisionLog.md, systemPatterns.md) and populates them with initial templates. Optional input: { "project_brief_content": string } and output: { "status": "success" | "error", "messages"?: string[], "message"?: string }.
Checks for the existence of the memory-bank/ directory and lists the .md files it contains. Input: {} and output: { "exists": boolean, "files": string[] }.
Reads the full content of a specified memory bank file. Input: { "file_name": string } and output: { "content": string } or an error object.
Appends a new, timestamped entry to a specified file, optionally under a specific markdown header. Creates the file if it does not exist. Input: { "file_name": string, "entry": string, "section_header"?: string } and output: { "status": "success" | "error", "message": string }