SYSTEM ARCHITECTURE
End-to-end view: Vue UI → Kong gateway → FastAPI → MCP servers → live and scenario data sources. Langfuse traces every agent run.
MCP SERVER TOPOLOGY
Three servers scoped by access domain. Each exposes tools, resources, and prompts. FCE connects to shared + passenger. Handover connects to shared + ops.
FCE AGENT — BEHIND EVERY DEPARTURE
Passenger notification agent. Triages flight status, gathers context from 5 parallel tool calls (including live weather and FAA data), synthesizes an empathetic notification.
SHIFT HANDOVER AGENT
Ops briefing agent. Scans all hubs in parallel, scores issues by severity × time sensitivity, categorizes into IMMEDIATE / MONITOR / FYI, generates a structured brief.
DATA FLOW — REAL vs MOCK
Weather and FAA airport status are live (no API key). Flight, crew, passenger, and maintenance data are scenario-based fixtures switchable from the UI.
DEPLOYMENT
Kind cluster for dev (Tilt), docker-compose for quick start, EC2 for production demo. Entry point: localhost:8040.
REPOSITORY STRUCTURE
Monorepo: MCP servers, agents, IRROP engine, API, Vue UI (with shared component framework), and deployment configs.
stellar-ops/ ├── mcp_servers/ │ ├── shared/ server.py — tools/ resources/ prompts/ │ │ └── tools: get_route_weather · get_hub_forecasts · get_airport_status │ │ get_flight_status · get_flight_details · get_irregular_ops │ │ get_airport_congestion · get_maintenance_flags │ ├── ops/ server.py — tools/ resources/ prompts/ │ │ └── tools: get_crew_notes · get_crew_duty_status · get_pending_rebookings │ │ generate_narrative │ ├── passenger/ server.py — tools/ resources/ prompts/ │ │ └── tools: generate_notification │ └── data/ │ ├── models.py FlightData, CrewMember, Passenger, MELItem, HubInfo │ ├── real/ openmeteo.py · faa.py │ └── scenarios/ normal_ops · weather_disruption_ord │ maintenance_delay_sfo · crew_swap_ewr ├── agents/ │ ├── fce.py FCE — "Behind Every Departure" │ ├── handover.py Shift Handover agent │ └── shared/ mcp_client.py · llm.py (Bedrock/Anthropic) ├── irrop/ Disruption Recovery Engine (Project 3) │ ├── models/ flight · passenger · crew · recovery │ ├── rules/ faa_part117 · rebooking · compensation │ └── pipeline/ ingest → triage → rebook → compensate ├── api/ │ └── main.py FastAPI + WebSocket + scenario data API ├── ui/ │ ├── framework/ soleprint-ui (shared component library) │ └── app/ Vue 3 SPA — Operations · Internals · Data ├── ctrl/ │ ├── Dockerfile.api/ui Container builds │ ├── k8s/ base/ + overlays/dev/ (Kustomize) │ ├── Tiltfile Dev environment (Kind cluster: unt) │ └── docker-compose.yml Simple alternative ├── docs/ Architecture graphs (this page) └── .mcp.json Claude Code integration — 3 servers