#!/bin/bash # LogicMem MCP Installer — One Command Setup # Usage: curl -fsSL https://logicmem.io/install.sh | sh set -e LOGICMEM_URL="https://install.logicmem.io" LOGICMEM_API_URL="https://memory.logicframe.io" INSTALLER_VERSION="1.0.0" echo "🔧 LogicMem MCP Installer v$INSTALLER_VERSION" echo "============================================" # Detect OS OS="$(uname -s)" if [[ "$OS" == "Darwin" ]]; then CLAUDE_DIR="$HOME/.claude" CLAUDE_SETTINGS="$CLAUDE_DIR/settings.json" PYTHON_CMD="python3" elif [[ "$OS" == "Linux" ]]; then CLAUDE_DIR="$HOME/.claude" CLAUDE_SETTINGS="$CLAUDE_DIR/settings.json" PYTHON_CMD="python3" elif [[ "$OS" == "MINGW"* ]] || [[ "$OS" == "MSYS"* ]]; then CLAUDE_DIR="$USERPROFILE/.claude" CLAUDE_SETTINGS="$CLAUDE_DIR/settings.json" PYTHON_CMD="python" else echo "❌ Unsupported OS: $OS" echo " Supported: macOS, Linux, Git Bash (Windows)" exit 1 fi echo "📁 Platform: $OS" echo "📂 Config: $CLAUDE_SETTINGS" # Create .claude dir if not exists mkdir -p "$CLAUDE_DIR" # Download MCP server echo "" echo "⬇️ Downloading LogicMem MCP server..." MCP_DEST="$CLAUDE_DIR/logicmem_mcp_server.py" if curl -fsSL "$LOGICMEM_URL/mcp_server_v2.py" -o "$MCP_DEST" 2>/dev/null; then echo " ✅ MCP server saved to $MCP_DEST" else echo " ⚠️ Could not download from $LOGICMEM_URL — skipping (will use hosted)" fi # Generate or ask for API key echo "" echo "🔑 API Key Setup" echo " Get your free key at: https://logicmem.io/signup" echo -n " Enter your LogicMem API key (or press Enter to use hosted): " read -r API_KEY < /dev/tty # Build MCP config if [[ -n "$API_KEY" ]]; then MCP_CONFIG='"env": { "MEMORY_SERVER_URL": "'"$LOGICMEM_API_URL"'", "LOGICFRAME_API_KEY": "'"$API_KEY"'" }' else MCP_CONFIG='"env": { "MEMORY_SERVER_URL": "'"$LOGICMEM_API_URL"'", "LOGICFRAME_API_KEY": "YOUR_API_KEY_HERE" }' fi # Read existing settings or create new if [[ -f "$CLAUDE_SETTINGS" ]]; then echo "" echo "📝 Updating existing settings.json..." # Use python for reliable JSON merging python3 -c " import json, sys, os settings_file = os.path.expanduser('$CLAUDE_SETTINGS') with open(settings_file, 'r') as f: settings = json.load(f) # Ensure mcpServers exists if 'mcpServers' not in settings: settings['mcpServers'] = {} # Add LogicMem MCP settings['mcpServers']['LogicMem'] = { 'command': '$PYTHON_CMD', 'args': ['$MCP_DEST'], 'env': { 'MEMORY_SERVER_URL': '$LOGICMEM_API_URL', 'LOGICFRAME_API_KEY': '$API_KEY' if '$API_KEY' else 'YOUR_API_KEY_HERE' } } with open(settings_file, 'w') as f: json.dump(settings, f, indent=2) print(' ✅ LogicMem MCP added to settings.json') " else echo "" echo "📝 Creating new settings.json..." python3 -c " import json, os settings_file = os.path.expanduser('$CLAUDE_SETTINGS') settings = { 'mcpServers': { 'LogicMem': { 'command': '$PYTHON_CMD', 'args': ['$MCP_DEST'], 'env': { 'MEMORY_SERVER_URL': '$LOGICMEM_API_URL', 'LOGICFRAME_API_KEY': '$API_KEY' if '$API_KEY' else 'YOUR_API_KEY_HERE' } } } } os.makedirs(os.path.dirname(settings_file), exist_ok=True) with open(settings_file, 'w') as f: json.dump(settings, f, indent=2) print(' ✅ settings.json created') " fi echo "" echo "============================================" echo "✅ Installation complete!" echo "" echo "Next steps:" echo " 1. Get your API key at https://logicmem.io/signup" echo " 2. If you entered 'YOUR_API_KEY_HERE', edit $CLAUDE_SETTINGS and add your key" echo " 3. Restart Claude Code" echo " 4. Type /mcp to verify LogicMem is connected" echo "" echo "📖 Docs: https://logicmem.io/docs" echo "💬 Support: https://logicmem.io/discord"