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