A vibe-coded memory management system with RAG capabilities for Claude via the Model Context Protocol (MCP). > ⚠️ **Warning**: This project is completely vibe-coded. It works, but don't look too closely at the implementation details. The code was written by an AI having a good time, not by someone following best practices. What is SimpleMem? SimpleMem is an MCP server that provides persistent memory storage and retrieval for Claude and other MCP clients. It combines traditional file-based storage with modern RAG (Retrieval-Augmented Generation) capabilities, including semantic search and automatic relationship discovery. Think of it as Claude's personal notebook that never forgets and can find connections between ideas automatically. Features - 📝 **Persistent Memory Storage**: Store and retrieve memories with rich metadata - 🔍 **Semantic Search**: Find memories using natural language queries - 🔗 **Automatic Relationship Discovery**: Semantic backlinks connect related memories - 🏷️ **Tag System**: Organize memories with flexible tagging - 🎯 **Vector Embeddings**: Powered by Voyage AI for high-quality semantic understanding - 📊 **DuckDB Backend**: Fast, efficient storage with vector similarity search - 🔧 **MCP Protocol**: Seamless integration with Claude and other MCP clients Quick Start Prerequisites - Go 1.21+ - A Voyage AI API key (see Configuration section below) Installation Option 1: Download Pre-built Binaries Download the latest release for your platform from GitHub Releases: - **Linux AMD64**: simplemem-vX.X.X-linux-amd64.tar.gz Extract and place the binary in your PATH. Option 2: Build from Source Option 3: Nix If you have Nix with flakes enabled: Configuration SimpleMem uses TOML-based configuration with flexible options for API keys and settings. Configuration File Create a config.toml file (see config.toml.example for reference): Environment Variables You can also configure using environment variables: Configuration Options - **Custom config file**: Use --config path/to/config.toml - **Database path**: Use --db path/to/database.db (can also be set in config) - **API key sources**: File path (recommended) or direct value - **Multiple configs**: Different configs for different projects Usage As an MCP Server Add to your MCP client configuration: Command Line Testing Testing Semantic Backlinks Available Tools (MCP) - **create_memory**: Create a new memory with metadata object and markdown content - **read_memory**: Read a specific memory by name - **update_memory**: Update existing memory metadata and content - **delete_memory**: Remove a memory and all related data - **search_memories**: Semantic search with optional tag filtering (primary discovery method) - **get_backlinks**: Get memories related to a specific memory - **change_tag**: Modify tags on memories > **Note**: list_memories has been temporarily removed to encourage efficient semantic search usage instead of token-heavy full listings.