← WebMCP Directory

Tool tree

agent-flight-sim-production.up.railway.app

AI & AgentsTools verified
Website
A real-time WebMCP flight simulator that tests whether an agent can adapt to an emergency and land safely.
Explore capabilities
    read_pilot_manualAnswer

    Read this before programming a flight. It publishes the aircraft-specific takeoff, approach, flare, touchdown, rollout, and pre-armed go-around limits needed to choose exact commands. It contains no sealed scenario information.

    View tool JSON
    {
      "name": "read_pilot_manual",
      "kind": "answer",
      "impl": "imperative",
      "description": "Read this before programming a flight. It publishes the aircraft-specific takeoff, approach, flare, touchdown, rollout, and pre-armed go-around limits needed to choose exact commands. It contains no sealed scenario information.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      }
    }
    start_flightAction

    Select agent mode for a fresh flight and receive the full mission brief and current state. The selected mode stays locked until the run is reset. The brief publishes route checkpoints and exact crossing targets; it does not prescribe controls. The environment privately selects a reproducible scenario, and no future condition is disclosed before its flight event. Submit the ordered exact command program before takeoff.

    View tool JSON
    {
      "name": "start_flight",
      "kind": "act",
      "impl": "imperative",
      "description": "Select agent mode for a fresh flight and receive the full mission brief and current state. The selected mode stays locked until the run is reset. The brief publishes route checkpoints and exact crossing targets; it does not prescribe controls. The environment privately selects a reproducible scenario, and no future condition is disclosed before its flight event. Submit the ordered exact command program before takeoff.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      }
    }
    program_flight_planAction

    Author the flight as 2-16 ordered exact commands. Each command persists until the next trigger. Choose one lateral mode, one vertical mode, one energy mode, plus exact gear and flaps. The first trigger must be immediate. Use active_waypoint commands to fly each published checkpoint. The simulator tracks your declared setpoints at 60 Hz; it never chooses pitch, speed, configuration, flare, or rollout. Landing programs need a distance-triggered exact-pitch flare and an aircraft_phase landing_roll command. Put exact missed-approach commands in go_around.commands to pre-arm an immediate response to an unsafe approach. Replacing commands preserves route progress. Read read_pilot_manual for the aircraft-specific limits.

    View tool JSON
    {
      "name": "program_flight_plan",
      "kind": "act",
      "impl": "imperative",
      "description": "Author the flight as 2-16 ordered exact commands. Each command persists until the next trigger. Choose one lateral mode, one vertical mode, one energy mode, plus exact gear and flaps. The first trigger must be immediate. Use active_waypoint commands to fly each published checkpoint. The simulator tracks your declared setpoints at 60 Hz; it never chooses pitch, speed, configuration, flare, or rollout. Landing programs need a distance-triggered exact-pitch flare and an aircraft_phase landing_roll command. Put exact missed-approach commands in go_around.commands to pre-arm an immediate response to an unsafe approach. Replacing commands preserves route progress. Read read_pilot_manual for the aircraft-specific limits.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "plan": {
            "type": "string",
            "enum": [
              "continue_kmdw",
              "return_kstl"
            ]
          },
          "commands": {
            "type": "array",
            "minItems": 2,
            "maxItems": 16,
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "minLength": 1
                },
                "when": {
                  "type": "object",
                  "properties": {
                    "type": {
                      "type": "string",
                      "enum": [
                        "immediate",
                        "airspeed_at_least",
                        "altitude_at_least",
                        "active_waypoint",
                        "distance_to_runway_at_most",
                        "aircraft_phase"
                      ]
                    },
                    "value": {
                      "type": [
                        "number",
                        "string"
                      ]
                    }
                  },
                  "required": [
                    "type"
                  ],
                  "additionalProperties": false
                },
                "lateral": {
                  "type": "object",
                  "properties": {
                    "mode": {
                      "type": "string",
                      "enum": [
                        "heading",
                        "track_fix",
                        "bank"
                      ]
                    },
                    "heading_deg": {
                      "type": "number",
                      "minimum": 0,
                      "maximum": 359.999
                    },
                    "waypoint_id": {
                      "type": "string",
                      "minLength": 1
                    },
                    "bank_deg": {
                      "type": "number",
                      "minimum": -25,
                      "maximum": 25
                    }
                  },
                  "required": [
                    "mode"
                  ],
                  "additionalProperties": false
                },
                "vertical": {
                  "type": "object",
                  "properties": {
                    "mode": {
                      "type": "string",
                      "enum": [
                        "pitch",
                        "altitude"
                      ]
                    },
                    "pitch_deg": {
                      "type": "number",
                      "minimum": -10,
                      "maximum": 15
                    },
                    "altitude_ft": {
                      "type": "number",
                      "minimum": 585,
                      "maximum": 6000
                    }
                  },
                  "required": [
                    "mode"
                  ],
                  "additionalProperties": false
                },
                "energy": {
                  "type": "object",
                  "properties": {
                    "mode": {
                      "type": "string",
                      "enum": [
                        "throttle",
                        "airspeed"
                      ]
                    },
                    "throttle": {
                      "type": "number",
                      "minimum": 0,
                      "maximum": 1
                    },
                    "airspeed_kt": {
                      "type": "number",
                      "minimum": 120,
                      "maximum": 260
                    }
                  },
                  "required": [
                    "mode"
                  ],
                  "additionalProperties": false
                },
                "gear_down": {
                  "type": "boolean"
                },
                "flaps_deg": {
                  "type": "number",
                  "enum": [
                    0,
                    10,
                    20,
                    30
                  ]
                }
              },
              "required": [
                "id",
                "when",
                "lateral",
                "vertical",
                "energy",
                "gear_down",
                "flaps_deg"
              ],
              "additionalProperties": false
            }
          },
          "go_around": {
            "type": "object",
            "properties": {
              "commands": {
                "type": "array",
                "minItems": 2,
                "maxItems": 16,
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "minLength": 1
                    },
                    "when": {
                      "type": "object",
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": [
                            "immediate",
                            "airspeed_at_least",
                            "altitude_at_least",
                            "active_waypoint",
                            "distance_to_runway_at_most",
                            "aircraft_phase"
                          ]
                        },
                        "value": {
                          "type": [
                            "number",
                            "string"
                          ]
                        }
                      },
                      "required": [
                        "type"
                      ],
                      "additionalProperties": false
                    },
                    "lateral": {
                      "type": "object",
                      "properties": {
                        "mode": {
                          "type": "string",
                          "enum": [
                            "heading",
                            "track_fix",
                            "bank"
                          ]
                        },
                        "heading_deg": {
                          "type": "number",
                          "minimum": 0,
                          "maximum": 359.999
                        },
                        "waypoint_id": {
                          "type": "string",
                          "minLength": 1
                        },
                        "bank_deg": {
                          "type": "number",
                          "minimum": -25,
                          "maximum": 25
                        }
                      },
                      "required": [
                        "mode"
                      ],
                      "additionalProperties": false
                    },
                    "vertical": {
                      "type": "object",
                      "properties": {
                        "mode": {
                          "type": "string",
                          "enum": [
                            "pitch",
                            "altitude"
                          ]
                        },
                        "pitch_deg": {
                          "type": "number",
                          "minimum": -10,
                          "maximum": 15
                        },
                        "altitude_ft": {
                          "type": "number",
                          "minimum": 585,
                          "maximum": 6000
                        }
                      },
                      "required": [
                        "mode"
                      ],
                      "additionalProperties": false
                    },
                    "energy": {
                      "type": "object",
                      "properties": {
                        "mode": {
                          "type": "string",
                          "enum": [
                            "throttle",
                            "airspeed"
                          ]
                        },
                        "throttle": {
                          "type": "number",
                          "minimum": 0,
                          "maximum": 1
                        },
                        "airspeed_kt": {
                          "type": "number",
                          "minimum": 120,
                          "maximum": 260
                        }
                      },
                      "required": [
                        "mode"
                      ],
                      "additionalProperties": false
                    },
                    "gear_down": {
                      "type": "boolean"
                    },
                    "flaps_deg": {
                      "type": "number",
                      "enum": [
                        0,
                        10,
                        20,
                        30
                      ]
                    }
                  },
                  "required": [
                    "id",
                    "when",
                    "lateral",
                    "vertical",
                    "energy",
                    "gear_down",
                    "flaps_deg"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "required": [
              "commands"
            ],
            "additionalProperties": false
          },
          "restart_route": {
            "type": "boolean",
            "default": false
          },
          "reason": {
            "type": "string",
            "minLength": 1
          }
        },
        "required": [
          "plan",
          "commands",
          "reason"
        ],
        "additionalProperties": false
      }
    }
    request_diversionAction

    After emergency_detected, choose one route from that event response's decisionContext.routeOptions. This sends the request to simulated ATC but does not change the active route. Wait for atc_clearance_received before acting.

    View tool JSON
    {
      "name": "request_diversion",
      "kind": "act",
      "impl": "imperative",
      "description": "After emergency_detected, choose one route from that event response's decisionContext.routeOptions. This sends the request to simulated ATC but does not change the active route. Wait for atc_clearance_received before acting.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "plan": {
            "type": "string",
            "enum": [
              "continue_kmdw",
              "return_kstl"
            ]
          },
          "reason": {
            "type": "string",
            "minLength": 1
          }
        },
        "required": [
          "plan",
          "reason"
        ],
        "additionalProperties": false
      }
    }
    accept_clearanceAction

    Accept the current ATC clearance by copying its clearance.id and reading back its destination, runway, altitude, and initial heading. The clearance then publishes the complete route and crossing targets. Replace the command program so the aircraft meets each checkpoint.

    View tool JSON
    {
      "name": "accept_clearance",
      "kind": "act",
      "impl": "imperative",
      "description": "Accept the current ATC clearance by copying its clearance.id and reading back its destination, runway, altitude, and initial heading. The clearance then publishes the complete route and crossing targets. Replace the command program so the aircraft meets each checkpoint.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "clearance_id": {
            "type": "string",
            "minLength": 1
          },
          "readback": {
            "type": "string",
            "minLength": 1
          }
        },
        "required": [
          "clearance_id",
          "readback"
        ],
        "additionalProperties": false
      }
    }
    wait_for_flight_eventAction

    Wait without polling for route, comfort, configuration, touchdown, completion, or failure events. The current state is returned with every event. emergency_detected also returns the newly unsealed evidence, fuel, decision time, and route options as decisionContext. Emergency and failure events preempt routine notices. The aircraft keeps executing the active command program for the entire wait.

    View tool JSON
    {
      "name": "wait_for_flight_event",
      "kind": "act",
      "impl": "imperative",
      "description": "Wait without polling for route, comfort, configuration, touchdown, completion, or failure events. The current state is returned with every event. emergency_detected also returns the newly unsealed evidence, fuel, decision time, and route options as decisionContext. Emergency and failure events preempt routine notices. The aircraft keeps executing the active command program for the entire wait.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "after_revision": {
            "type": "number",
            "minimum": 0
          },
          "events": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "emergency_detected",
                "decision_timer_expired",
                "atc_clearance_received",
                "atc_clearance_accepted",
                "plan_updated",
                "route_progress_stalled",
                "checkpoint_reached",
                "comfort_limit_approaching",
                "passenger_safety_update",
                "stall_warning",
                "configuration_required",
                "configuration_confirmed",
                "go_around_required",
                "approach_stable",
                "touchdown",
                "mission_complete",
                "mission_failed"
              ]
            },
            "minItems": 1
          },
          "timeout_ms": {
            "type": "number",
            "minimum": 1000,
            "maximum": 15000,
            "default": 15000
          }
        },
        "additionalProperties": false
      }
    }