Skip to main content
Glama
adeeljames

Claude Memory MCP

by adeeljames
README.md
# 🧠 Claude Memory MCP

A lightweight **Model Context Protocol (MCP) server** that gives Claude Desktop persistent memory across conversations. It stores, summarizes, and retrieves conversation history so Claude always remembers your context.

---

## ✨ Features

| Feature | Description |
|---|---|
| **Persistent Memory** | Saves every conversation turn to a local `memory.json` file |
| **Auto-Summarization** | Automatically compresses history after 10 turns to keep context lean |
| **Fast Context Loading** | Returns summary + last 3 turns on demand β€” no bloat |
| **One-command Setup** | Powered by `uv` β€” no virtualenv juggling needed |
| **Zero Latency** | Runs locally over stdio β€” no network calls |

---

## πŸ› οΈ Tools Exposed

| Tool | Description |
|---|---|
| `get_context` | Load compressed memory (summary + last 3 turns). Call at the **start** of every conversation. |
| `save_turn` | Save one conversation turn. Call **after** every AI response. |
| `clear_memory` | Wipe all stored memory and start fresh. |

---

## πŸš€ Quick Start

### Prerequisites
- Python 3.13+
- [`uv`](https://docs.astral.sh/uv/) installed

### 1. Clone & Install

```bash
git clone https://github.com/adeeljames/claude-memory-mcp.git
cd claude-memory-mcp
uv sync
```

### 2. Run the MCP Server (for testing)

```bash
uv run python server.py
```

### 3. Add to Claude Desktop

Open your Claude Desktop config file:

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

Add the following under `mcpServers`:

```json
{
  "mcpServers": {
    "memory-mcp": {
      "command": "uv",
      "args": [
        "run",
        "--directory",
        "/absolute/path/to/claude-mcp-optimize",
        "python",
        "server.py"
      ]
    }
  }
}
```

> Replace `/absolute/path/to/claude-mcp-optimize` with the actual path on your machine.

Restart Claude Desktop β€” the `memory-mcp` server will appear in your tools list.

---

## πŸ“ Project Structure

```
claude-memory-mcp/
β”œβ”€β”€ server.py           # MCP server β€” all tools defined here
β”œβ”€β”€ memory.json         # Runtime memory file (auto-created, gitignored)
β”œβ”€β”€ pyproject.toml      # uv project config & dependencies
β”œβ”€β”€ uv.lock             # Locked dependency graph
└── README.md           # You are here
```

---

## βš™οΈ How It Works

```
Claude Desktop ──stdio──► server.py ──► memory.json
                                          β”‚
                         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                         β”‚
                    get_context()     β†’ returns summary + last 3 turns
                    save_turn()       β†’ appends to history, triggers summary at 10 turns
                    clear_memory()    β†’ resets everything
```

---

## πŸ”§ Dependencies

| Package | Purpose |
|---|---|
| `mcp>=1.26.0` | Model Context Protocol SDK |

All dependencies are managed by `uv` and pinned in `uv.lock`.

---

## πŸ“„ License

MIT β€” free to use, modify, and share.

---

Made with love by **[@muhammadadeelai](https://github.com/adeeljames)**

TDQS

A4/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a distinct, non-overlapping purpose: clearing all memory, retrieving context, and saving a turn. No ambiguity.

Naming Consistency5/5

All tool names follow a clear verb_noun pattern with underscores: clear_memory, get_context, save_turn. Fully consistent.

Tool Count4/5

With 3 tools, the set is minimal but appropriate for a focused memory management server, covering essential operations. Slightly thin but not problematic.

Completeness3/5

Covers basic lifecycle: create (save_turn), read (get_context), delete all (clear_memory). Missing update or selective delete functionality, which may be needed for finer control.

Maintenance

ActivityInactive
ResponsivenessNo issues