run-clickup-mcp.sh•2.53 kB
#!/bin/bash
# run-clickup-mcp.sh
# Script to run ClickUp MCP server through Supergateway
# Check if required environment variables are set
if [ -z "$CLICKUP_API_KEY" ]; then
echo "Error: CLICKUP_API_KEY environment variable is not set"
exit 1
fi
if [ -z "$CLICKUP_TEAM_ID" ]; then
echo "Error: CLICKUP_TEAM_ID environment variable is not set"
exit 1
fi
# Default values
PORT=${PORT:-8002}
BASE_URL=${BASE_URL:-"http://localhost:$PORT"}
SSE_PATH=${SSE_PATH:-"/sse"}
MESSAGE_PATH=${MESSAGE_PATH:-"/message"}
LOG_LEVEL=${LOG_LEVEL:-"info"}
DOCUMENT_SUPPORT=${DOCUMENT_SUPPORT:-"false"}
CORS_ORIGINS=${CORS_ORIGINS:-"*"}
# Parse command line arguments
while [[ $# -gt 0 ]]; do
case $1 in
--port)
PORT="$2"
shift 2
;;
--base-url)
BASE_URL="$2"
shift 2
;;
--sse-path)
SSE_PATH="$2"
shift 2
;;
--message-path)
MESSAGE_PATH="$2"
shift 2
;;
--log-level)
LOG_LEVEL="$2"
shift 2
;;
--document-support)
DOCUMENT_SUPPORT="$2"
shift 2
;;
--cors)
CORS_ORIGINS="$2"
shift 2
;;
*)
echo "Unknown option: $1"
exit 1
;;
esac
done
# Construct the ClickUp MCP server command with environment variables
CLICKUP_CMD="npx -y @v4lheru/clickup-mcp-server --env CLICKUP_API_KEY=$CLICKUP_API_KEY --env CLICKUP_TEAM_ID=$CLICKUP_TEAM_ID --env DOCUMENT_SUPPORT=$DOCUMENT_SUPPORT --env LOG_LEVEL=$LOG_LEVEL"
# Construct the Supergateway command
SUPERGATEWAY_CMD="npx -y supergateway --stdio \"$CLICKUP_CMD\" --port $PORT --baseUrl $BASE_URL --ssePath $SSE_PATH --messagePath $MESSAGE_PATH --logLevel $LOG_LEVEL --healthEndpoint /healthz"
# Add CORS if specified
if [ "$CORS_ORIGINS" != "" ]; then
if [ "$CORS_ORIGINS" = "*" ]; then
SUPERGATEWAY_CMD="$SUPERGATEWAY_CMD --cors"
else
# Split CORS_ORIGINS by comma and add each as a separate --cors argument
IFS=',' read -ra ORIGINS <<< "$CORS_ORIGINS"
for ORIGIN in "${ORIGINS[@]}"; do
SUPERGATEWAY_CMD="$SUPERGATEWAY_CMD --cors \"$ORIGIN\""
done
fi
fi
# Print configuration
echo "Starting ClickUp MCP Server through Supergateway with the following configuration:"
echo "- Port: $PORT"
echo "- Base URL: $BASE_URL"
echo "- SSE Path: $SSE_PATH"
echo "- Message Path: $MESSAGE_PATH"
echo "- Log Level: $LOG_LEVEL"
echo "- Document Support: $DOCUMENT_SUPPORT"
echo "- CORS Origins: $CORS_ORIGINS"
echo ""
# Execute the command
echo "Executing: $SUPERGATEWAY_CMD"
eval $SUPERGATEWAY_CMD