#!/usr/bin/env bash set -euo pipefail echo "[start.sh] $(date -Iseconds) :: Booting FoodWise MCP (FastAPI + FastMCP)" echo "[start.sh] Python version: $(python -V || true)" echo "[start.sh] Working dir: $(pwd)" echo "[start.sh] Listing project root:" ls -la || true # Load .env if present for local/dev convenience if [[ -f .env ]]; then echo "[start.sh] Loading .env into environment" # shellcheck disable=SC2046 set -a && source .env && set +a fi # Print key env (safe) echo "[start.sh] Env snapshot (selected):" echo "HOST=${HOST:-} PORT=${PORT:-} ENVIRONMENT=${ENVIRONMENT:-}" echo "MCP_SERVER_NAME=${MCP_SERVER_NAME:-} MCP_LOG_LEVEL=${MCP_LOG_LEVEL:-}" # Masked diagnostics for Notion envs (no secrets printed) if [[ -n "${NOTION_SECRET:-}" ]]; then echo "[start.sh] NOTION_SECRET: present (len=${#NOTION_SECRET})" else echo "[start.sh] NOTION_SECRET: MISSING" fi if [[ -n "${NOTION_INVENTORY_DB_ID:-}" ]]; then echo "[start.sh] NOTION_INVENTORY_DB_ID: present (len=${#NOTION_INVENTORY_DB_ID})" else echo "[start.sh] NOTION_INVENTORY_DB_ID: MISSING" fi if [[ -n "${NOTION_SHOPPING_DB_ID:-}" ]]; then echo "[start.sh] NOTION_SHOPPING_DB_ID: present (len=${#NOTION_SHOPPING_DB_ID})" else echo "[start.sh] NOTION_SHOPPING_DB_ID: MISSING" fi # Verify main.py presence if [[ ! -f main.py ]]; then echo "[start.sh] ERROR: main.py not found in $(pwd)" >&2 exit 1 fi # Run FastMCP's HTTP server via main.py (serves /mcp/) exec uv run python main.py