learning_ai_invt_trdg/scripts/mcp/alpaca-mcp-server.sh

56 lines
1.3 KiB
Bash

#!/usr/bin/env zsh
set -euo pipefail
SCRIPT_DIR="${0:A:h}"
ENV_FILE="${ALPACA_MCP_ENV_FILE:-${SCRIPT_DIR}/.env}"
if [[ -f "${ENV_FILE}" ]]; then
set -a
source "${ENV_FILE}"
set +a
fi
if [[ "${1:-}" == "--doctor" ]]; then
if [[ -f "${ENV_FILE}" ]]; then
echo "ok: env file found (${ENV_FILE})"
else
echo "warn: env file not found (${ENV_FILE}); copy scripts/mcp/.env.example to scripts/mcp/.env"
fi
if [[ -n "${ALPACA_API_KEY:-}" && -n "${ALPACA_SECRET_KEY:-}" ]]; then
echo "ok: Alpaca credential variables are set"
else
echo "warn: ALPACA_API_KEY and/or ALPACA_SECRET_KEY are not set"
fi
if command -v uvx >/dev/null 2>&1; then
echo "ok: uvx available ($(command -v uvx))"
exit 0
fi
if command -v uv >/dev/null 2>&1; then
echo "ok: uv available ($(command -v uv))"
exit 0
fi
if command -v pipx >/dev/null 2>&1; then
echo "ok: pipx fallback available ($(command -v pipx))"
exit 0
fi
echo "error: install uv or pipx before starting the Alpaca MCP server" >&2
exit 127
fi
if command -v uvx >/dev/null 2>&1; then
exec uvx alpaca-mcp-server "$@"
fi
if command -v uv >/dev/null 2>&1; then
exec uv tool run alpaca-mcp-server "$@"
fi
if command -v pipx >/dev/null 2>&1; then
exec pipx run alpaca-mcp-server "$@"
fi
echo "error: install uv or pipx before starting the Alpaca MCP server" >&2
exit 127