← WebMCP Directory

Tool tree

waymark-alpha.netlify.app

Travel & EventsTools verified
Website
Pin checkpoints on a race route, set their cutoffs, export an extended GPX.
Explore capabilities
    load_gpxAction

    Opens a race's GPX in the editor from its text, in place of the open route, and lists its checkpoints. The page cannot fetch links: fetch the file and pass its text. The person can also open one with the Open GPX button. The file's existing waypoints become the checkpoints.

    View tool JSON
    {
      "name": "load_gpx",
      "kind": "act",
      "impl": "imperative",
      "description": "Opens a race's GPX in the editor from its text, in place of the open route, and lists its checkpoints. The page cannot fetch links: fetch the file and pass its text. The person can also open one with the Open GPX button. The file's existing waypoints become the checkpoints.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "gpx": {
            "type": "string",
            "description": "The whole GPX file, as text."
          },
          "file_name": {
            "type": "string",
            "description": "The name to show and to base the export's name on."
          },
          "discard_unsaved": {
            "type": "boolean",
            "description": "Drop the open route's unsaved edits. Only with the person's agreement."
          }
        },
        "required": [
          "gpx"
        ]
      }
    }
    list_checkpointsAnswer

    The checkpoints of the open route, in route order, with the route's length and the race's time zone. Read this first: ids, distances and the clock come from here.

    View tool JSON
    {
      "name": "list_checkpoints",
      "kind": "answer",
      "impl": "imperative",
      "description": "The checkpoints of the open route, in route order, with the route's length and the race's time zone. Read this first: ids, distances and the clock come from here.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      }
    }
    review_planAction

    Checks the checkpoints as a race plan before export: what is wrong or likely forgotten (no Arrival, a cutoff before the previous one, a time barrier without a cutoff), and per checkpoint the estimated passage at the set pace, the cutoff and the margin. Call it when done editing; `ready` says whether to hand over to the person.

    View tool JSON
    {
      "name": "review_plan",
      "kind": "act",
      "impl": "imperative",
      "description": "Checks the checkpoints as a race plan before export: what is wrong or likely forgotten (no Arrival, a cutoff before the previous one, a time barrier without a cutoff), and per checkpoint the estimated passage at the set pace, the cutoff and the margin. Call it when done editing; `ready` says whether to hand over to the person.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      }
    }
    add_checkpointAction

    Adds a checkpoint on the route, snapped to the track, by distance or by coordinates. Coordinates are refused where the route passes more than once: give the distance.

    View tool JSON
    {
      "name": "add_checkpoint",
      "kind": "act",
      "impl": "imperative",
      "description": "Adds a checkpoint on the route, snapped to the track, by distance or by coordinates. Coordinates are refused where the route passes more than once: give the distance.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "distance_m": {
            "type": "number",
            "minimum": 0,
            "description": "Where along the route, in metres from the start. Prefer this to coordinates."
          },
          "latitude": {
            "type": "number",
            "minimum": -90,
            "maximum": 90
          },
          "longitude": {
            "type": "number",
            "minimum": -180,
            "maximum": 180
          },
          "name": {
            "type": "string",
            "description": "The checkpoint's name, as runners will read it."
          },
          "type_name": {
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "Start",
              "TimeBarrier",
              "LifeBase",
              "Arrival",
              null
            ],
            "description": "Start, TimeBarrier (a cutoff), LifeBase (an aid station with a long stop), Arrival, or null for a landmark that is not a checkpoint."
          },
          "cutoff": {
            "type": [
              "string",
              "null"
            ],
            "description": "The cutoff on the race's clock, \"YYYY-MM-DDTHH:mm\" (see timeZone in list_checkpoints), or with a zone (Z, +02:00). null clears it."
          },
          "stop_s": {
            "type": [
              "integer",
              "null"
            ],
            "minimum": 0,
            "description": "The planned stop at this checkpoint, in seconds."
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "description": "A note for the runners."
          }
        },
        "oneOf": [
          {
            "required": [
              "distance_m"
            ]
          },
          {
            "required": [
              "latitude",
              "longitude"
            ]
          }
        ]
      }
    }
    update_checkpointAction

    Changes a checkpoint's fields; a distance or coordinates also move it along the route.

    View tool JSON
    {
      "name": "update_checkpoint",
      "kind": "act",
      "impl": "imperative",
      "description": "Changes a checkpoint's fields; a distance or coordinates also move it along the route.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The checkpoint's id, from list_checkpoints."
          },
          "distance_m": {
            "type": "number",
            "minimum": 0,
            "description": "Where along the route, in metres from the start. Prefer this to coordinates."
          },
          "latitude": {
            "type": "number",
            "minimum": -90,
            "maximum": 90
          },
          "longitude": {
            "type": "number",
            "minimum": -180,
            "maximum": 180
          },
          "name": {
            "type": "string",
            "description": "The checkpoint's name, as runners will read it."
          },
          "type_name": {
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "Start",
              "TimeBarrier",
              "LifeBase",
              "Arrival",
              null
            ],
            "description": "Start, TimeBarrier (a cutoff), LifeBase (an aid station with a long stop), Arrival, or null for a landmark that is not a checkpoint."
          },
          "cutoff": {
            "type": [
              "string",
              "null"
            ],
            "description": "The cutoff on the race's clock, \"YYYY-MM-DDTHH:mm\" (see timeZone in list_checkpoints), or with a zone (Z, +02:00). null clears it."
          },
          "stop_s": {
            "type": [
              "integer",
              "null"
            ],
            "minimum": 0,
            "description": "The planned stop at this checkpoint, in seconds."
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "description": "A note for the runners."
          }
        },
        "required": [
          "id"
        ]
      }
    }
    remove_checkpointAction

    Removes a checkpoint from the route.

    View tool JSON
    {
      "name": "remove_checkpoint",
      "kind": "act",
      "impl": "imperative",
      "description": "Removes a checkpoint from the route.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The checkpoint's id, from list_checkpoints."
          }
        },
        "required": [
          "id"
        ]
      }
    }
    download_gpxAction

    Asks the browser to save the edited GPX (the director's file with the checkpoints as its waypoints) to the person's downloads, named after the original with -edited. The file goes to their disk, not back to you; the browser may ask them first or block it, so ask the person whether it arrived. Call review_plan first: a plan it does not call ready is refused unless force is true, which only the person can ask for.

    View tool JSON
    {
      "name": "download_gpx",
      "kind": "act",
      "impl": "imperative",
      "description": "Asks the browser to save the edited GPX (the director's file with the checkpoints as its waypoints) to the person's downloads, named after the original with -edited. The file goes to their disk, not back to you; the browser may ask them first or block it, so ask the person whether it arrived. Call review_plan first: a plan it does not call ready is refused unless force is true, which only the person can ask for.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "force": {
            "type": "boolean",
            "description": "Download although review_plan reports problems. Only if the person asks."
          }
        }
      }
    }