← WebMCP Directory

Tool tree

gaffer-psi.vercel.app

Media & PersonalTools verified
Website
Gaffer is a Fantasy Premier League planning board where a human and an AI agent build the squad together, over WebMCP. The agent reads the draft squad you made by hand, and the registered tools are…
Explore capabilities
    get_squad_stateAnswer

    Read the user's Fantasy Premier League squad exactly as it stands on screen right now, including unsaved changes they have just made by hand and have not confirmed anywhere. Returns all 15 players with club, position, price in millions, form, availability and their next three fixtures with difficulty; who is in the starting XI versus on the bench; the captain and vice-captain; money left in the bank; free transfers remaining; chips already used and still available; every transfer pending in this session with its points cost; and any rule violations or injury warnings. Call this before proposing anything, and again whenever the user says they have changed something themselves.

    View tool JSON
    {
      "name": "get_squad_state",
      "kind": "answer",
      "impl": "imperative",
      "description": "Read the user's Fantasy Premier League squad exactly as it stands on screen right now, including unsaved changes they have just made by hand and have not confirmed anywhere. Returns all 15 players with club, position, price in millions, form, availability and their next three fixtures with difficulty; who is in the starting XI versus on the bench; the captain and vice-captain; money left in the bank; free transfers remaining; chips already used and still available; every transfer pending in this session with its points cost; and any rule violations or injury warnings. Call this before proposing anything, and again whenever the user says they have changed something themselves.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      }
    }
    search_playersAnswer

    Search the Premier League player pool for transfer targets, sorted by recent form. All prices are in millions of pounds. If you omit max_price it defaults to what the user can actually afford for the player they are replacing, so results are always buyable. Unavailable players (injured, suspended, transferred out of the league) are excluded unless you ask for them. Returns name, club, position, price, form, total points, ownership and the next three fixtures with difficulty rated 1 (easiest) to 5 (hardest).

    View tool JSON
    {
      "name": "search_players",
      "kind": "answer",
      "impl": "imperative",
      "description": "Search the Premier League player pool for transfer targets, sorted by recent form. All prices are in millions of pounds. If you omit max_price it defaults to what the user can actually afford for the player they are replacing, so results are always buyable. Unavailable players (injured, suspended, transferred out of the league) are excluded unless you ask for them. Returns name, club, position, price, form, total points, ownership and the next three fixtures with difficulty rated 1 (easiest) to 5 (hardest).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "position": {
            "type": "string",
            "enum": [
              "GK",
              "DEF",
              "MID",
              "FWD"
            ],
            "description": "Restrict to one position."
          },
          "max_price": {
            "type": "number",
            "description": "Maximum price in millions, e.g. 8.5."
          },
          "min_form": {
            "type": "number",
            "description": "Minimum form rating, e.g. 5."
          },
          "team": {
            "type": "string",
            "description": "Three-letter club code, e.g. ARS, MCI, LIV."
          },
          "replacing_player_id": {
            "type": "number",
            "description": "Id of the squad player being replaced. Sets the budget to that player's price plus the bank, and flags any result that would break the three-per-club limit."
          },
          "exclude_unavailable": {
            "type": "boolean",
            "description": "Defaults to true."
          },
          "limit": {
            "type": "number",
            "description": "Maximum results, default 10."
          }
        }
      }
    }
    load_manager_teamAction

    Load a real Fantasy Premier League squad onto the board from that manager's team id, the number in the URL when they view their team on the FPL site. This fetches the squad they have *saved*: their fifteen players, bank, captain and vice-captain. It replaces whatever is currently on the board, discarding any unsaved planning, so confirm with the user before calling it if they have already made changes. Ask them for their team id rather than guessing one.

    View tool JSON
    {
      "name": "load_manager_team",
      "kind": "act",
      "impl": "imperative",
      "description": "Load a real Fantasy Premier League squad onto the board from that manager's team id, the number in the URL when they view their team on the FPL site. This fetches the squad they have *saved*: their fifteen players, bank, captain and vice-captain. It replaces whatever is currently on the board, discarding any unsaved planning, so confirm with the user before calling it if they have already made changes. Ask them for their team id rather than guessing one.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "entry_id": {
            "type": "number",
            "description": "The manager's FPL team id, e.g. 6731094."
          }
        },
        "required": [
          "entry_id"
        ]
      }
    }
    set_planning_gameweekAction

    Change which gameweek the planning board is set to, between 1 and 38. Use this when the user wants to plan for a different week than the one currently shown.

    View tool JSON
    {
      "name": "set_planning_gameweek",
      "kind": "act",
      "impl": "declarative",
      "description": "Change which gameweek the planning board is set to, between 1 and 38. Use this when the user wants to plan for a different week than the one currently shown.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "gameweek": {
            "type": "number"
          }
        }
      }
    }