Fantasy Premier League (FPL)

FPL data, points predictions, and transfer, captain and chip advice for any team.

Should I use this

Quality & Safety

B
Description quality
94%
Schema completeness
66%
Naming quality
87%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,419Tokens (tool definitions)
~759 BTypical response size
Moderate attention impact (1.11% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "fpl-mcp": {
      "command": "npx",
      "args": [
        "fpl-mcp-server"
      ]
    }
  }
}

Runnable packages

npmfpl-mcp-server0.2.0stdio

Remote endpoints

https://fpl-mcp-9tiv.onrender.com/mcpstreamable-http

What it can do

Tool inventory

Tools (14)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
⚪gameweek_status

Current and next gameweek, the next deadline, and when the data was last refreshed.

Input Schema

{
  "type": "object",
  "properties": {},
  "title": "gameweek_statusArguments"
}
🟢search_players(name, position, team, max_price, min_price, ...)

Find and rank players; position GKP/DEF/MID/FWD, sort_by any stat (e.g. form, price, ep_next).

Input Schema

{
  "type": "object",
  "properties": {
    "name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Name"
    },
    "position": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Position"
    },
    "team": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Team"
    },
    "max_price": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Max Price"
    },
    "min_price": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Min Price"
    },
    "min_minutes": {
      "default": 0,
      "title": "Min Minutes",
      "type": "integer"
    },
    "available_only": {
      "default": false,
      "title": "Available Only",
      "type": "boolean"
    },
    "sort_by": {
      "default": "total_points",
      "title": "Sort By",
      "type": "string"
    },
    "limit": {
      "default": 20,
      "title": "Limit",
      "type": "integer"
    }
  },
  "title": "search_playersArguments"
}

Output Schema

{
  "type": "object",
  "properties": {
    "result": {
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "title": "Result",
      "type": "array"
    }
  },
  "required": [
    "result"
  ],
  "title": "search_playersOutput"
}
🟢get_player(player)

A player's stats, injury news, last 6 matches and next fixtures. player: name or FPL id.

Input Schema

{
  "type": "object",
  "properties": {
    "player": {
      "title": "Player",
      "type": "string"
    }
  },
  "required": [
    "player"
  ],
  "title": "get_playerArguments"
}
⚪compare_players(players)

Compare 2-6 players side by side, including per-90 output, value and fixture difficulty.

Input Schema

{
  "type": "object",
  "properties": {
    "players": {
      "items": {
        "type": "string"
      },
      "title": "Players",
      "type": "array"
    }
  },
  "required": [
    "players"
  ],
  "title": "compare_playersArguments"
}
🟢get_fixtures(team, gameweek)

Fixtures for a team (next 6 gameweeks), or every fixture in a gameweek (default: next gameweek).

Input Schema

{
  "type": "object",
  "properties": {
    "team": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Team"
    },
    "gameweek": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Gameweek"
    }
  },
  "title": "get_fixturesArguments"
}
⚪team_summary(team)

A club's results so far, goals for/against, clean sheets, upcoming fixtures and top FPL players.

Input Schema

{
  "type": "object",
  "properties": {
    "team": {
      "title": "Team",
      "type": "string"
    }
  },
  "required": [
    "team"
  ],
  "title": "team_summaryArguments"
}
⚪player_season_history(player)

A player's FPL totals for every season loaded (back to 2016-17), linked across seasons.

Input Schema

{
  "type": "object",
  "properties": {
    "player": {
      "title": "Player",
      "type": "string"
    }
  },
  "required": [
    "player"
  ],
  "title": "player_season_historyArguments"
}
🟢get_my_team(team_id, gameweek)

A manager's squad, bank, rank and availability_alerts. team_id is the number in the FPL entry URL.

Input Schema

{
  "type": "object",
  "properties": {
    "team_id": {
      "title": "Team Id",
      "type": "integer"
    },
    "gameweek": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Gameweek"
    }
  },
  "required": [
    "team_id"
  ],
  "title": "get_my_teamArguments"
}
⚪predict_points(player, position, team, max_price, gameweeks, ...)

Expected points for the next 1-5 gameweeks, best first; one player, or filter to rank candidates.

Input Schema

{
  "type": "object",
  "properties": {
    "player": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Player"
    },
    "position": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Position"
    },
    "team": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Team"
    },
    "max_price": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Max Price"
    },
    "gameweeks": {
      "default": 1,
      "title": "Gameweeks",
      "type": "integer"
    },
    "limit": {
      "default": 20,
      "title": "Limit",
      "type": "integer"
    }
  },
  "title": "predict_pointsArguments"
}
⚪model_report

Model accuracy: past-season tests and this season's live results vs a baseline and FPL's own.

Input Schema

{
  "type": "object",
  "properties": {},
  "title": "model_reportArguments"
}
⚪optimal_squad(budget, gameweeks)

Best 15-man squad from scratch (e.g. a Wildcard) for a budget in £m, following FPL rules.

Input Schema

{
  "type": "object",
  "properties": {
    "budget": {
      "default": 100,
      "title": "Budget",
      "type": "number"
    },
    "gameweeks": {
      "default": 3,
      "title": "Gameweeks",
      "type": "integer"
    }
  },
  "title": "optimal_squadArguments"
}
⚪suggest_transfers(team_id, free_transfers, max_transfers, gameweeks)

Best transfers over the next N gameweeks after -4 hits; mention any availability_alerts to the user.

Input Schema

{
  "type": "object",
  "properties": {
    "team_id": {
      "title": "Team Id",
      "type": "integer"
    },
    "free_transfers": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Free Transfers"
    },
    "max_transfers": {
      "default": 2,
      "title": "Max Transfers",
      "type": "integer"
    },
    "gameweeks": {
      "default": 3,
      "title": "Gameweeks",
      "type": "integer"
    }
  },
  "required": [
    "team_id"
  ],
  "title": "suggest_transfersArguments"
}
⚪pick_captain(team_id)

Captain, vice-captain and the top 5 captaincy options in a manager's current squad for next gameweek.

Input Schema

{
  "type": "object",
  "properties": {
    "team_id": {
      "title": "Team Id",
      "type": "integer"
    }
  },
  "required": [
    "team_id"
  ],
  "title": "pick_captainArguments"
}
🟡chip_advice(team_id, gameweeks)

Chips left this half of the season, what each is worth, and whether to play or save it.

Input Schema

{
  "type": "object",
  "properties": {
    "team_id": {
      "title": "Team Id",
      "type": "integer"
    },
    "gameweeks": {
      "default": 5,
      "title": "Gameweeks",
      "type": "integer"
    }
  },
  "required": [
    "team_id"
  ],
  "title": "chip_adviceArguments"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded14 tools