Sign inSign up

dogkeeper886/claude-code-memory-mcp-server

By dogkeeper886

Updated about 1 year ago

Claude Code Memory Server (MCP)

Image
Machine learning & AI
0

729

dogkeeper886/claude-code-memory-mcp-server repository overview

Claude Code Memory Server (MCP)

A Docker-based MCP (Model Context Protocol) server that provides persistent memory capabilities for Claude Code using the official Anthropic MCP SDK, Mem0, and Qdrant vector database.

Version 2.1.0 - Production-ready with multi-project memory support and automatic project detection.

✨ Features

  • 🧠 Persistent Memory - Remember conversations, code patterns, and project context across sessions
  • 🏗️ Multi-Project Support - Automatic project detection with isolated memory per project
  • 🔍 Smart Search - Project-scoped search by default, global search across all projects
  • 🐳 Docker-First - Zero local dependencies, runs entirely in containers
  • ⚡ Official MCP SDK - Full protocol compliance with Anthropic's official SDK
  • 🔒 Type Safety - TypeScript with Zod schemas for runtime validation

🚀 Quick Start

Prerequisites
1. Database Setup with Docker Compose

Create a docker-compose.yml file for the Qdrant vector database:

version: '3.8'

services:
  # Qdrant Vector Database (only service needed for MCP)
  qdrant:
    image: qdrant/qdrant:latest
    ports:
      - "6333:6333"
      - "6334:6334"
    volumes:
      - ./volume-qdrant:/qdrant/storage
    environment:
      - QDRANT__SERVICE__HTTP_PORT=6333
      - QDRANT__SERVICE__GRPC_PORT=6334

Start the database:

# Start Qdrant database
docker compose up -d

# Verify it's running
curl http://YOUR_QDRANT_IP:6333
2. Ollama Setup with Docker Compose

Add Ollama to your docker-compose.yml:

services:
  ollama:
    image: ollama/ollama
    ports: ["11434:11434"]
    volumes: ["./volume-ollama:/root/.ollama"]
    runtime: nvidia
    restart: unless-stopped

Pull required models:

docker compose up -d ollama
docker exec ollama ollama pull nomic-embed-text:v1.5
3. Add to Claude Code
claude mcp add mem0-memory -- docker run --rm -i \
  --name mem0-memory-mcp \
  --network host \
  -e OLLAMA_URL=http://YOUR_OLLAMA_IP:11434 \
  -e QDRANT_HOST=YOUR_QDRANT_IP \
  -e EMBED_MODEL=nomic-embed-text:v1.5 \
  dogkeeper886/claude-code-memory-mcp-server:latest
4. Verify Installation
# Check MCP connection
claude mcp list
# Should show: mem0-memory: docker run ... - ✓ Connected

# Test in Claude Code
# Type: "Remember that I prefer using TypeScript for new projects"
# Then: "What do you remember about my preferences?"

🛠️ Configuration

Environment Variables
VariableDescriptionDefaultRequired
OLLAMA_URLOllama server URL-
QDRANT_HOSTQdrant host IP/hostname-
EMBED_MODELEmbedding modelnomic-embed-text
QDRANT_PORTQdrant port6333
Ollama Setup

Ensure these models are available in your Ollama instance:

# Pull required models
ollama pull llama3.2:3b
ollama pull nomic-embed-text

🏗️ Architecture

Claude Code ←→ MCP Server ←→ Ollama (LLM/Embeddings)
                    ↓
                Qdrant (Vector DB)
  • MCP Server: TypeScript with official MCP SDK (stdio communication)
  • Qdrant: Vector database for memory storage (port 6333)
  • Ollama: External service for LLM and embeddings
  • Data Persistence: Docker volumes for automatic backup

🎯 Multi-Project Memory

The server automatically detects your current project and isolates memories:

Automatic Project Detection
  • Project Path: Based on process.cwd()
  • Git Integration: Extracts repo info and branch
  • Session Tracking: Groups memories by coding sessions
  • Zero Configuration: Works out of the box
Memory Isolation
# Working in /home/user/my-react-app
"Remember to use hooks instead of class components"
# → Stored with project: my-react-app

# Later, working in /home/user/my-vue-app  
"What do you remember about React?"
# → No results (different project)

# Search globally across all projects
"Search globally: React patterns"
# → Finds memories from all projects

🛠️ Available MCP Tools

ToolDescriptionScope
add_memoryAdd memories with auto-taggingCurrent project
search_memorySearch current projectProject-scoped
search_memory_globalSearch all projectsGlobal
list_memoriesList all memoriesUser-wide
list_project_memoriesList project memoriesProject-specific
get_project_contextGet current project infoCurrent project
delete_memoryDelete specific memoryBy ID
reset_memoryReset all memoriesUser-wide

🔧 Management Commands

List MCP Servers
claude mcp list
Remove Server (for updates)
claude mcp remove mem0-memory
Update to Latest Version
# Remove old server
claude mcp remove mem0-memory

# Pull latest image
docker pull dogkeeper886/claude-code-memory-mcp-server:latest

# Re-add with same command as installation
claude mcp add mem0-memory -- docker run --rm -i \
  --name mem0-memory-mcp --network host \
  -e OLLAMA_URL=http://YOUR_OLLAMA_IP:11434 \
  -e QDRANT_HOST=YOUR_QDRANT_IP \
  dogkeeper886/claude-code-memory-mcp-server:latest

💾 Data Persistence

All data is automatically persisted in Docker volumes:

Backup Data
# Backup Qdrant database
docker run --rm -v qdrant_data:/data -v $(pwd):/backup alpine \
  tar czf /backup/qdrant-backup.tar.gz -C /data .

# Restore from backup
docker run --rm -v qdrant_data:/data -v $(pwd):/backup alpine \
  tar xzf /backup/qdrant-backup.tar.gz -C /data

🏥 Health Check

The server provides health endpoints for monitoring:

# Check if Qdrant is accessible (when running with exposed port)
curl http://YOUR_QDRANT_IP:6333/health

# For MCP server health, check Claude Code connection:
claude mcp list  # Should show ✓ Connected

🐛 Troubleshooting

Common Issues

MCP server not connecting:

# Check if Ollama is running
curl http://YOUR_OLLAMA_IP:11434/api/tags

# Check if Qdrant is running
curl http://YOUR_QDRANT_IP:6333/health

# Verify Claude Code can access Docker
claude mcp list

Slow memory search:

# Check Ollama model is downloaded
ollama list | grep nomic-embed-text

# Verify network connectivity
docker run --rm --network host alpine ping YOUR_OLLAMA_IP

Memory not persisting:

# Check Qdrant data volume exists
docker volume ls | grep qdrant_data

# Verify Qdrant is storing data
curl http://YOUR_QDRANT_IP:6333/collections
Getting Help
  1. Check logs: docker logs mem0-memory-mcp (if running detached)
  2. Verify environment: All required environment variables set
  3. Test connectivity: Ollama and Qdrant endpoints accessible
  4. Claude Code status: claude mcp list shows ✓ Connected

🧑‍💻 Development

Build from Source
# Clone repository
git clone https://github.com/dogkeeper886/claude-code-memory.git
cd claude-code-memory

# Build image
docker build -t claude-code-memory-mcp-server .

# Use your local image
claude mcp add mem0-memory -- docker run --rm -i \
  --name mem0-memory-mcp --network host \
  -e OLLAMA_URL=http://YOUR_OLLAMA_IP:11434 \
  -e QDRANT_HOST=YOUR_QDRANT_IP \
  claude-code-memory-mcp-server
Local Development
# Install dependencies
npm install

# Start development server
npm run dev

# Build TypeScript
npm run build

# Run tests
npm test

📄 License

MIT License - see LICENSE file for details.

🤝 Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Submit a pull request

Ready to enhance your Claude Code experience with persistent memory? Pull the Docker image and get started in minutes!

Tag summary

Content type

Image

Digest

sha256:972ef4181

Size

91.5 MB

Last updated

about 1 year ago

docker pull dogkeeper886/claude-code-memory-mcp-server