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