Skip to main content
Glama
Ahmedaltu

memory-mcp-server

by Ahmedaltu
README.md
# memory-mcp-server

A FastMCP server that bridges Claude Code and Claude.ai by exposing Claude Code project memory files over MCP.

## Problem

Claude Code and Claude.ai are separate products with separate contexts. Claude Code stores project memory as markdown files locally under `~/.claude/projects/*/memory/`. Claude.ai has no access to these files, so you lose context every time you switch between the two.

## Solution

This server exposes those memory files via MCP over HTTPS, so Claude.ai can read and write them through a connector — giving both interfaces shared memory across all projects.

## Architecture
Claude.ai
└─→ Cloudflare Tunnel (https://memory.yourdomain.com/mcp)
└─→ FastMCP server (Ubuntu VM)
└─→ ~/.claude/projects//memory/.md
↕ rsync every 5 min
WSL ~/.claude/projects//memory/.md
↑
Claude Code

## MCP Tools

| Tool | Description |
|------|-------------|
| `list_projects` | List all Claude Code projects |
| `list_memories(project)` | List memory files in a project |
| `read_memory(project, file)` | Read a memory file |
| `read_index(project)` | Read the MEMORY.md index |
| `write_memory(project, file, content)` | Write a memory file |
| `delete_memory(project, file)` | Delete a memory file |

## Setup

### 1. Server (Ubuntu VM)

```bash
git clone https://github.com/Ahmedaltu/memory-mcp-server.git
cd memory-mcp-server
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python server.py
```

### 2. Systemd service

```bash
sudo cp memory-mcp.service /etc/systemd/system/
sudo systemctl enable memory-mcp
sudo systemctl start memory-mcp
```

### 3. Cloudflare Tunnel

```bash
cloudflared tunnel login
cloudflared tunnel create memory-mcp
cloudflared tunnel route dns memory-mcp memory.yourdomain.com
sudo cloudflared service install
sudo systemctl enable cloudflared
sudo systemctl start cloudflared
```

### 4. WSL auto-sync (add to crontab -e)

```bash
# Push WSL → VM (every 5 min)
*/5 * * * * rsync -az -e "ssh -i ~/.ssh/your-key.pem" --include="*/" --include="*/memory/" --include="*/memory/*.md" --exclude="*" ~/.claude/projects/ ubuntu@YOUR_VM_IP:~/.claude/projects/

# Pull VM → WSL (every 5 min)
*/5 * * * * rsync -az -e "ssh -i ~/.ssh/your-key.pem" --include="*/" --include="*/memory/" --include="*/memory/*.md" --exclude="*" ubuntu@YOUR_VM_IP:~/.claude/projects/ ~/.claude/projects/
```

### 5. Connect Claude.ai

Go to **Settings → Connectors → Add connector** and enter:
https://memory.yourdomain.com/mcp

## License

MIT