Skip to content

Universal MCP memory service with semantic search, multi-client support, and autonomous consolidation for Claude Desktop, VS Code, and 13+ AI applications

License

doobidoo/mcp-memory-service

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

MCP Memory Service

License: Apache 2.0 GitHub stars Production Ready

Works with Claude Works with Cursor MCP Protocol Multi-Client

Production-ready MCP memory service with zero database locks, hybrid backend (fast local + cloud sync), and intelligent memory search for AI assistants. Features v8.9.0 auto-configuration for multi-client access, 5ms local reads with background Cloudflare sync, Natural Memory Triggers with 85%+ accuracy, and OAuth 2.1 team collaboration. Works with Claude Desktop, VS Code, Cursor, Continue, and 13+ AI applications.

MCP Memory Service

πŸš€ Quick Start (2 minutes)

πŸ†• v8.9.0: Production-Ready Hybrid Backend (Latest Release - Oct 27, 2025)

🎯 Zero Database Locks + Auto-Configuration - The most reliable release yet:

# One-command installation with auto-configuration
git clone https://github.com/doobidoo/mcp-memory-service.git
cd mcp-memory-service && python install.py

# Choose option 4 (Hybrid - RECOMMENDED) when prompted
# Installer automatically configures:
#   βœ… SQLite pragmas for concurrent access
#   βœ… Cloudflare credentials for cloud sync
#   βœ… Claude Desktop integration

# Done! Fast local + cloud sync with zero database locks

✨ What's New in v8.9.0:

  • πŸ† Hybrid Backend Default - Fast 5ms local SQLite + background Cloudflare sync
  • πŸ”’ Zero Database Locks - Concurrent HTTP + MCP server access works flawlessly
    • Fixed "database is locked" errors
    • Auto-configured SQLite pragmas (busy_timeout=15000,cache_size=20000)
    • Tested: 5/5 concurrent writes succeeded
  • βš™οΈ Auto-Configuration - Installer handles everything:
    • SQLite pragmas for multi-client access
    • Cloudflare credential setup with testing
    • Claude Desktop hybrid backend config
  • πŸš€ Zero User-Facing Latency - Cloud sync happens in background
  • πŸ“± Multi-Device Sync - Access memories everywhere

πŸ“– Complete Guide: v8.9.0 CHANGELOG


πŸ“œ Previous Releases (v8.8, v8.7, v8.6, v8.4...)

v8.8.2: Document Upload Tag Validation (Oct 26, 2025)

  • Fixed bloated tags from space-separated file paths
  • Enhanced file:// URI handling with proper URL decoding
  • Processing mode toggle for batch/individual uploads

v8.8.0: DRY Refactoring (Oct 26, 2025)

  • Eliminated 364 lines of code duplication between MCP/HTTP servers
  • Created MemoryService class as single source of truth
  • Bug fixes now apply to both protocols automatically

v8.7.0: Cosine Similarity & Maintenance Tools (Oct 20, 2025)

  • Fixed 0% similarity scores (migrated to cosine distance, now 70-79%)
  • 1800x faster duplicate cleanup (5s vs 2.5 hours)
  • Automatic migration on startup
# Maintenance scripts for power users
python scripts/maintenance/regenerate_embeddings.py
bash scripts/maintenance/fast_cleanup_duplicates.sh

v8.6.0: Document Ingestion System (Oct 15, 2025)

  • Interactive drag-and-drop document upload (PDF, TXT, MD, JSON)
  • Document viewer with chunk-by-chunk browsing
  • Smart tagging with validation (max 100 chars)
  • Optional semtools for enhanced PDF/DOCX/PPTX parsing

v8.4.0: Memory Hooks Recency Optimization

  • Recent memory prioritization (80% better context)
  • Automatically surfaces memories <7 days old

PyPI Installation (Simplest)

Install from PyPI:

# Install latest version from PyPI
pip install mcp-memory-service

# Or with uv (faster)
uv pip install mcp-memory-service

Then configure Claude Desktop by adding to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or equivalent:

{
  "mcpServers": {
    "memory": {
      "command": "memory",
      "args": ["server"],
      "env": {
        "MCP_MEMORY_STORAGE_BACKEND": "hybrid"
      }
    }
  }
}

For advanced configuration with the interactive installer, clone the repo and run python scripts/installation/install.py.

Traditional Setup Options

Universal Installer (Most Compatible):

# Clone and install with automatic platform detection
git clone https://github.com/doobidoo/mcp-memory-service.git
cd mcp-memory-service

# Lightweight installation (SQLite-vec with ONNX embeddings - recommended)
python install.py

# Add full ML capabilities (torch + sentence-transformers for advanced features)
python install.py --with-ml

# Install with hybrid backend (SQLite-vec + Cloudflare sync)
python install.py --storage-backend hybrid

πŸ“ Installation Options Explained:

  • Default (recommended): Lightweight SQLite-vec with ONNX embeddings - fast, works offline, <100MB dependencies
  • --with-ml: Adds PyTorch + sentence-transformers for advanced ML features - heavier but more capable
  • --storage-backend hybrid: Hybrid backend with SQLite-vec + Cloudflare sync - best for multi-device access

Docker (Fastest):

# For MCP protocol (Claude Desktop)
docker-compose up -d

# For HTTP API + OAuth (Team Collaboration)
docker-compose -f docker-compose.http.yml up -d

Smithery (Claude Desktop):

# Auto-install for Claude Desktop
npx -y @smithery/cli install @doobidoo/mcp-memory-service --client claude

⚠️ v6.17.0+ Script Migration Notice

Updating from an older version? Scripts have been reorganized for better maintainability:

  • Recommended: Use python -m mcp_memory_service.server in your Claude Desktop config (no path dependencies!)
  • Alternative 1: Use uv run memory server with UV tooling
  • Alternative 2: Update path from scripts/run_memory_server.py to scripts/server/run_memory_server.py
  • Backward compatible: Old path still works with a migration notice

⚠️ First-Time Setup Expectations

On your first run, you'll see some warnings that are completely normal:

  • "WARNING: Failed to load from cache: No snapshots directory" - The service is checking for cached models (first-time setup)
  • "WARNING: Using TRANSFORMERS_CACHE is deprecated" - Informational warning, doesn't affect functionality
  • Model download in progress - The service automatically downloads a ~25MB embedding model (takes 1-2 minutes)

These warnings disappear after the first successful run. The service is working correctly! For details, see our First-Time Setup Guide.

🐍 Python 3.13 Compatibility Note

sqlite-vec may not have pre-built wheels for Python 3.13 yet. If installation fails:

  • The installer will automatically try multiple installation methods
  • Consider using Python 3.12 for the smoothest experience: brew install [email protected]
  • Alternative: Use Cloudflare backend with --storage-backend cloudflare
  • See Troubleshooting Guide for details

🍎 macOS SQLite Extension Support

macOS users may encounter enable_load_extension errors with sqlite-vec:

  • System Python on macOS lacks SQLite extension support by default
  • Solution: Use Homebrew Python: brew install python && rehash
  • Alternative: Use pyenv: PYTHON_CONFIGURE_OPTS='--enable-loadable-sqlite-extensions' pyenv install 3.12.0
  • Fallback: Use Cloudflare or Hybrid backend: --storage-backend cloudflare or --storage-backend hybrid
  • See Troubleshooting Guide for details

πŸ“š Complete Documentation

πŸ‘‰ Visit our comprehensive Wiki for detailed guides:

🧠 v7.1.0 Natural Memory Triggers (Latest)

  • Natural Memory Triggers v7.1.0 Guide - Intelligent automatic memory awareness
    • βœ… 85%+ trigger accuracy with semantic pattern detection
    • βœ… Multi-tier performance (50ms instant β†’ 150ms fast β†’ 500ms intensive)
    • βœ… CLI management system for real-time configuration
    • βœ… Git-aware context integration for enhanced relevance
    • βœ… Zero-restart installation with dynamic hook loading

πŸ†• v7.0.0 OAuth & Team Collaboration

πŸš€ Setup & Installation

🧠 Advanced Topics

πŸ“‚ Internal Documentation

✨ Key Features

πŸ† Production-Ready Reliability πŸ†• v8.9.0

  • Hybrid Backend - Fast 5ms local SQLite + background Cloudflare sync (RECOMMENDED default)
    • Zero user-facing latency for cloud operations
    • Automatic multi-device synchronization
    • Graceful offline operation
  • Zero Database Locks - Concurrent HTTP + MCP server access works flawlessly
    • Auto-configured SQLite pragmas (busy_timeout=15000,cache_size=20000)
    • WAL mode with proper multi-client coordination
    • Tested: 5/5 concurrent writes succeeded with no errors
  • Auto-Configuration - Installer handles everything
    • SQLite pragmas for concurrent access
    • Cloudflare credentials with connection testing
    • Claude Desktop integration with hybrid backend
    • Graceful fallback to sqlite_vec if cloud setup fails

πŸ“„ Document Ingestion System v8.6.0

  • Interactive Web UI - Drag-and-drop document upload with real-time progress
  • Multiple Formats - PDF, TXT, MD, JSON with intelligent chunking
  • Document Viewer - Browse chunks, view metadata, search content
  • Smart Tagging - Automatic tagging with length validation (max 100 chars)
  • Optional semtools - Enhanced PDF/DOCX/PPTX parsing with LlamaParse
  • Security Hardened - Path traversal protection, XSS prevention, input validation
  • 7 New Endpoints - Complete REST API for document management

πŸ” Enterprise Authentication & Team Collaboration

  • OAuth 2.1 Dynamic Client Registration - RFC 7591 & RFC 8414 compliant
  • Claude Code HTTP Transport - Zero-configuration team collaboration
  • JWT Authentication - Enterprise-grade security with scope validation
  • Auto-Discovery Endpoints - Seamless client registration and authorization
  • Multi-Auth Support - OAuth + API keys + optional anonymous access

🧠 Intelligent Memory Management

  • Semantic search with vector embeddings
  • Natural language time queries ("yesterday", "last week")
  • Tag-based organization with smart categorization
  • Memory consolidation with dream-inspired algorithms
  • Document-aware search - Query across uploaded documents and manual memories

πŸ”— Universal Compatibility

  • Claude Desktop - Native MCP integration
  • Claude Code - HTTP transport + Memory-aware development with hooks
  • VS Code, Cursor, Continue - IDE extensions
  • 13+ AI applications - REST API compatibility

πŸ’Ύ Flexible Storage

  • Hybrid 🌟 (RECOMMENDED) - Fast local SQLite + background Cloudflare sync (v8.9.0 default)
    • 5ms local reads with zero user-facing latency
    • Multi-device synchronization
    • Zero database locks with auto-configured pragmas
    • Automatic backups and cloud persistence
  • SQLite-vec - Local-only storage (lightweight ONNX embeddings, 5ms reads)
    • Good for single-user offline use
    • No cloud dependencies
  • Cloudflare - Cloud-only storage (global edge distribution with D1 + Vectorize)
    • Network-dependent performance

Note: All heavy ML dependencies (PyTorch, sentence-transformers) are now optional to dramatically reduce build times and image sizes. SQLite-vec uses lightweight ONNX embeddings by default. Install with --with-ml for full ML capabilities.

πŸš€ Production Ready

  • Cross-platform - Windows, macOS, Linux
  • Service installation - Auto-start background operation
  • HTTPS/SSL - Secure connections with OAuth 2.1
  • Docker support - Easy deployment with team collaboration
  • Interactive Dashboard - Web UI at http://127.0.0.1:8888/ for complete management

πŸ’‘ Basic Usage

πŸ“„ Document Ingestion (v8.6.0+)

# Start server with web interface
uv run memory server --http

# Access interactive dashboard
open http://127.0.0.1:8888/

# Upload documents via CLI
curl -X POST http://127.0.0.1:8888/api/documents/upload \
  -F "[email protected]" \
  -F "tags=documentation,reference"

# Search document content
curl -X POST http://127.0.0.1:8888/api/search \
  -H "Content-Type: application/json" \
  -d '{"query": "authentication flow", "limit": 10}'

πŸ”— Team Collaboration with OAuth (v7.0.0+)

# Start OAuth-enabled server for team collaboration
export MCP_OAUTH_ENABLED=true
uv run memory server --http

# Claude Code team members connect via HTTP transport
claude mcp add --transport http memory-service http://your-server:8000/mcp
# β†’ Automatic OAuth discovery, registration, and authentication

🧠 Memory Operations

# Store a memory
uv run memory store "Fixed race condition in authentication by adding mutex locks"

# Search for relevant memories
uv run memory recall "authentication race condition"

# Search by tags
uv run memory search --tags python debugging

# Check system health (shows OAuth status)
uv run memory health

πŸ”§ Configuration

Claude Desktop Integration

Recommended approach - Add to your Claude Desktop config (~/.claude/config.json):

{
  "mcpServers": {
    "memory": {
      "command": "python",
      "args": ["-m", "mcp_memory_service.server"],
      "env": {
        "MCP_MEMORY_STORAGE_BACKEND": "sqlite_vec"
      }
    }
  }
}

Alternative approaches:

// Option 1: UV tooling (if using UV)
{
  "mcpServers": {
    "memory": {
      "command": "uv",
      "args": ["--directory", "/path/to/mcp-memory-service", "run", "memory", "server"],
      "env": {
        "MCP_MEMORY_STORAGE_BACKEND": "sqlite_vec"
      }
    }
  }
}

// Option 2: Direct script path (v6.17.0+)
{
  "mcpServers": {
    "memory": {
      "command": "python",
      "args": ["/path/to/mcp-memory-service/scripts/server/run_memory_server.py"],
      "env": {
        "MCP_MEMORY_STORAGE_BACKEND": "sqlite_vec"
      }
    }
  }
}

Environment Variables

Hybrid Backend (v8.9.0+ RECOMMENDED):

# Hybrid backend with auto-configured pragmas
export MCP_MEMORY_STORAGE_BACKEND=hybrid
export MCP_MEMORY_SQLITE_PRAGMAS="busy_timeout=15000,cache_size=20000"

# Cloudflare credentials (required for hybrid)
export CLOUDFLARE_API_TOKEN="your-token"
export CLOUDFLARE_ACCOUNT_ID="your-account"
export CLOUDFLARE_D1_DATABASE_ID="your-db-id"
export CLOUDFLARE_VECTORIZE_INDEX="mcp-memory-index"

# Enable HTTP API
export MCP_HTTP_ENABLED=true
export MCP_HTTP_PORT=8000

# Security
export MCP_API_KEY="your-secure-key"

SQLite-vec Only (Local):

# Local-only storage
export MCP_MEMORY_STORAGE_BACKEND=sqlite_vec
export MCP_MEMORY_SQLITE_PRAGMAS="busy_timeout=15000,cache_size=20000"

πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   AI Clients    β”‚    β”‚  MCP Memory     β”‚    β”‚ Storage Backend β”‚
β”‚                 β”‚    β”‚  Service v8.9   β”‚    β”‚                 β”‚
β”‚ β€’ Claude Desktop│◄──►│ β€’ MCP Protocol  │◄──►│ β€’ Hybrid 🌟     β”‚
β”‚ β€’ Claude Code   β”‚    β”‚ β€’ HTTP Transportβ”‚    β”‚   (5ms local +  β”‚
β”‚   (HTTP/OAuth)  β”‚    β”‚ β€’ OAuth 2.1 Authβ”‚    β”‚    cloud sync)  β”‚
β”‚ β€’ VS Code       β”‚    β”‚ β€’ Memory Store  β”‚    β”‚ β€’ SQLite-vec    β”‚
β”‚ β€’ Cursor        β”‚    β”‚ β€’ Semantic      β”‚    β”‚ β€’ Cloudflare    β”‚
β”‚ β€’ 13+ AI Apps   β”‚    β”‚   Search        β”‚    β”‚                 β”‚
β”‚ β€’ Web Dashboard β”‚    β”‚ β€’ Doc Ingestion β”‚    β”‚ Zero DB Locks βœ…β”‚
β”‚   (Port 8888)   β”‚    β”‚ β€’ Zero DB Locks β”‚    β”‚ Auto-Config βœ…  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ› οΈ Development

Project Structure

mcp-memory-service/
β”œβ”€β”€ src/mcp_memory_service/    # Core application
β”‚   β”œβ”€β”€ models/                # Data models
β”‚   β”œβ”€β”€ storage/               # Storage backends
β”‚   β”œβ”€β”€ web/                   # HTTP API & dashboard
β”‚   └── server.py              # MCP server
β”œβ”€β”€ scripts/                   # Utilities & installation
β”œβ”€β”€ tests/                     # Test suite
└── tools/docker/              # Docker configuration

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes with tests
  4. Submit a pull request

See CONTRIBUTING.md for detailed guidelines.

πŸ†˜ Support

  • πŸ“– Documentation: Wiki - Comprehensive guides
  • πŸ› Bug Reports: GitHub Issues
  • πŸ’¬ Discussions: GitHub Discussions
  • πŸ”§ Troubleshooting: Troubleshooting Guide
  • βœ… Configuration Validator: Run python scripts/validation/validate_configuration_complete.py to check your setup
  • πŸ”„ Backend Sync Tools: See scripts/README.md for Cloudflare↔SQLite sync

πŸ“Š In Production

Real-world metrics from active deployments:

  • 1700+ memories stored and actively used across teams
  • 5ms local reads with hybrid backend (v8.9.0)
  • Zero database locks with concurrent HTTP + MCP access (v8.9.0)
    • Tested: 5/5 concurrent writes succeeded
    • Auto-configured pragmas prevent lock errors
  • <500ms response time for semantic search (local & HTTP transport)
  • 65% token reduction in Claude Code sessions with OAuth collaboration
  • 96.7% faster context setup (15min β†’ 30sec)
  • 100% knowledge retention across sessions and team members
  • Zero-configuration setup success rate: 98.5% (OAuth + hybrid backend)

πŸ† Recognition

  • Smithery Verified MCP Server
  • Glama AI Featured AI Tool
  • Production-tested across 13+ AI applications
  • Community-driven with real-world feedback and improvements

πŸ“„ License

Apache License 2.0 - see LICENSE for details.


Ready to supercharge your AI workflow? πŸš€

πŸ‘‰ Start with our Installation Guide or explore the Wiki for comprehensive documentation.

Transform your AI conversations into persistent, searchable knowledge that grows with you.