#!/bin/bash
set -e
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m'
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
ENV_DIR="${SCRIPT_DIR}/env"
PYTHON_VERSION="3.10"
echo -e "${BLUE}"
echo "=============================================="
echo " NetMHCIIpan MCP Quick Setup Script "
echo "=============================================="
echo -e "${NC}"
info() { echo -e "${BLUE}[INFO]${NC} $1"; }
success() { echo -e "${GREEN}[SUCCESS]${NC} $1"; }
warn() { echo -e "${YELLOW}[WARNING]${NC} $1"; }
error() { echo -e "${RED}[ERROR]${NC} $1"; }
check_conda() {
if command -v mamba &> /dev/null; then
CONDA_CMD="mamba"
info "Using mamba (faster package resolution)"
elif command -v conda &> /dev/null; then
CONDA_CMD="conda"
info "Using conda"
else
error "Neither conda nor mamba found. Please install Miniconda or Mambaforge first."
exit 1
fi
}
SKIP_ENV=false
while [[ $# -gt 0 ]]; do
case $1 in
--skip-env) SKIP_ENV=true; shift ;;
-h|--help)
echo "Usage: ./quick_setup.sh [OPTIONS]"
echo ""
echo "Options:"
echo " --skip-env Skip conda environment creation"
echo " -h, --help Show this help message"
exit 0
;;
*) warn "Unknown option: $1"; shift ;;
esac
done
info "Checking prerequisites..."
check_conda
success "Prerequisites check passed"
echo ""
echo -e "${BLUE}Step 1: Setting up conda environment${NC}"
if [ "$SKIP_ENV" = true ]; then
info "Skipping environment creation (--skip-env)"
elif [ -d "$ENV_DIR" ] && [ -f "$ENV_DIR/bin/python" ]; then
info "Environment already exists at: $ENV_DIR"
else
info "Creating conda environment with Python ${PYTHON_VERSION}..."
$CONDA_CMD create -p "$ENV_DIR" python=${PYTHON_VERSION} -y
fi
echo ""
echo -e "${BLUE}Step 2: Installing dependencies${NC}"
if [ "$SKIP_ENV" = true ]; then
info "Skipping dependency installation (--skip-env)"
else
info "Installing core dependencies..."
"${ENV_DIR}/bin/pip" install fastmcp loguru click pandas numpy tqdm --no-cache-dir
info "Installing openpyxl..."
"${ENV_DIR}/bin/pip" install openpyxl
info "Reinstalling fastmcp..."
"${ENV_DIR}/bin/pip" install --ignore-installed fastmcp
success "Dependencies installed"
fi
echo ""
echo -e "${BLUE}Step 3: Verifying installation${NC}"
"${ENV_DIR}/bin/python" -c "import fastmcp; import loguru; print('Core packages OK')" && success "Core packages verified" || error "Package verification failed"
echo ""
echo -e "${GREEN}=============================================="
echo " Setup Complete!"
echo "==============================================${NC}"
echo ""
echo "Environment: $ENV_DIR"
echo ""
echo -e "${YELLOW}Note:${NC} NetMHCIIpan-4.3 must be installed separately from DTU."
echo "Visit: https://services.healthtech.dtu.dk/services/NetMHCIIpan-4.3/"
echo ""
echo -e "${YELLOW}Claude Code Configuration:${NC}"
echo ""
cat << EOF
{
"mcpServers": {
"netmhc2pan": {
"command": "${ENV_DIR}/bin/python",
"args": ["${SCRIPT_DIR}/src/server.py"]
}
}
}
EOF
echo ""
echo "To add to Claude Code:"
echo " claude mcp add netmhc2pan -- ${ENV_DIR}/bin/python ${SCRIPT_DIR}/src/server.py"
echo ""