memory bank mcp
Provides a centralized MCP-based system for managing and accessing multi-project memory banks remotely, with features like project isolation, file structure validation, and type-safe operations.
Provides a centralized MCP-based system for managing and accessing multi-project memory banks remotely, with features like project isolation, file structure validation, and type-safe operations.
A Model Context Protocol (MCP) server implementation for remote memory bank management, inspired by Cline Memory Bank.
The Memory Bank MCP Server transforms traditional file-based memory banks into a centralized service that:
Multi-Project Support
Project-specific directories
File listing per project
Remote Accessibility
Full MCP protocol implementation
Security through project isolation
Core Operations
To install Memory Bank Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @alioshr/memory-bank-mcp --client claude
This will set up the MCP server configuration automatically. Alternatively, you can configure the server manually as described in the Configuration section below.
The memory bank MCP server needs to be configured in your Cline MCP settings file. The location depends on your setup:
~/Library/Application Support/Cursor/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
~/Library/Application Support/Claude/claude_desktop_config.json
Add the following configuration to your MCP settings:
{
"allpepper-memory-bank": {
"command": "npx",
"args": ["-y", "@allpepper/memory-bank-mcp"],
"env": {
"MEMORY_BANK_ROOT": "<path-to-bank>"
},
"disabled": false,
"autoApprove": [
"memory_bank_read",
"memory_bank_write",
"memory_bank_update",
"list_projects",
"list_project_files"
]
}
}
MEMORY_BANK_ROOT
: Directory where project memory banks will be stored (e.g., /path/to/memory-bank
)disabled
: Set to false
to enable the serverautoApprove
: List of operations that do not require explicit user approval:memory_bank_read
: Read memory bank filesmemory_bank_write
: Create new memory bank filesmemory_bank_update
: Update existing memory bank fileslist_projects
: List available projectslist_project_files
: List files within a projectFor Cursor, open the settings -> features -> add MCP server -> add the following:
env MEMORY_BANK_ROOT=<path-to-bank> npx -y @allpepper/memory-bank-mcp@latest
This section contains the instructions that should be pasted on the AI custom instructions, either for Cline, Claude or Cursor, or any other MCP client. You should copy and paste these rules. For reference, see custom-instructions.md which contains these rules.
# Install dependencies
npm install
# Build
npm run build
# Test
npm run test
# Watch mode
npm run dev
Contributions are welcome! Please follow these steps:
git checkout -b feature/amazing-feature
)git commit -m 'Add amazing feature'
)git push origin feature/amazing-feature
)This project is licensed under the MIT License - see the LICENSE file for details.
This project implements the memory bank concept originally documented in the Cline Memory Bank, extending it with remote capabilities and multi-project support.
[
{
"description": "Read a memory bank file for a specific project",
"inputSchema": {
"properties": {
"fileName": {
"enum": [
"projectbrief.md",
"productContext.md",
"activeContext.md",
"systemPatterns.md",
"techContext.md",
"progress.md",
".clinerules"
],
"type": "string"
},
"projectName": {
"type": "string"
}
},
"required": [
"projectName",
"fileName"
],
"type": "object"
},
"name": "memory_bank_read"
},
{
"description": "Create a new memory bank file for a specific project",
"inputSchema": {
"properties": {
"content": {
"type": "string"
},
"fileName": {
"enum": [
"projectbrief.md",
"productContext.md",
"activeContext.md",
"systemPatterns.md",
"techContext.md",
"progress.md",
".clinerules"
],
"type": "string"
},
"projectName": {
"type": "string"
}
},
"required": [
"projectName",
"fileName",
"content"
],
"type": "object"
},
"name": "memory_bank_write"
},
{
"description": "Update an existing memory bank file for a specific project",
"inputSchema": {
"properties": {
"content": {
"type": "string"
},
"fileName": {
"enum": [
"projectbrief.md",
"productContext.md",
"activeContext.md",
"systemPatterns.md",
"techContext.md",
"progress.md",
".clinerules"
],
"type": "string"
},
"projectName": {
"type": "string"
}
},
"required": [
"projectName",
"fileName",
"content"
],
"type": "object"
},
"name": "memory_bank_update"
},
{
"description": "List all projects in the memory bank",
"inputSchema": {
"properties": {},
"required": [],
"type": "object"
},
"name": "list_projects"
},
{
"description": "List all files within a specific project",
"inputSchema": {
"properties": {
"projectName": {
"type": "string"
}
},
"required": [
"projectName"
],
"type": "object"
},
"name": "list_project_files"
}
]