← WebMCP Directory

Tool tree

fieldcraft-coach.gcheema.chatgpt.site

AI & AgentsTools verified
Website
Fieldcraft is a cinematic American football play designer for coaches.
Explore capabilities
    get_playbookAnswer

    List Fieldcraft plays, selected play, revisions, and active coach-review status. Use before reading or changing a play.

    View tool JSON
    {
      "name": "get_playbook",
      "kind": "answer",
      "impl": "imperative",
      "description": "List Fieldcraft plays, selected play, revisions, and active coach-review status. Use before reading or changing a play.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      }
    }
    get_playAnswer

    Read one bounded section of a current play or staged proposal. Use filters and cursor to inspect exact players or assignments.

    View tool JSON
    {
      "name": "get_play",
      "kind": "answer",
      "impl": "imperative",
      "description": "Read one bounded section of a current play or staged proposal. Use filters and cursor to inspect exact players or assignments.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "playId": {
            "type": "string",
            "description": "Play ID from get_playbook."
          },
          "section": {
            "enum": [
              "summary",
              "players",
              "assignments"
            ]
          },
          "source": {
            "enum": [
              "current",
              "proposal"
            ],
            "default": "current"
          },
          "team": {
            "enum": [
              "offense",
              "defense"
            ]
          },
          "playerIds": {
            "type": "array",
            "maxItems": 22,
            "items": {
              "type": "string"
            }
          },
          "cursor": {
            "type": "integer",
            "minimum": 0,
            "default": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 4,
            "default": 3
          }
        },
        "required": [
          "playId",
          "section"
        ],
        "additionalProperties": false
      }
    }
    analyze_playAction

    Run deterministic spatial and timing checks for run, pass, protection, or all concepts. Results are risks, not outcome predictions.

    View tool JSON
    {
      "name": "analyze_play",
      "kind": "act",
      "impl": "imperative",
      "description": "Run deterministic spatial and timing checks for run, pass, protection, or all concepts. Results are risks, not outcome predictions.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "playId": {
            "type": "string",
            "description": "Play ID from get_playbook."
          },
          "focus": {
            "enum": [
              "all",
              "run",
              "pass",
              "protection"
            ],
            "default": "all"
          },
          "source": {
            "enum": [
              "current",
              "proposal"
            ],
            "default": "current"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 8,
            "default": 8
          }
        },
        "required": [
          "playId"
        ],
        "additionalProperties": false
      }
    }
    focus_findingAction

    Recompute one finding, scrub to its worst moment, select the involved players, and show a temporary field overlay. Does not edit the play.

    View tool JSON
    {
      "name": "focus_finding",
      "kind": "act",
      "impl": "imperative",
      "description": "Recompute one finding, scrub to its worst moment, select the involved players, and show a temporary field overlay. Does not edit the play.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "playId": {
            "type": "string"
          },
          "findingId": {
            "type": "string"
          }
        },
        "required": [
          "playId",
          "findingId"
        ],
        "additionalProperties": false
      }
    }
    stage_play_changesAction

    Validate up to 12 edits and open a reversible Before/After coach review. This never changes the saved playbook; variations preview a renamed duplicate.

    View tool JSON
    {
      "name": "stage_play_changes",
      "kind": "act",
      "impl": "imperative",
      "description": "Validate up to 12 edits and open a reversible Before/After coach review. This never changes the saved playbook; variations preview a renamed duplicate.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "basePlayId": {
            "type": "string",
            "description": "Exact base play ID."
          },
          "baseUpdatedAt": {
            "type": "string",
            "description": "Exact revision from get_playbook or get_play."
          },
          "mode": {
            "enum": [
              "edit",
              "variation"
            ]
          },
          "name": {
            "type": "string",
            "maxLength": 60,
            "description": "Required new name for variation mode."
          },
          "rationale": {
            "type": "string",
            "minLength": 1,
            "maxLength": 500
          },
          "targetFindingId": {
            "type": "string",
            "description": "Optional finding this proposal repairs."
          },
          "changes": {
            "type": "array",
            "minItems": 1,
            "maxItems": 12,
            "items": {
              "oneOf": [
                {
                  "type": "object",
                  "properties": {
                    "type": {
                      "const": "move_player"
                    },
                    "playerId": {
                      "type": "string",
                      "description": "Exact player ID from get_play players."
                    },
                    "to": {
                      "type": "object",
                      "properties": {
                        "x": {
                          "type": "number",
                          "minimum": 0,
                          "maximum": 40,
                          "description": "Yards downfield in the 40-yard window."
                        },
                        "y": {
                          "type": "number",
                          "minimum": 0,
                          "maximum": 53.3,
                          "description": "Yards across the 53.3-yard field."
                        }
                      },
                      "required": [
                        "x",
                        "y"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "type",
                    "playerId",
                    "to"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "properties": {
                    "type": {
                      "const": "apply_preset"
                    },
                    "playerId": {
                      "type": "string",
                      "description": "Exact player ID from get_play players."
                    },
                    "kind": {
                      "enum": [
                        "route",
                        "run",
                        "block",
                        "motion",
                        "rush",
                        "drop",
                        "blitz",
                        "man"
                      ]
                    },
                    "preset": {
                      "enum": [
                        "go",
                        "slant",
                        "post",
                        "corner",
                        "out",
                        "curl",
                        "flat",
                        "drag",
                        "wheel",
                        "block",
                        "rush",
                        "drop"
                      ],
                      "description": "Fieldcraft route or movement preset."
                    },
                    "startTime": {
                      "type": "number",
                      "minimum": 0
                    },
                    "duration": {
                      "type": "number",
                      "minimum": 0.05
                    },
                    "depth": {
                      "type": "number",
                      "minimum": -20,
                      "maximum": 25
                    },
                    "targetPlayerId": {
                      "type": "string"
                    },
                    "technique": {
                      "type": "string",
                      "maxLength": 40
                    },
                    "color": {
                      "enum": [
                        "orange",
                        "blue",
                        "yellow",
                        "coral",
                        "bone",
                        "olive"
                      ]
                    }
                  },
                  "required": [
                    "type",
                    "playerId",
                    "preset",
                    "kind"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "properties": {
                    "type": {
                      "const": "set_assignment"
                    },
                    "playerId": {
                      "type": "string",
                      "description": "Exact player ID from get_play players."
                    },
                    "kind": {
                      "enum": [
                        "route",
                        "run",
                        "block",
                        "motion",
                        "rush",
                        "drop",
                        "blitz",
                        "man"
                      ]
                    },
                    "segments": {
                      "type": "array",
                      "minItems": 1,
                      "maxItems": 6,
                      "items": {
                        "oneOf": [
                          {
                            "type": "object",
                            "properties": {
                              "type": {
                                "const": "line"
                              },
                              "to": {
                                "type": "object",
                                "properties": {
                                  "x": {
                                    "type": "number",
                                    "minimum": 0,
                                    "maximum": 40,
                                    "description": "Yards downfield in the 40-yard window."
                                  },
                                  "y": {
                                    "type": "number",
                                    "minimum": 0,
                                    "maximum": 53.3,
                                    "description": "Yards across the 53.3-yard field."
                                  }
                                },
                                "required": [
                                  "x",
                                  "y"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "required": [
                              "type",
                              "to"
                            ],
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "properties": {
                              "type": {
                                "const": "curve"
                              },
                              "control": {
                                "type": "object",
                                "properties": {
                                  "x": {
                                    "type": "number",
                                    "minimum": 0,
                                    "maximum": 40,
                                    "description": "Yards downfield in the 40-yard window."
                                  },
                                  "y": {
                                    "type": "number",
                                    "minimum": 0,
                                    "maximum": 53.3,
                                    "description": "Yards across the 53.3-yard field."
                                  }
                                },
                                "required": [
                                  "x",
                                  "y"
                                ],
                                "additionalProperties": false
                              },
                              "to": {
                                "type": "object",
                                "properties": {
                                  "x": {
                                    "type": "number",
                                    "minimum": 0,
                                    "maximum": 40,
                                    "description": "Yards downfield in the 40-yard window."
                                  },
                                  "y": {
                                    "type": "number",
                                    "minimum": 0,
                                    "maximum": 53.3,
                                    "description": "Yards across the 53.3-yard field."
                                  }
                                },
                                "required": [
                                  "x",
                                  "y"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "required": [
                              "type",
                              "control",
                              "to"
                            ],
                            "additionalProperties": false
                          }
                        ]
                      }
                    },
                    "color": {
                      "enum": [
                        "orange",
                        "blue",
                        "yellow",
                        "coral",
                        "bone",
                        "olive"
                      ]
                    },
                    "startTime": {
                      "type": "number",
                      "minimum": 0
                    },
                    "duration": {
                      "type": "number",
                      "minimum": 0.05
                    },
                    "targetPlayerId": {
                      "type": "string"
                    },
                    "preset": {
                      "type": "string",
                      "maxLength": 30
                    },
                    "technique": {
                      "type": "string",
                      "maxLength": 40
                    }
                  },
                  "required": [
                    "type",
                    "playerId",
                    "kind",
                    "segments",
                    "color",
                    "startTime",
                    "duration"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "properties": {
                    "type": {
                      "const": "retime_assignment"
                    },
                    "playerId": {
                      "type": "string",
                      "description": "Exact player ID from get_play players."
                    },
                    "startTime": {
                      "type": "number",
                      "minimum": 0
                    },
                    "duration": {
                      "type": "number",
                      "minimum": 0.05
                    }
                  },
                  "required": [
                    "type",
                    "playerId"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "properties": {
                    "type": {
                      "const": "remove_assignment"
                    },
                    "playerId": {
                      "type": "string",
                      "description": "Exact player ID from get_play players."
                    }
                  },
                  "required": [
                    "type",
                    "playerId"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "properties": {
                    "type": {
                      "const": "rename_play"
                    },
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 60
                    }
                  },
                  "required": [
                    "type",
                    "name"
                  ],
                  "additionalProperties": false
                }
              ]
            }
          }
        },
        "required": [
          "basePlayId",
          "baseUpdatedAt",
          "mode",
          "rationale",
          "changes"
        ],
        "additionalProperties": false
      }
    }
    commit_play_changesAction

    Apply the active reviewed proposal atomically. Invoke only after the coach explicitly confirms the visible Before/After proposal; never infer confirmation.

    View tool JSON
    {
      "name": "commit_play_changes",
      "kind": "act",
      "impl": "imperative",
      "description": "Apply the active reviewed proposal atomically. Invoke only after the coach explicitly confirms the visible Before/After proposal; never infer confirmation.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "proposalId": {
            "type": "string",
            "description": "Active proposal ID returned by stage_play_changes."
          }
        },
        "required": [
          "proposalId"
        ],
        "additionalProperties": false
      }
    }
    discard_play_changesAction

    Discard the active staged coach review without changing the saved playbook.

    View tool JSON
    {
      "name": "discard_play_changes",
      "kind": "act",
      "impl": "imperative",
      "description": "Discard the active staged coach review without changing the saved playbook.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "proposalId": {
            "type": "string",
            "description": "Active proposal ID returned by stage_play_changes."
          }
        },
        "required": [
          "proposalId"
        ],
        "additionalProperties": false
      }
    }