#!/bin/sh set -e # MCP Scanner — Install Script # Usage: curl -fsSL https://install.mcpscanner.dev/install.sh | sh # # Copyright 2026 codelake Technologies LLC, an Akyros Labs brand # https://mcpscanner.dev BASE_URL="${MCPSCANNER_BASE_URL:-https://install.mcpscanner.dev}" INSTALL_DIR="${MCPSCANNER_INSTALL_DIR:-/usr/local/bin}" BINARY_NAME="mcpscanner" main() { detect_platform download_binary install_binary verify_installation } detect_platform() { OS="$(uname -s | tr '[:upper:]' '[:lower:]')" ARCH="$(uname -m)" case "$OS" in linux) OS="linux" ;; darwin) OS="darwin" ;; *) echo "Error: unsupported operating system: $OS" echo "MCP Scanner supports Linux and macOS. For Windows, download manually from:" echo " ${BASE_URL}/cli-scanner/latest/mcpscanner-windows-amd64.exe" exit 1 ;; esac case "$ARCH" in x86_64|amd64) ARCH="amd64" ;; arm64|aarch64) ARCH="arm64" ;; *) echo "Error: unsupported architecture: $ARCH" exit 1 ;; esac SUFFIX="${OS}-${ARCH}" echo "Detected platform: ${SUFFIX}" } download_binary() { URL="${BASE_URL}/cli-scanner/latest/${BINARY_NAME}-${SUFFIX}" TMPDIR="$(mktemp -d)" TMPFILE="${TMPDIR}/${BINARY_NAME}" echo "Downloading ${BINARY_NAME} from ${URL}..." if command -v curl >/dev/null 2>&1; then curl -fsSL -o "$TMPFILE" "$URL" elif command -v wget >/dev/null 2>&1; then wget -qO "$TMPFILE" "$URL" else echo "Error: curl or wget is required" exit 1 fi chmod +x "$TMPFILE" } install_binary() { if [ -w "$INSTALL_DIR" ]; then mv "$TMPFILE" "${INSTALL_DIR}/${BINARY_NAME}" else echo "Installing to ${INSTALL_DIR} (requires sudo)..." sudo mv "$TMPFILE" "${INSTALL_DIR}/${BINARY_NAME}" fi rm -rf "$TMPDIR" } verify_installation() { if command -v "$BINARY_NAME" >/dev/null 2>&1; then VERSION="$("$BINARY_NAME" --version 2>&1 | grep -o 'MCP Scanner [^ ]*' | head -1)" echo "" echo "Successfully installed: ${VERSION}" echo "Run 'mcpscanner scan --help' to get started." else echo "" echo "Installed to ${INSTALL_DIR}/${BINARY_NAME}" echo "Make sure ${INSTALL_DIR} is in your PATH." fi } main