Skip to main content
Glama
hoppo-chan

Memory Bank MCP

by hoppo-chan
README.md
# Memory Bank MCP

> A guided Memory Bank plugin for AI-assisted development

[![CN](https://img.shields.io/badge/语言-中文版-red.svg)](./README_CN.md)

Memory Bank MCP is a Model Context Protocol (MCP) plugin that helps AI assistants maintain persistent project context through structured markdown files. It provides a systematic approach to tracking project goals, decisions, progress, and patterns through guided instructions rather than direct operations.

## Features

- **Guided Operations**: Provides instructions for AI assistants to perform operations themselves
- **Structured Context Management**: Organize project information across 5 core files
- **Intelligent Guidance**: Step-by-step instructions for initialization and updates
- **Flexible Updates**: Smart update guidance based on different change types
- **Cross-Platform Support**: Automatic path normalization for Windows/macOS/Linux

### MCP Configuration

Using the published npm package:

```json
{
  "mcpServers": {
    "memory-bank": {
      "command": "npx",
      "args": ["@neko0721/memory-bank-mcp"],
      "timeout": 600
    }
  }
}
```

## Quick Start

1. **Initialize Memory Bank**

   ```
   Use init-memory-bank to create the memory-bank directory and core files
   ```

2. **Read Memory Bank**

   ```
   Use get-memory-bank-info to view all Memory Bank content
   ```

3. **Update Memory Bank**
   ```
   Use update-memory-bank to get guidance on updating specific files
   ```

## Core Files

### 1. productContext.md (Product Context)

- High-level project overview
- Goals and key features
- Overall architecture
- Automatically incorporates projectBrief.md if available

### 2. activeContext.md (Active Context)

- Current work status
- Recent changes
- Open questions and issues
- Focus areas

### 3. progress.md (Progress)

- Task tracking in checklist format
- Completed, current, and planned tasks
- Progress timeline

### 4. decisionLog.md (Decision Log)

- Architectural and implementation decisions
- Rationale and implications
- Decision history

### 5. systemPatterns.md (System Patterns)

- Recurring patterns and standards
- Coding conventions
- Architectural patterns
- Testing strategies

## Usage Guidelines

### For AI Assistants

1. **Start Every Session**: Check if memory-bank directory exists, then use `get-memory-bank-info` to understand project state
2. **Initialize When Needed**: Use `init-memory-bank` for new projects
3. **Read Context**: Use `get-memory-bank-info` to understand project state
4. **Update Guidance**: Use `update-memory-bank` to get update instructions
5. **Follow Instructions**: Execute the provided guidance to maintain Memory Bank

### Update Triggers

- **Architecture Changes**: Major structural decisions
- **Feature Completion**: New features or capabilities
- **Bug Fixes**: Significant issue resolutions
- **Refactoring**: Code structure improvements
- **Decisions**: Any important technical choices
- **Progress Updates**: Task status changes

## Tool Reference

### init-memory-bank

Initializes Memory Bank with all core files.

**Parameters:**

- `rootPath`: Project root directory path
- `force` (optional): Force re-initialization

**Returns:** Created files list and next steps guidance

### get-memory-bank-info

Reads and returns all Memory Bank content (similar to codelf's get-project-info).

**Parameters:**

- `rootPath`: Project root directory path

**Returns:** Formatted Memory Bank content for AI context

### update-memory-bank

Provides guidance for updating Memory Bank files.

**Parameters:**

- `rootPath`: Project root directory path
- `changeType`: Type of change (architecture/feature/bugfix/refactor/decision/progress)
- `description`: Brief description of the change

**Returns:** Detailed update instructions with templates and timestamps

## Integration Tips

### Cursor Setup

Add to Settings → Rules → User Rules:

```
Before starting any task, check if memory-bank directory exists in the project. If not, run the MCP command init-memory-bank.
Use the MCP command get-memory-bank-info to read Memory Bank content at session start.
After completing tasks or conversations, you must use the MCP command update-memory-bank to update Memory Bank content.
Follow the MCP guidance to maintain Memory Bank files.
```

### Windsurf Setup

Add to Settings → Cascade → Memories and Rules → Global Rules:

```
Before starting any task, check if memory-bank directory exists in the project. If not, run the MCP command init-memory-bank.
Use the MCP command get-memory-bank-info to read Memory Bank content at session start.
After completing tasks or conversations, you must use the MCP command update-memory-bank to update Memory Bank content.
Follow the MCP guidance to maintain Memory Bank files.
```

## Contributing

Contributions are welcome! Please feel free to submit issues or pull requests.

## License

MIT

## Acknowledgments

Inspired by the SPARC methodology and codelf.

TDQS

A3.9/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a clearly distinct purpose with no overlap: get-memory-bank-info reads existing files, init-memory-bank creates the initial structure, and update-memory-bank provides instructions for modifications. The descriptions reinforce these distinct roles, making misselection unlikely.

Naming Consistency5/5

All tool names follow a consistent verb-noun pattern with hyphens (get-memory-bank-info, init-memory-bank, update-memory-bank), using clear action verbs aligned with their functions. There are no deviations in naming style or convention.

Tool Count4/5

Three tools are appropriate for the server's purpose of managing a memory bank, covering initialization, reading, and updating. However, the scope feels slightly thin as there is no tool for deleting or archiving files, which could be useful for lifecycle management.

Completeness4/5

The tools cover core operations for a memory bank system: initialization, reading, and updating. A minor gap exists in lacking a delete or archive tool for full lifecycle coverage, but agents can likely work around this by using update-memory-bank to modify content as needed.

Maintenance

ActivityInactive
ResponsivenessNo issues