mem0 Memory System

#!/bin/bash # Colors for better readability GREEN='\033[0;32m' YELLOW='\033[0;33m' BLUE='\033[0;34m' PURPLE='\033[0;35m' CYAN='\033[0;36m' WHITE='\033[0;37m' BOLD='\033[1m' NC='\033[0m' # No Color # Function to print colored header print_header() { clear echo -e "${GRAD1}┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓${NC}" echo -e "${GRAD2}┃ ┃${NC}" echo -e "${GRAD3}┃ ███╗ ███╗███████╗███╗ ███╗ ██████╗ ███╗ ███╗ ██████╗██████╗ ┃${NC}" echo -e "${GRAD4}┃ ████╗ ████║██╔════╝████╗ ████║██╔═══██╗ ████╗ ████║██╔════╝██╔══██╗ ┃${NC}" echo -e "${GRAD5}┃ ██╔████╔██║█████╗ ██╔████╔██║██║ ██║ ██╔████╔██║██║ ██████╔╝ ┃${NC}" echo -e "${GRAD6}┃ ██║╚██╔╝██║██╔══╝ ██║╚██╔╝██║██║ ██║ ██║╚██╔╝██║██║ ██╔═══╝ ┃${NC}" echo -e "${GRAD7}┃ ██║ ╚═╝ ██║███████╗██║ ╚═╝ ██║╚██████╔╝ ██║ ╚═╝ ██║╚██████╗██║ ┃${NC}" echo -e "${GRAD8}┃ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝╚═╝ ┃${NC}" echo -e "${GRAD7}┃ ┃${NC}" echo -e "${GRAD6}┃ ${BLINK}✨${NC}${GRAD6} SERVER INSTALLER ${BLINK}✨${NC}${GRAD6} ┃${NC}" echo -e "${GRAD5}┃ Made with ❤️ by Pink Pixel ┃${NC}" echo -e "${GRAD4}┃ ┃${NC}" echo -e "${GRAD3}┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛${NC}" echo "" } # Default values HOST="0.0.0.0" PORT="8000" PROVIDER="" EMBEDDING_PROVIDER="" DATA_DIR="~/mem0_memories" DEBUG=false RELOAD=false # Display help message show_help() { echo "✨ mem0 MCP Server Runner ✨" echo "Made with ❤️ by Pink Pixel" echo "" echo "Usage: ./run_server.sh [options]" echo "" echo "Options:" echo " -h, --host HOST Host to bind the server to (default: 0.0.0.0)" echo " -p, --port PORT Port to bind the server to (default: 8000)" echo " -m, --provider PROVIDER LLM provider to use (default: from .env or ollama)" echo " -e, --embedding PROVIDER Embedding provider to use (default: from .env or ollama)" echo " -d, --data-dir DIR Directory to store memory data (default: from .env or ~/mem0_memories)" echo " -r, --reload Enable auto-reload for development" echo " --debug Enable debug mode" echo " --help Show this help message" echo "" exit 0 } # Parse command line arguments while [[ $# -gt 0 ]]; do case "$1" in -h|--host) HOST="$2" shift 2 ;; -p|--port) PORT="$2" shift 2 ;; -m|--provider) PROVIDER="$2" shift 2 ;; -e|--embedding) EMBEDDING_PROVIDER="$2" shift 2 ;; -d|--data-dir) DATA_DIR="$2" shift 2 ;; -r|--reload) RELOAD=true shift ;; --debug) DEBUG=true shift ;; --help) show_help ;; *) echo "Unknown option: $1" show_help ;; esac done # Expand tilde in data directory path DATA_DIR="${DATA_DIR/#\~/$HOME}" # Build command CMD="python server.py --host $HOST --port $PORT" if [ ! -z "$PROVIDER" ]; then CMD="$CMD --provider $PROVIDER" fi if [ ! -z "$EMBEDDING_PROVIDER" ]; then CMD="$CMD --embedding-provider $EMBEDDING_PROVIDER" fi if [ ! -z "$DATA_DIR" ]; then CMD="$CMD --data-dir $DATA_DIR" fi if [ "$RELOAD" = true ]; then CMD="$CMD --reload" fi if [ "$DEBUG" = true ]; then CMD="$CMD --debug" fi # Print banner echo -e "$BANNER" echo "" echo -e "${BOLD}${GREEN}Starting server with command: $CMD${NC}" echo "" # Run the server $CMD