state-hub/scripts/codex-state-hub-mcp.sh

38 lines
948 B
Bash
Raw Normal View History

2026-05-02 17:13:13 +02:00
#!/usr/bin/env bash
set -euo pipefail
2026-08-09 16:19:53 +02:00
STATE_HUB_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
STATE_HUB_PYTHON="${STATE_HUB_PYTHON:-$STATE_HUB_DIR/.venv/bin/python}"
cd "$STATE_HUB_DIR"
2026-05-02 17:13:13 +02:00
API_BASE="${API_BASE:-http://127.0.0.1:8000}"
HEALTH_URL="${API_BASE%/}/state/health"
LOG_FILE="${STATE_HUB_API_LOG:-/tmp/state-hub-api-for-codex.log}"
api_healthy() {
curl -sf "$HEALTH_URL" >/dev/null
}
if ! api_healthy; then
nohup make api >"$LOG_FILE" 2>&1 &
for _ in $(seq 1 45); do
api_healthy && break
sleep 1
done
fi
if ! api_healthy; then
echo "state-hub API is not healthy at $HEALTH_URL; see $LOG_FILE" >&2
exit 1
fi
2026-08-09 16:19:53 +02:00
if [ ! -x "$STATE_HUB_PYTHON" ]; then
echo "state-hub Python is not executable at $STATE_HUB_PYTHON" >&2
echo "install the repository environment before starting the Codex MCP server" >&2
exit 1
fi
2026-05-02 17:13:13 +02:00
export API_BASE
export MCP_TRANSPORT=stdio
2026-08-09 16:19:53 +02:00
exec "$STATE_HUB_PYTHON" mcp_server/codex_server.py