← WebMCP Directory

Tool tree

maav-mobility-webmcp.vercel.app

Developer ToolsTools verified
Website
A synthetic deterministic mobility resilience workbench with trusted evidence and visible human review.
Explore capabilities
    read_lab_stateAnswer

    Read compact authoritative Stress Lab state without mutation. Reading one current RUN by objectId focuses and starts its visible committed replay; this changes presentation only.

    View tool JSON
    {
      "name": "read_lab_state",
      "kind": "answer",
      "impl": "imperative",
      "description": "Read compact authoritative Stress Lab state without mutation. Reading one current RUN by objectId focuses and starts its visible committed replay; this changes presentation only.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "scope": {
            "type": "string",
            "description": "Optional bounded artifact view.",
            "enum": [
              "SUMMARY",
              "SCENARIO",
              "RUN",
              "COMPARISON",
              "FINDING"
            ]
          },
          "objectId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,63}$",
            "description": "Optional artifact identifier."
          }
        },
        "additionalProperties": false
      },
      "page": "/lab"
    }
    configure_scenarioAction

    Configure seed-07 Scenario A or B. For golden setup use mode REPLACE and exact labels: A "Twelve compact pods"; B "Ten higher-capacity pods"; never add suffixes. A is 12x8; B is 10x10. Shared: 70 kWh, 82% start, 20% reserve, 0.21 kWh/km, 30 s dwell; weights sandton 30, parkmore 15, illovo 20, rosebank 25, melrose-arch 10; wait 180 s, unserved 12, recovery 600 s, standing false; all five objectives. PATCH preserves an existing disruption. Never infer patch values from vague assent; ask first.

    View tool JSON
    {
      "name": "configure_scenario",
      "kind": "act",
      "impl": "imperative",
      "description": "Configure seed-07 Scenario A or B. For golden setup use mode REPLACE and exact labels: A \"Twelve compact pods\"; B \"Ten higher-capacity pods\"; never add suffixes. A is 12x8; B is 10x10. Shared: 70 kWh, 82% start, 20% reserve, 0.21 kWh/km, 30 s dwell; weights sandton 30, parkmore 15, illovo 20, rosebank 25, melrose-arch 10; wait 180 s, unserved 12, recovery 600 s, standing false; all five objectives. PATCH preserves an existing disruption. Never infer patch values from vague assent; ask first.",
      "inputSchema": {
        "oneOf": [
          {
            "type": "object",
            "description": "Replace one scenario with a complete configuration.",
            "properties": {
              "operationId": {
                "type": "string",
                "minLength": 1,
                "maxLength": 64,
                "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,63}$",
                "description": "Retry-safe command identifier."
              },
              "expectedRevision": {
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991,
                "description": "Current application revision."
              },
              "slot": {
                "type": "string",
                "description": "Scenario slot to configure.",
                "enum": [
                  "A",
                  "B"
                ]
              },
              "mode": {
                "const": "REPLACE",
                "description": "Provide every configuration field."
              },
              "configuration": {
                "type": "object",
                "description": "Complete H0 configuration. A is 12 by 8; B is 10 by 10. Use the documented shared assumptions.",
                "properties": {
                  "label": {
                    "type": "string",
                    "description": "For seed-07 use exactly Twelve compact pods for A or Ten higher-capacity pods for B; do not add slot suffixes.",
                    "examples": [
                      "Twelve compact pods",
                      "Ten higher-capacity pods"
                    ],
                    "minLength": 1,
                    "maxLength": 48
                  },
                  "fleet": {
                    "type": "object",
                    "properties": {
                      "vehicleCount": {
                        "type": "integer",
                        "description": "H0 Scenario A uses 12; Scenario B uses 10.",
                        "examples": [
                          12,
                          10
                        ],
                        "minimum": 0,
                        "maximum": 30
                      },
                      "seatsPerVehicle": {
                        "type": "integer",
                        "description": "H0 Scenario A uses 8; Scenario B uses 10.",
                        "examples": [
                          8,
                          10
                        ],
                        "minimum": 1,
                        "maximum": 20
                      },
                      "batteryCapacityKWh": {
                        "type": "number",
                        "description": "H0 value is 70 kWh.",
                        "default": 70,
                        "exclusiveMinimum": 0,
                        "maximum": 1000000
                      },
                      "startingBatteryPercent": {
                        "type": "number",
                        "description": "H0 value is 82 percent.",
                        "default": 82,
                        "minimum": 0,
                        "maximum": 100
                      },
                      "minimumReservePercent": {
                        "type": "number",
                        "description": "H0 value is 20 and must equal the constraint reserve.",
                        "default": 20,
                        "minimum": 0,
                        "maximum": 100
                      },
                      "energyKWhPerKm": {
                        "type": "number",
                        "description": "H0 value is 0.21 kWh per kilometre.",
                        "default": 0.21,
                        "exclusiveMinimum": 0,
                        "maximum": 100
                      },
                      "dwellSeconds": {
                        "type": "integer",
                        "description": "H0 value is 30 seconds; must be a multiple of 30.",
                        "default": 30,
                        "minimum": 0,
                        "maximum": 86400,
                        "multipleOf": 30
                      },
                      "initialZoneWeights": {
                        "type": "object",
                        "description": "All five authored H0 zones are required; positive integer weights must total exactly 100.",
                        "properties": {
                          "sandton": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 1000000,
                            "description": "H0 weight 30.",
                            "default": 30
                          },
                          "parkmore": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 1000000,
                            "description": "H0 weight 15.",
                            "default": 15
                          },
                          "illovo": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 1000000,
                            "description": "H0 weight 20.",
                            "default": 20
                          },
                          "rosebank": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 1000000,
                            "description": "H0 weight 25.",
                            "default": 25
                          },
                          "melrose-arch": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 1000000,
                            "description": "H0 weight 10.",
                            "default": 10
                          }
                        },
                        "required": [
                          "sandton",
                          "parkmore",
                          "illovo",
                          "rosebank",
                          "melrose-arch"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "required": [
                      "vehicleCount",
                      "seatsPerVehicle",
                      "batteryCapacityKWh",
                      "startingBatteryPercent",
                      "minimumReservePercent",
                      "energyKWhPerKm",
                      "dwellSeconds",
                      "initialZoneWeights"
                    ],
                    "additionalProperties": false
                  },
                  "constraints": {
                    "type": "object",
                    "properties": {
                      "maximumWaitSeconds": {
                        "type": "integer",
                        "description": "H0 value is 180 seconds.",
                        "default": 180,
                        "minimum": 0,
                        "maximum": 86400
                      },
                      "maximumUnservedPassengers": {
                        "type": "integer",
                        "description": "H0 value is 12 passengers.",
                        "default": 12,
                        "minimum": 0,
                        "maximum": 1000000
                      },
                      "minimumBatteryReservePercent": {
                        "type": "number",
                        "description": "H0 value is 20 and must equal the fleet reserve.",
                        "default": 20,
                        "minimum": 0,
                        "maximum": 100
                      },
                      "maximumRecoverySeconds": {
                        "type": "integer",
                        "description": "H0 value is 600 seconds.",
                        "default": 600,
                        "minimum": 0,
                        "maximum": 86400
                      },
                      "standingAllowed": {
                        "const": false,
                        "description": "Standing is always prohibited in H0."
                      }
                    },
                    "required": [
                      "maximumWaitSeconds",
                      "maximumUnservedPassengers",
                      "minimumBatteryReservePercent",
                      "maximumRecoverySeconds",
                      "standingAllowed"
                    ],
                    "additionalProperties": false
                  },
                  "objectives": {
                    "type": "array",
                    "description": "H0 uses all five listed objectives for both scenarios.",
                    "default": [
                      "LOWER_WAIT",
                      "LOWER_ENERGY_PER_PASSENGER_KM",
                      "HIGHER_UTILIZATION",
                      "FASTER_RECOVERY",
                      "LOWER_EMPTY_KM"
                    ],
                    "minItems": 1,
                    "maxItems": 5,
                    "uniqueItems": true,
                    "items": {
                      "type": "string",
                      "enum": [
                        "LOWER_WAIT",
                        "LOWER_ENERGY_PER_PASSENGER_KM",
                        "HIGHER_UTILIZATION",
                        "FASTER_RECOVERY",
                        "LOWER_EMPTY_KM"
                      ]
                    }
                  }
                },
                "required": [
                  "label",
                  "fleet",
                  "constraints",
                  "objectives"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "operationId",
              "expectedRevision",
              "slot",
              "mode",
              "configuration"
            ],
            "additionalProperties": false
          },
          {
            "type": "object",
            "description": "Patch at least one supported mutable field on a configured scenario.",
            "properties": {
              "operationId": {
                "type": "string",
                "minLength": 1,
                "maxLength": 64,
                "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,63}$",
                "description": "Retry-safe command identifier."
              },
              "expectedRevision": {
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991,
                "description": "Current application revision."
              },
              "slot": {
                "type": "string",
                "description": "Scenario slot to configure.",
                "enum": [
                  "A",
                  "B"
                ]
              },
              "mode": {
                "const": "PATCH",
                "description": "Provide only fields that should change."
              },
              "configuration": {
                "type": "object",
                "description": "Patch mutable fields only. A supplied zone-weight map must contain all five authored zones.",
                "minProperties": 1,
                "properties": {
                  "label": {
                    "type": "string",
                    "description": "New label text; omit unless the user explicitly requested it.",
                    "minLength": 1,
                    "maxLength": 48
                  },
                  "fleet": {
                    "type": "object",
                    "minProperties": 1,
                    "properties": {
                      "vehicleCount": {
                        "type": "integer",
                        "description": "H0 Scenario A uses 12; Scenario B uses 10.",
                        "examples": [
                          12,
                          10
                        ],
                        "minimum": 0,
                        "maximum": 30
                      },
                      "seatsPerVehicle": {
                        "type": "integer",
                        "description": "H0 Scenario A uses 8; Scenario B uses 10.",
                        "examples": [
                          8,
                          10
                        ],
                        "minimum": 1,
                        "maximum": 20
                      },
                      "batteryCapacityKWh": {
                        "type": "number",
                        "description": "H0 value is 70 kWh.",
                        "default": 70,
                        "exclusiveMinimum": 0,
                        "maximum": 1000000
                      },
                      "startingBatteryPercent": {
                        "type": "number",
                        "description": "H0 value is 82 percent.",
                        "default": 82,
                        "minimum": 0,
                        "maximum": 100
                      },
                      "minimumReservePercent": {
                        "type": "number",
                        "description": "H0 value is 20 and must equal the constraint reserve.",
                        "default": 20,
                        "minimum": 0,
                        "maximum": 100
                      },
                      "energyKWhPerKm": {
                        "type": "number",
                        "description": "H0 value is 0.21 kWh per kilometre.",
                        "default": 0.21,
                        "exclusiveMinimum": 0,
                        "maximum": 100
                      },
                      "dwellSeconds": {
                        "type": "integer",
                        "description": "H0 value is 30 seconds; must be a multiple of 30.",
                        "default": 30,
                        "minimum": 0,
                        "maximum": 86400,
                        "multipleOf": 30
                      },
                      "initialZoneWeights": {
                        "type": "object",
                        "description": "All five authored H0 zones are required; positive integer weights must total exactly 100.",
                        "properties": {
                          "sandton": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 1000000,
                            "description": "H0 weight 30.",
                            "default": 30
                          },
                          "parkmore": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 1000000,
                            "description": "H0 weight 15.",
                            "default": 15
                          },
                          "illovo": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 1000000,
                            "description": "H0 weight 20.",
                            "default": 20
                          },
                          "rosebank": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 1000000,
                            "description": "H0 weight 25.",
                            "default": 25
                          },
                          "melrose-arch": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 1000000,
                            "description": "H0 weight 10.",
                            "default": 10
                          }
                        },
                        "required": [
                          "sandton",
                          "parkmore",
                          "illovo",
                          "rosebank",
                          "melrose-arch"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "additionalProperties": false
                  },
                  "constraints": {
                    "type": "object",
                    "minProperties": 1,
                    "properties": {
                      "maximumWaitSeconds": {
                        "type": "integer",
                        "description": "H0 value is 180 seconds.",
                        "default": 180,
                        "minimum": 0,
                        "maximum": 86400
                      },
                      "maximumUnservedPassengers": {
                        "type": "integer",
                        "description": "H0 value is 12 passengers.",
                        "default": 12,
                        "minimum": 0,
                        "maximum": 1000000
                      },
                      "minimumBatteryReservePercent": {
                        "type": "number",
                        "description": "H0 value is 20 and must equal the fleet reserve.",
                        "default": 20,
                        "minimum": 0,
                        "maximum": 100
                      },
                      "maximumRecoverySeconds": {
                        "type": "integer",
                        "description": "H0 value is 600 seconds.",
                        "default": 600,
                        "minimum": 0,
                        "maximum": 86400
                      },
                      "standingAllowed": {
                        "const": false,
                        "description": "Standing is always prohibited in H0."
                      }
                    },
                    "additionalProperties": false
                  },
                  "objectives": {
                    "type": "array",
                    "description": "H0 uses all five listed objectives for both scenarios.",
                    "default": [
                      "LOWER_WAIT",
                      "LOWER_ENERGY_PER_PASSENGER_KM",
                      "HIGHER_UTILIZATION",
                      "FASTER_RECOVERY",
                      "LOWER_EMPTY_KM"
                    ],
                    "minItems": 1,
                    "maxItems": 5,
                    "uniqueItems": true,
                    "items": {
                      "type": "string",
                      "enum": [
                        "LOWER_WAIT",
                        "LOWER_ENERGY_PER_PASSENGER_KM",
                        "HIGHER_UTILIZATION",
                        "FASTER_RECOVERY",
                        "LOWER_EMPTY_KM"
                      ]
                    }
                  }
                },
                "additionalProperties": false
              }
            },
            "required": [
              "operationId",
              "expectedRevision",
              "slot",
              "mode",
              "configuration"
            ],
            "additionalProperties": false
          }
        ]
      },
      "page": "/lab"
    }
    run_scenarioAction

    Run one current scenario through the deterministic engine and publish only a verified result.

    View tool JSON
    {
      "name": "run_scenario",
      "kind": "act",
      "impl": "imperative",
      "description": "Run one current scenario through the deterministic engine and publish only a verified result.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "operationId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,63}$",
            "description": "Retry-safe command identifier."
          },
          "expectedRevision": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991,
            "description": "Current application revision."
          },
          "scenarioRevisionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,63}$",
            "description": "Current scenario revision ID."
          }
        },
        "required": [
          "operationId",
          "expectedRevision",
          "scenarioRevisionId"
        ],
        "additionalProperties": false
      },
      "page": "/lab"
    }
    inject_disruptionAction

    Mutate one explicit current scenario with the deterministic vehicle-failure rule. Copy the required constant type, target kind, and rule exactly; do not invent alternatives. atSecond is seconds after 08:30; use 720 for 08:42. If the user did not choose A or B, ask before calling. Both requires two sequential calls with distinct operation IDs and the latest revision.

    View tool JSON
    {
      "name": "inject_disruption",
      "kind": "act",
      "impl": "imperative",
      "description": "Mutate one explicit current scenario with the deterministic vehicle-failure rule. Copy the required constant type, target kind, and rule exactly; do not invent alternatives. atSecond is seconds after 08:30; use 720 for 08:42. If the user did not choose A or B, ask before calling. Both requires two sequential calls with distinct operation IDs and the latest revision.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "operationId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,63}$",
            "description": "Retry-safe command identifier."
          },
          "expectedRevision": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991,
            "description": "Current application revision."
          },
          "scenarioRevisionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "pattern": "^scenario-[AB]-r[1-9][0-9]*$",
            "description": "Current Scenario A or B revision ID."
          },
          "disruption": {
            "type": "object",
            "properties": {
              "type": {
                "const": "VEHICLE_FAILURE"
              },
              "target": {
                "type": "object",
                "properties": {
                  "kind": {
                    "const": "DETERMINISTIC_RULE"
                  },
                  "rule": {
                    "const": "HIGHEST_OCCUPANCY_THEN_VEHICLE_ID"
                  }
                },
                "required": [
                  "kind",
                  "rule"
                ],
                "additionalProperties": false
              },
              "atSecond": {
                "type": "integer",
                "description": "Seconds after 08:30; use 720 for 08:42. Must be a 30-second increment.",
                "default": 720,
                "minimum": 0,
                "maximum": 1799,
                "multipleOf": 30
              }
            },
            "required": [
              "type",
              "target",
              "atSecond"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "operationId",
          "expectedRevision",
          "scenarioRevisionId",
          "disruption"
        ],
        "additionalProperties": false
      },
      "page": "/lab"
    }
    compare_scenariosAction

    Create one trusted neutral comparison from explicit current Scenario A and B run artifacts.

    View tool JSON
    {
      "name": "compare_scenarios",
      "kind": "act",
      "impl": "imperative",
      "description": "Create one trusted neutral comparison from explicit current Scenario A and B run artifacts.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "operationId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,63}$",
            "description": "Retry-safe command identifier."
          },
          "expectedRevision": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991,
            "description": "Current application revision."
          },
          "runAId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,63}$",
            "description": "Current Scenario A run ID."
          },
          "runBId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,63}$",
            "description": "Current Scenario B run ID."
          }
        },
        "required": [
          "operationId",
          "expectedRevision",
          "runAId",
          "runBId"
        ],
        "additionalProperties": false
      },
      "page": "/lab"
    }
    stage_findingAction

    Stage deterministic evidence from the current comparison for visible human review; never approve it. Use only an outcome and emphasis explicitly requested by the user; vague assent is not authority to choose either.

    View tool JSON
    {
      "name": "stage_finding",
      "kind": "act",
      "impl": "imperative",
      "description": "Stage deterministic evidence from the current comparison for visible human review; never approve it. Use only an outcome and emphasis explicitly requested by the user; vague assent is not authority to choose either.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "operationId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,63}$",
            "description": "Retry-safe command identifier."
          },
          "expectedRevision": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991,
            "description": "Current application revision."
          },
          "comparisonId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,63}$",
            "description": "Current trusted comparison ID."
          },
          "selectedOutcome": {
            "type": "string",
            "description": "Finding outcome explicitly requested by the user; never infer it from vague assent.",
            "enum": [
              "A",
              "B",
              "TRADE_OFF",
              "INCONCLUSIVE"
            ]
          },
          "emphasis": {
            "type": "string",
            "description": "Finding emphasis explicitly requested by the user.",
            "enum": [
              "BALANCED",
              "SERVICE",
              "ENERGY",
              "RESILIENCE"
            ]
          }
        },
        "required": [
          "operationId",
          "expectedRevision",
          "comparisonId",
          "selectedOutcome",
          "emphasis"
        ],
        "additionalProperties": false
      },
      "page": "/lab"
    }