resq_mcp.dtsop.tools
MCP tool wrappers for DTSOP domain.logging
UTC
datetime
Context
FastMCPError
OptimizationStrategy
SimulationRequest
get_optimization_strategy
trigger_sim
MAX_SIMULATIONS
incidents
mcp
simulations
logger
run_simulation
- Validate simulation request parameters
- Generate unique simulation ID
- Queue job to DTSOP backend (Unity/Unreal Engine)
- Store job metadata in simulation registry
- Return simulation ID and subscription URI
- Background processor updates status -> processing -> completed
- Client fetches results from NeoFS when completed
request- SimulationRequest with:- scenario_id: Unique scenario identifier
- sector_id: Geographic sector to simulate
- disaster_type: Physics model (flood/wildfire/earthquake)
- parameters: Scenario params (wind_speed, water_level, etc.)
- priority: “standard” or “urgent”
ctx- Optional FastMCP context for logging.
str- Message with simulation ID and subscription instructions: “Simulation queued with ID: SIM-XXXXXXXX. Subscribe to resq://simulations/SIM-XXXXXXXX for updates.”
Integration: Production would:from resq_mcp.dtsop.models import SimulationRequest request = SimulationRequest( … scenario_id=“flood-001”, … sector_id=“Sector-1”, … disaster_type=“flood”, … parameters={“water_level”: 2.5}, … priority=“urgent” … ) result = await run_simulation(request) print(result) # “Simulation queued with ID: SIM-ABCD1234…”
- Validate request against simulation templates
- Check cluster capacity and queue position
- Store job in Redis with priority
- Submit to Unity/Unreal Engine processing cluster
- Return estimated completion time
get_deployment_strategy
incident_id- Incident identifier (INC-XXX) or pre-alert ID (PRE-XXX) to generate strategy for.
OptimizationStrategy- Complete strategy recommendation with:- strategy_id: Unique identifier
- related_alert_id: Original incident/alert ID
- recommended_deployment: Drone type counts
- evacuation_routes: Prioritized route list
- estimated_success_rate: Predicted success (0.0-1.0)
- simulation_proof_url: NeoFS evidence link
Use Cases:strategy = await get_deployment_strategy(“PRE-ABC123”) print(strategy.strategy_id) print(strategy.recommended_deployment) # {“surveillance”: 2, …} print(f”Success rate: {strategy.estimated_success_rate:.0%}”)
- Pre-positioning drones before predicted disasters (PDIE alerts)
- Active response optimization for confirmed incidents
- Multi-objective optimization (speed, safety, resource efficiency)
- Scenario comparison and sensitivity analysis