Skip to main content
Glama
README.md
# AI Memory MCP Server

A cross-platform Model Context Protocol (MCP) server that provides persistent memory storage for AI assistants. This server allows AI models to store, retrieve, and manage memories across conversations.

## Features

- **Persistent Storage**: Memories are stored in a JSON file and survive server restarts
- **Rich Memory Management**: Store memories with content, tags, and custom metadata
- **Powerful Search**: Search memories by keywords or filter by tags
- **Cross-Platform**: Works on Windows, macOS, and Linux
- **Easy Integration**: Compatible with any MCP client (Claude Desktop, etc.)

## Installation

### Prerequisites

- Node.js 18.0.0 or higher

### Setup

1. Clone or download this repository
2. Install dependencies:

```bash
npm install
```

## Usage

### Running the Server

```bash
npm start
```

For development with auto-reload:

```bash
npm run dev
```

### Configuration

#### Claude Desktop

Add to your Claude Desktop configuration file:

**macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`

**Windows**: `%APPDATA%\Claude\claude_desktop_config.json`

**Linux**: `~/.config/Claude/claude_desktop_config.json`

```json
{
  "mcpServers": {
    "ai-memory": {
      "command": "node",
      "args": ["/absolute/path/to/mcp_server/index.js"]
    }
  }
}
```

#### Other MCP Clients

Use the stdio transport and point to the `index.js` file:

```bash
node /path/to/mcp_server/index.js
```

## Available Tools

### 1. store_memory

Store a new memory or piece of knowledge.

**Parameters**:
- `content` (required): The content to remember
- `tags` (optional): Array of tags to categorize the memory
- `metadata` (optional): Additional metadata as key-value pairs

**Example**:
```json
{
  "content": "User prefers dark mode UI",
  "tags": ["preferences", "ui"],
  "metadata": {
    "priority": "high"
  }
}
```

### 2. search_memories

Search through stored memories using keywords or tags.

**Parameters**:
- `query` (optional): Search query (searches in content)
- `tags` (optional): Filter by specific tags
- `limit` (optional): Maximum number of results (default: 10)

**Example**:
```json
{
  "query": "dark mode",
  "tags": ["preferences"],
  "limit": 5
}
```

### 3. list_memories

List all stored memories with optional filtering.

**Parameters**:
- `tags` (optional): Filter by specific tags
- `limit` (optional): Maximum number of results (default: 50)

### 4. delete_memory

Delete a specific memory by its ID.

**Parameters**:
- `id` (required): The ID of the memory to delete

### 5. clear_memories

Clear all stored memories. Use with caution!

**Parameters**:
- `confirm` (required): Must be set to `true` to confirm deletion

### 6. get_memory_stats

Get statistics about stored memories (total count, tags, etc.).

**Returns**: Statistics including total count, tag counts, and timestamps.

## Available Resources

### memory://all

Complete list of all stored memories in JSON format.

### memory://stats

Statistics about stored memories including counts and tag distribution.

## Data Storage

Memories are stored in `memories.json` in the server directory. Each memory has:

- `id`: Unique identifier
- `content`: The memory content
- `tags`: Array of tags
- `metadata`: Custom metadata object
- `timestamp`: ISO 8601 timestamp of when the memory was created

## Example Use Cases

1. **User Preferences**: Store user preferences that persist across conversations
2. **Project Context**: Remember project details, architecture decisions, and requirements
3. **Learning**: Store facts and knowledge the AI should remember
4. **Task Tracking**: Keep track of ongoing tasks and their status
5. **Conversation History**: Store important points from previous conversations

## Security Notes

- The memory file is stored locally on the machine running the server
- No data is sent to external services
- Ensure proper file permissions on the `memories.json` file
- Back up the `memories.json` file regularly if you store important information

## Troubleshooting

### Server won't start

- Ensure Node.js 18+ is installed: `node --version`
- Check that dependencies are installed: `npm install`
- Verify file permissions on the server directory

### Memories not persisting

- Check write permissions on the server directory
- Ensure the server process isn't being killed before writes complete
- Check for errors in the console output

### Can't connect from Claude Desktop

- Verify the path in the configuration is absolute, not relative
- Check that the configuration JSON is valid
- Restart Claude Desktop after changing the configuration
- Check Claude Desktop logs for connection errors

## Platform-Specific Notes

### Windows

- Use forward slashes or escaped backslashes in the config path
- Example: `C:/Users/YourName/mcp_server/index.js` or `C:\\Users\\YourName\\mcp_server\\index.js`

### macOS/Linux

- Ensure the index.js file has execute permissions: `chmod +x index.js`
- Use absolute paths starting with `/` or `~`

## License

MIT

## Contributing

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

## Support

For issues and questions, please open an issue on the GitHub repository.

TDQS

A3.7/5.0

Scored across 6 tools

Disambiguation5/5

Each tool has a clearly distinct purpose with no overlap: clear_memories removes all memories, delete_memory targets a specific ID, get_memory_stats provides metadata, list_memories enumerates with filtering, search_memories finds matches based on content, and store_memory adds new data. An agent can easily distinguish between these operations.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case (e.g., clear_memories, delete_memory, store_memory). The verbs are precise and descriptive, making the set highly predictable and readable.

Tool Count5/5

With 6 tools, the server is well-scoped for an AI memory management system. Each tool serves a distinct role in the memory lifecycle (store, retrieve, search, manage, and analyze), and none feel redundant or missing for the domain.

Completeness5/5

The toolset provides complete CRUD/lifecycle coverage for memory management: store_memory (create), list_memories/search_memories (read/query), delete_memory (delete), clear_memories (bulk delete), and get_memory_stats (analytics). There are no obvious gaps that would hinder an agent's workflow.

Maintenance

ActivityInactive
ResponsivenessNo issues