docker-entrypoint.sh•1.42 kB
#!/bin/sh
set -e
# FastMail MCP Server Docker Entrypoint
# Handles environment setup and starts the MCP server
echo "Starting FastMail MCP Server..."
# Set default values if not provided
export FASTMAIL_API_TOKEN=${FASTMAIL_API_TOKEN:-""}
export FASTMAIL_EMAIL=${FASTMAIL_EMAIL:-""}
export FASTMAIL_SEND_AS=${FASTMAIL_SEND_AS:-"${FASTMAIL_EMAIL}"}
export FASTMAIL_ALIAS_DOMAIN=${FASTMAIL_ALIAS_DOMAIN:-"fastmail.com"}
export FASTMAIL_JMAP_URL=${FASTMAIL_JMAP_URL:-"https://jmap.fastmail.com/jmap/session"}
# Validate required environment variables
if [ -z "$FASTMAIL_API_TOKEN" ]; then
echo "ERROR: FASTMAIL_API_TOKEN environment variable is required"
exit 1
fi
if [ -z "$FASTMAIL_EMAIL" ]; then
echo "ERROR: FASTMAIL_EMAIL environment variable is required"
exit 1
fi
# Log configuration (without sensitive data)
echo "Configuration:"
echo " FASTMAIL_EMAIL: $FASTMAIL_EMAIL"
echo " FASTMAIL_SEND_AS: $FASTMAIL_SEND_AS"
echo " FASTMAIL_ALIAS_DOMAIN: $FASTMAIL_ALIAS_DOMAIN"
echo " FASTMAIL_JMAP_URL: $FASTMAIL_JMAP_URL"
echo " NODE_ENV: $NODE_ENV"
echo " MCP_TRANSPORT: $MCP_TRANSPORT"
# Handle shutdown signals gracefully
cleanup() {
echo "Received shutdown signal, cleaning up..."
# Kill any child processes
kill -TERM 0
wait
echo "Shutdown complete"
}
trap cleanup TERM INT
# Start the MCP server
echo "Launching MCP server on stdio transport..."
exec node src/index.js