Skip to main content
Glama
PlumyCat

MCP Memory Server

by PlumyCat
README.md
# ๐Ÿง  MCP Memory Server

[![TypeScript](https://img.shields.io/badge/TypeScript-007ACC?style=for-the-badge&logo=typescript&logoColor=white)](https://www.typescriptlang.org/)
[![Node.js](https://img.shields.io/badge/Node.js-43853D?style=for-the-badge&logo=node.js&logoColor=white)](https://nodejs.org/)
[![Azure Cosmos DB](https://img.shields.io/badge/Azure%20Cosmos%20DB-0078D4?style=for-the-badge&logo=microsoft-azure&logoColor=white)](https://azure.microsoft.com/en-us/services/cosmos-db/)
[![OpenAI](https://img.shields.io/badge/OpenAI-412991?style=for-the-badge&logo=openai&logoColor=white)](https://openai.com/)

**Advanced Memory System for Claude Desktop** - Transform Claude into an AI assistant with photographic memory using MCP (Model Context Protocol).

## โœจ What it does

Imagine Claude with **persistent memory** that:
- ๐Ÿง  **Remembers everything** from your conversations
- ๐Ÿ” **Automatically retrieves context** when you reference past topics
- ๐Ÿค– **Understands references** like "that project", "this company", "he/she"
- ๐Ÿ“ˆ **Builds knowledge** over time across all your sessions
- ๐Ÿ› ๏ธ **Auto-captures** results from web searches and other tools

## ๐Ÿš€ Quick Start

### Prerequisites
- Node.js 18+
- Azure Cosmos DB account
- OpenAI API key
- Claude Desktop

### Installation

```bash
git clone https://github.com/PlumyCat/mcp-memory-server.git
cd mcp-memory-server
npm install
npm run build
```

### Configuration

1. **Environment setup**:
```bash
cp .env.example .env
# Edit .env with your API keys
```

2. **Claude Desktop configuration**:
```json
{
  "mcpServers": {
    "memory": {
      "command": "node",
      "args": ["/path/to/mcp-memory-server/dist/index.js"],
      "cwd": "/path/to/mcp-memory-server"
    }
  }
}
```

3. **Test the magic**:
```
You: "I'm working on a TypeScript project using CosmosDB"
Claude: [Responds normally + automatic background storage]

# Later...
You: "What was that project we discussed?"
Claude: "You mentioned working on a TypeScript project using CosmosDB..."
```

## ๐ŸŽฏ Key Features

### ๐Ÿง  **Intelligent Memory Storage**
- Automatic entity extraction (people, companies, projects, tools)
- Semantic storage with OpenAI embeddings
- Conversation context preservation
- Smart deduplication

### ๐Ÿ” **Advanced Search & Retrieval**
- Semantic similarity search
- Entity relationship mapping
- Timeline-based retrieval
- Context-aware responses

### ๐Ÿค– **Entity Resolution**
- Automatic pronoun resolution ("he" โ†’ "John Smith")
- Reference understanding ("that company" โ†’ "Microsoft")
- Cross-conversation entity linking
- Confidence scoring

### ๐Ÿ“Š **Analytics & Insights**
- Conversation pattern analysis
- Entity interaction timelines
- Knowledge growth tracking
- Usage statistics

## ๐Ÿ› ๏ธ Available Tools

The server provides 6 MCP tools for Claude:

| Tool | Description | Example Usage |
|------|-------------|---------------|
| `memory_store` | Store information with auto entity extraction | Automatically triggered during conversations |
| `memory_search` | Semantic search through stored memories | "Find all discussions about React" |
| `context_inject` | Get relevant context for current query | "What did we discuss about this project?" |
| `entity_resolve` | Resolve references to actual entities | "Who is 'he' referring to?" |
| `conversation_analyze` | Analyze conversation patterns | "Show my discussion statistics" |
| `memory_timeline` | Get timeline of entity interactions | "Timeline of Microsoft mentions" |

## ๐Ÿ“ Project Structure

```
mcp-memory-server/
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ config/          # Azure Cosmos DB configuration
โ”‚   โ”œโ”€โ”€ memory/          # Core memory system (RAG, storage, graph)
โ”‚   โ”œโ”€โ”€ types/           # TypeScript type definitions
โ”‚   โ”œโ”€โ”€ utils/           # Entity extraction, context injection
โ”‚   โ””โ”€โ”€ server.ts        # Main MCP server implementation
โ”œโ”€โ”€ scripts/             # Maintenance and health check scripts
โ”œโ”€โ”€ tests/               # Unit and integration tests
โ”œโ”€โ”€ docs/                # Technical documentation
โ””โ”€โ”€ dist/                # Compiled JavaScript (generated)
```

## ๐Ÿ—๏ธ Architecture

### Core Components

- **RAG System**: Vector similarity search with OpenAI embeddings
- **Entity Extractor**: NLP-based entity recognition with custom patterns
- **Memory Storage**: Optimized CosmosDB integration with smart indexing
- **Context Injector**: Intelligent context retrieval for conversations
- **Graph Engine**: Entity relationship mapping and traversal

### Data Flow

```mermaid
graph TD
    A[User Message] --> B[Entity Extraction]
    B --> C[Embedding Generation]
    C --> D[CosmosDB Storage]
    D --> E[Semantic Search]
    E --> F[Context Injection]
    F --> G[Enhanced Claude Response]
```

## ๐Ÿ”ง Configuration

### Environment Variables

```bash
# Azure Cosmos DB
COSMOS_ENDPOINT=https://your-account.documents.azure.com:443/
COSMOS_KEY=your-primary-key
COSMOS_DATABASE_NAME=memory-db
COSMOS_CONTAINER_CONVERSATIONS=conversations
COSMOS_CONTAINER_ENTITIES=entities

# OpenAI
OPENAI_API_KEY=your-openai-api-key

# Optional
NODE_ENV=production
LOG_LEVEL=info
MEMORY_RETENTION_DAYS=30
```

### Advanced Configuration

See [Configuration Guide](docs/configuration.md) for detailed setup options.

## ๐Ÿงช Testing

```bash
# Run all tests
npm test

# Health check
npm run health-check

# Test memory functionality
npm run test-memory
```

## ๐Ÿ“Š Performance

- **Storage**: Optimized CosmosDB indexing for sub-100ms queries
- **Search**: Vector similarity with 95%+ accuracy
- **Memory**: Efficient entity deduplication and compression
- **Scalability**: Handles 1000+ entities with consistent performance

## ๐Ÿ›ฃ๏ธ Roadmap

### โœ… **Completed**
- Core memory storage and retrieval
- Entity extraction and resolution
- Semantic search with embeddings
- CosmosDB integration
- MCP server implementation

### ๐Ÿ”„ **In Progress**
- [ ] Intelligent entity deduplication
- [ ] Auto-capture of all MCP tool results
- [ ] Enhanced entity classification patterns
- [ ] Contradiction detection system

### ๐Ÿ”ฎ **Planned**
- [ ] Multi-user memory isolation
- [ ] Graph traversal with Gremlin queries
- [ ] Advanced analytics dashboard
- [ ] Memory compression and archiving

See [Roadmap](Todolist.md) for detailed feature planning.

## ๐Ÿค Contributing

We welcome contributions! Please see our [Contributing Guidelines](CONTRIBUTING.md) for details.

### Development Setup

```bash
git clone https://github.com/PlumyCat/mcp-memory-server.git
cd mcp-memory-server
npm install
npm run dev
```

## ๐Ÿ“š Documentation

- [Usage Guide](docs/usage-guide.md) - Comprehensive usage examples
- [API Reference](docs/api-reference.md) - Detailed API documentation
- [Architecture](docs/Architecture%20CosmosDB.md) - Technical architecture details
- [Troubleshooting](docs/troubleshooting.md) - Common issues and solutions

## ๐Ÿ†˜ Support

- ๐Ÿ“– Check the [Usage Guide](docs/usage-guide.md) for examples
- ๐Ÿ› Report issues on [GitHub Issues](https://github.com/PlumyCat/mcp-memory-server/issues)
- ๐Ÿ’ฌ Discuss on [GitHub Discussions](https://github.com/PlumyCat/mcp-memory-server/discussions)

## ๐Ÿ“„ License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## ๐Ÿ™ Acknowledgments

- [Model Context Protocol (MCP)](https://github.com/modelcontextprotocol) for the foundational protocol
- [Claude Desktop](https://claude.ai) for the AI assistant platform
- [Azure Cosmos DB](https://azure.microsoft.com/services/cosmos-db/) for scalable data storage
- [OpenAI](https://openai.com) for embedding generation
- [Compromise.js](https://github.com/spencermountain/compromise) for natural language processing

## โญ Star History

[![Star History Chart](https://api.star-history.com/svg?repos=PlumyCat/mcp-memory-server&type=Date)](https://star-history.com/#PlumyCat/mcp-memory-server&Date)

---

**Made with โค๏ธ for the Claude Desktop community**