56 lines
1.4 KiB
Bash
56 lines
1.4 KiB
Bash
#!/usr/bin/env sh
|
|
set -eu
|
|
|
|
SCRIPT_DIR="$(CDPATH= cd "$(dirname "$0")" && pwd -P)"
|
|
ENV_FILE="${ALPACA_MCP_ENV_FILE:-${SCRIPT_DIR}/.env}"
|
|
|
|
if [ -f "${ENV_FILE}" ]; then
|
|
set -a
|
|
. "${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
|