Persistent memory for AI assistants across sessions.
Memory Bank MCP
An MCP server that gives AI assistants persistent memory across sessions. It stores project context, decisions, and progress in structured markdown files — locally or on a remote server via SSH.
Related repos:
- HTTP + Postgres + Redis variant → diaz3618/memory-bank-mcp-http — Docker deployment with HTTP transport
- VS Code Extension → diaz3618/Memory-Bank-VSCode-Ext — sidebar UI and GitHub Copilot integration
Quick Start
# Run directly (no install needed)
npx @diazstg/memory-bank-mcp
# Or install globally
npm install -g @diazstg/memory-bank-mcp
Via Smithery (Claude Desktop)
npx -y @smithery/cli install @diazstg/memory-bank-mcp --client claude
Configuration
Add to your editor's MCP config (.vscode/mcp.json, Cursor, Claude Desktop, etc.):
{
"servers": {
"memory-bank-mcp": {
"command": "npx",
"args": ["-y",
"@diazstg/memory-bank-mcp",
"--username",
"your-username"
],
"type": "stdio"
}
}
}
Tip: Including
--usernameis highly recommended for proper progress tracking.
Common Options
npx @diazstg/memory-bank-mcp --username "github-user" # Username for progress tracking (recommended)
npx @diazstg/memory-bank-mcp --mode code # Set operational mode
npx @diazstg/memory-bank-mcp --path /my/project # Custom project path
npx @diazstg/memory-bank-mcp --folder my-memory # Custom folder name (default: memory-bank)
npx @diazstg/memory-bank-mcp --help # All options
Remote Server (SSH)
Store your Memory Bank on a remote server:
npx @diazstg/memory-bank-mcp --remote \
--remote-user username \
--remote-host example.com \
--remote-path /home/username/memory-bank \
--ssh-key ~/.ssh/id_ed25519
See Remote Server Guide.
How It Works
Memory Bank stores project context as markdown files in a memory-bank/ directory:
| File | Purpose |
|---|---|
product-context.md |
Project overview, goals, tech stack |
active-context.md |
Current state, ongoing tasks, next steps |
progress.md |
Chronological record of updates |
decision-log.md |
Decisions with context and rationale |
system-patterns.md |
Architecture and code patterns |
The AI assistant reads these files at the start of each session and updates them as work progresses, maintaining continuity across conversations.
MCP Tools
| Tool | Description |
|---|---|
initialize_memory_bank |
Create a new Memory Bank |
get_memory_bank_status |
Check current status |
read_memory_bank_file |
Read a specific file |
write_memory_bank_file |
Write/update a file |
track_progress |
Add a progress entry |
log_decision |
Record a decision |
update_active_context |
Update current context |
switch_mode |
Change operational mode |
graph_upsert_entity |
Create or update a knowledge graph entity |
graph_add_observation |
Add an observation to an entity |
graph_link_entities |
Create a relation between entities |
graph_search |
Search entities by name or type |
graph_open_nodes |
Get full details of specific entities |
graph_compact |
Compact the event log |
Modes
| Mode | Focus |
|---|---|
code |
Implementation and development |
architect |
System design and planning |
ask |
Q&A and information retrieval |
debug |
Troubleshooting and diagnostics |
test |
Testing and quality assurance |
Modes can be set via CLI (--mode code), tool call (switch_mode), or .mcprules-[mode] files. See Usage Modes.
As a Library
import { MemoryBankServer } from "@diazstg/memory-bank-mcp";
const server = new MemoryBankServer();
server.run().catch(console.error);
Documentation
| Topic | Link |
|---|---|
| Getting Started | npx usage, build with Bun, custom folder |
| Guides | Remote server, usage modes, [status system](docs/guides/memory-bank-status-prefix. |
Tools (14)
initialize_memory_bankCreate a new Memory Bankget_memory_bank_statusCheck current statusread_memory_bank_fileRead a specific filewrite_memory_bank_fileWrite/update a filetrack_progressAdd a progress entrylog_decisionRecord a decisionupdate_active_contextUpdate current contextswitch_modeChange operational modegraph_upsert_entityCreate or update a knowledge graph entitygraph_add_observationAdd an observation to an entitygraph_link_entitiesCreate a relation between entitiesgraph_searchSearch entities by name or typegraph_open_nodesGet full details of specific entitiesgraph_compactCompact the event logEnvironment Variables
--usernameUsername for progress tracking--modeSet operational mode (code, architect, ask, debug, test)--pathCustom project pathConfiguration
{"servers": {"memory-bank-mcp": {"command": "npx", "args": ["-y", "@diazstg/memory-bank-mcp", "--username", "your-username"], "type": "stdio"}}}