← WebMCP Directory

Tool tree

next-play-lake.vercel.app

Health & EducationTools verified
Website
NextPlay is a browser-native basketball tactics board for coaches and agents.
Explore capabilities
    get_play_stateAnswer

    Read the current NextPlay basketball play, including its revision, clock, starting positions, actions, coach locks, and validation summary. Call this before adding or adapting actions.

    View tool JSON
    {
      "name": "get_play_state",
      "kind": "answer",
      "impl": "imperative",
      "description": "Read the current NextPlay basketball play, including its revision, clock, starting positions, actions, coach locks, and validation summary. Call this before adding or adapting actions.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "includeActionDetails": {
            "type": "boolean",
            "description": "Include full timing, destination, target, and lock fields."
          }
        },
        "additionalProperties": false
      }
    }
    add_play_actionsAction

    Atomically add 1–12 timed move, dribble, screen, pass, or shot actions to the live play. Use the revision returned by get_play_state. Successful actions appear on the court and timeline.

    View tool JSON
    {
      "name": "add_play_actions",
      "kind": "act",
      "impl": "imperative",
      "description": "Atomically add 1–12 timed move, dribble, screen, pass, or shot actions to the live play. Use the revision returned by get_play_state. Successful actions appear on the court and timeline.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "expectedRevision": {
            "type": "integer",
            "minimum": 0,
            "description": "Revision returned by get_play_state."
          },
          "actions": {
            "type": "array",
            "minItems": 1,
            "maxItems": 12,
            "items": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "move",
                    "dribble",
                    "screen",
                    "pass",
                    "shot"
                  ]
                },
                "actorId": {
                  "type": "string",
                  "enum": [
                    "O1",
                    "O2",
                    "O3",
                    "O4",
                    "O5"
                  ]
                },
                "targetPlayerId": {
                  "type": "string",
                  "enum": [
                    "O1",
                    "O2",
                    "O3",
                    "O4",
                    "O5"
                  ]
                },
                "destinationZone": {
                  "type": "string",
                  "enum": [
                    "inbound_left",
                    "inbound_right",
                    "rim",
                    "left_block",
                    "right_block",
                    "left_short_corner",
                    "right_short_corner",
                    "left_corner",
                    "right_corner",
                    "left_elbow",
                    "right_elbow",
                    "nail",
                    "top",
                    "left_slot",
                    "right_slot",
                    "left_wing",
                    "right_wing",
                    "backcourt_center"
                  ]
                },
                "destinationPosition": {
                  "type": "object",
                  "properties": {
                    "x": {
                      "type": "number",
                      "description": "Normalized court x coordinate."
                    },
                    "y": {
                      "type": "number",
                      "description": "Normalized court y coordinate."
                    }
                  },
                  "required": [
                    "x",
                    "y"
                  ],
                  "additionalProperties": false
                },
                "startSecond": {
                  "type": "number",
                  "minimum": 0
                },
                "durationSecond": {
                  "type": "number",
                  "exclusiveMinimum": 0
                },
                "pathStyle": {
                  "type": "string",
                  "enum": [
                    "straight",
                    "curve_left",
                    "curve_right",
                    "curl",
                    "flare",
                    "backdoor",
                    "slip"
                  ]
                },
                "screenType": {
                  "type": "string",
                  "enum": [
                    "pin_down",
                    "flare",
                    "back_screen",
                    "ball_screen",
                    "cross_screen"
                  ]
                },
                "label": {
                  "type": "string",
                  "maxLength": 60,
                  "description": "A concise label of at most 60 characters."
                }
              },
              "required": [
                "type",
                "actorId",
                "startSecond",
                "durationSecond"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "actions"
        ],
        "additionalProperties": false
      }
    }
    validate_playAction

    Run deterministic execution checks on the current play for references, clock, same-player overlap, inbound pass, shot presence, and possession. Does not change saved play content.

    View tool JSON
    {
      "name": "validate_play",
      "kind": "act",
      "impl": "imperative",
      "description": "Run deterministic execution checks on the current play for references, clock, same-player overlap, inbound pass, shot presence, and possession. Does not change saved play content.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      }
    }
    animate_playAction

    Animate the current structurally valid play on the visible court. Uses saved actions without changing play content.

    View tool JSON
    {
      "name": "animate_play",
      "kind": "act",
      "impl": "imperative",
      "description": "Animate the current structurally valid play on the visible court. Uses saved actions without changing play content.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "speed": {
            "type": "number",
            "enum": [
              0.5,
              1,
              1.5,
              2
            ],
            "description": "Playback speed."
          },
          "loop": {
            "type": "boolean",
            "description": "Repeat the animation until paused."
          }
        },
        "additionalProperties": false
      }
    }
    update_play_actionAction

    Update the timing, destination, or other accepted editable fields of one existing unlocked play action. Read the current play first and pass its current revision. Coach-locked actions cannot be changed.

    View tool JSON
    {
      "name": "update_play_action",
      "kind": "act",
      "impl": "imperative",
      "description": "Update the timing, destination, or other accepted editable fields of one existing unlocked play action. Read the current play first and pass its current revision. Coach-locked actions cannot be changed.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "actionId": {
            "type": "string",
            "description": "ID of the existing action to update."
          },
          "expectedRevision": {
            "type": "integer",
            "minimum": 0,
            "description": "Current revision returned by get_play_state or the prior successful update."
          },
          "patch": {
            "type": "object",
            "properties": {
              "destinationZone": {
                "type": "string",
                "enum": [
                  "inbound_left",
                  "inbound_right",
                  "rim",
                  "left_block",
                  "right_block",
                  "left_short_corner",
                  "right_short_corner",
                  "left_corner",
                  "right_corner",
                  "left_elbow",
                  "right_elbow",
                  "nail",
                  "top",
                  "left_slot",
                  "right_slot",
                  "left_wing",
                  "right_wing",
                  "backcourt_center"
                ]
              },
              "destinationPosition": {
                "type": "object",
                "properties": {
                  "x": {
                    "type": "number",
                    "description": "Normalized court x coordinate."
                  },
                  "y": {
                    "type": "number",
                    "description": "Normalized court y coordinate."
                  }
                },
                "required": [
                  "x",
                  "y"
                ],
                "additionalProperties": false
              },
              "targetPlayerId": {
                "type": "string",
                "enum": [
                  "O1",
                  "O2",
                  "O3",
                  "O4",
                  "O5"
                ]
              },
              "startSecond": {
                "type": "number",
                "minimum": 0
              },
              "durationSecond": {
                "type": "number",
                "exclusiveMinimum": 0
              },
              "pathStyle": {
                "type": "string",
                "enum": [
                  "straight",
                  "curve_left",
                  "curve_right",
                  "curl",
                  "flare",
                  "backdoor",
                  "slip"
                ]
              },
              "screenType": {
                "type": "string",
                "enum": [
                  "pin_down",
                  "flare",
                  "back_screen",
                  "ball_screen",
                  "cross_screen"
                ]
              },
              "label": {
                "type": "string",
                "maxLength": 60
              }
            },
            "additionalProperties": false
          }
        },
        "required": [
          "actionId",
          "patch"
        ],
        "additionalProperties": false
      }
    }