ConnectWise Manage MCP Server

#!/bin/bash # Enhanced logging LOG_FILE="/tmp/connectwise-mcp-server.log" echo "===== $(date) =====" > $LOG_FILE cd "$(dirname "$0")" echo "Working directory: $(pwd)" >> $LOG_FILE # Set environment variables export CW_COMPANY_ID=microtech export CW_PUBLIC_KEY=ghkvdcrdQCqcJgBJ export CW_PRIVATE_KEY=4yZTDHWBXdmGa13j export CW_URL=api-na.myconnectwise.net export PORT=3456 echo "Checking for processes using port $PORT..." >> $LOG_FILE # Check if the port is in use and kill the process if needed PORT_PROCESS=$(lsof -i :$PORT | grep LISTEN | awk '{print $2}') if [ ! -z "$PORT_PROCESS" ]; then echo "Port $PORT is in use by process $PORT_PROCESS. Killing it..." | tee -a $LOG_FILE kill -9 $PORT_PROCESS 2>> $LOG_FILE sleep 2 # Double-check if port is still in use PORT_PROCESS=$(lsof -i :$PORT | grep LISTEN | awk '{print $2}') if [ ! -z "$PORT_PROCESS" ]; then echo "FAILED: Port $PORT is still in use by process $PORT_PROCESS after attempted kill." | tee -a $LOG_FILE exit 1 else echo "SUCCESS: Port $PORT is now free." | tee -a $LOG_FILE fi else echo "Port $PORT is free." >> $LOG_FILE fi # Check if Node.js is available echo "Checking Node.js version..." >> $LOG_FILE NODE_VERSION=$(node --version 2>> $LOG_FILE) echo "Node.js version: $NODE_VERSION" >> $LOG_FILE # Make the server script executable chmod +x mcp-server.js 2>> $LOG_FILE echo "Made server script executable." >> $LOG_FILE # Start the server echo "Starting server..." | tee -a $LOG_FILE node mcp-server.js 2>&1 | tee -a $LOG_FILE