#!/bin/zsh set -euo pipefail LABEL="com.local.macmini-mcp" PROJECT_DIR="$(cd "$(dirname "$0")/.." && pwd)" NODE_BIN="$(command -v node)" AGENT_DIR="$HOME/Library/LaunchAgents" PLIST="$AGENT_DIR/$LABEL.plist" LOG_DIR="$PROJECT_DIR/.logs" DOMAIN="gui/$(id -u)" mkdir -p "$AGENT_DIR" "$LOG_DIR" cat > "$PLIST" < Label $LABEL ProgramArguments $NODE_BIN --watch src/http.js WorkingDirectory $PROJECT_DIR RunAtLoad KeepAlive ThrottleInterval 2 StandardOutPath $LOG_DIR/service.out.log StandardErrorPath $LOG_DIR/service.err.log PLIST plutil -lint "$PLIST" launchctl bootout "$DOMAIN" "$PLIST" 2>/dev/null || true launchctl bootstrap "$DOMAIN" "$PLIST" launchctl enable "$DOMAIN/$LABEL" launchctl kickstart -k "$DOMAIN/$LABEL" echo "Installed $LABEL" echo "Endpoint: configured by .env (see the service log for the listening URL)" echo "Logs: $LOG_DIR"