Skip to main content
Glama
renzynx

@renzynx/memory-mcp

by renzynx
README.md
# @renzynx/memory-mcp

A persistent memory MCP server with FTS5 fuzzy search. Compatible with Bun and Node.js.

## Features

- **Persistent Storage**: Data stored in `~/.mcp-memory/memory.db` survives npx/bunx cache clears
- **Fuzzy Search**: FTS5 with trigram tokenization for substring matching (`pyth` → `python`)
- **Token Efficient**: Results in TOON format for minimal token usage
- **Auto Maintenance**: Prunes entries older than 30 days, creates backups on startup
- **Cross Runtime**: Works with both Bun and Node.js

## Installation

```bash
npx @renzynx/memory-mcp
# or
bunx @renzynx/memory-mcp
```

## Configuration

### OpenCode

Add to `~/.config/opencode/opencode.jsonc`:

```jsonc
{
  "mcp": {
    "memory": {
      "type": "local",
      "command": ["bunx", "@renzynx/memory-mcp"]
    }
  }
}
```

### Claude Desktop

Add to `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "memory": {
      "command": "npx",
      "args": ["@renzynx/memory-mcp"]
    }
  }
}
```

## Tools

### save_memory

Store information with a category.

```
save_memory(content: string, category: string)
```

**Categories**: `preferences`, `facts`, `context`, `projects`, `conventions`

### search_memories

Fuzzy search stored memories. Returns TOON format or `Ø` if empty.

```
search_memories(query: string)
```

### list_categories

List all unique categories. Returns TOON format or `Ø` if empty.

```
list_categories()
```

## Agent Instructions

Add to your agent system prompt:

```
## Memory System

You have access to a persistent memory system via MCP tools. Use it proactively to remember important information across sessions.

### Tools Available
- `save_memory(content, category)` - Store information with a category
- `search_memories(query)` - Fuzzy search (supports partial matches like "pyth" → "python")
- `list_categories()` - View all memory categories

### When to Save Memories
- User preferences (coding style, tools, frameworks, communication preferences)
- Project context (architecture decisions, file structures, conventions)
- Facts about the user (name, role, team, timezone)
- Recurring tasks or workflows
- Corrections or clarifications the user provides
- Important decisions and their rationale

### Categories to Use
- `preferences` - User preferences and settings
- `facts` - Information about the user or their environment
- `projects` - Project-specific context and decisions
- `conventions` - Coding standards and patterns
- `context` - Session or task context worth preserving

### When to Search Memories
- At the start of conversations to recall user context
- Before making assumptions about preferences
- When the user references something previously discussed
- Before suggesting tools, patterns, or approaches

### Output Format
Results return in TOON format for token efficiency. "Ø" means no results found.

### Best Practices
- Save incrementally, not everything at once
- Use specific, searchable content
- Search before asking the user to repeat themselves
- Update memories when information changes (save new version)
```

## License

MIT

TDQS

A4.1/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: storing memories, searching them, and listing categories. There is no functional overlap between the three operations.

Naming Consistency5/5

All tool names follow a predictable verb_noun snake_case pattern: save_memory, search_memories, list_categories. The singular/plural noun variation is natural and does not create confusion.

Tool Count5/5

Three tools is a minimal but well-scoped set for a focused memory server. Each tool covers a distinct core operation without unnecessary bloat.

Completeness3/5

The server supports saving, searching, and listing categories, but lacks update and delete operations for memories. This creates a notable lifecycle gap where incorrect or obsolete memories cannot be corrected or removed.

Maintenance

ActivityInactive
ResponsivenessNo issues