FPL Copilot
Fantasy Premier League expected points, team ratings, captaincy and mini-league win chances.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
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-copilot": {
"url": "https://api.fplcopilot.com/mcp"
}
}
}Remote endpoints
https://api.fplcopilot.com/mcpstreamable-httpWhat it can do
Tool inventory
Tools (21)
🟢rate_my_team(team_id, players, captain)
Use this when a Fantasy Premier League (FPL, fantasy football) manager wants their team rated or reviewed, or shares their team ID or FPL link without saying more. Scores the squad 0-100 against the best possible squad over the next 5 gameweeks and lists the biggest fixes, naming the players; pass their team ID or FPL link, or the player names read from a screenshot of their team.
Input Schema
{
"type": "object",
"properties": {
"team_id": {
"anyOf": [
{
"type": "integer"
},
{
"maxLength": 200,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The manager's FPL team ID (entry ID), or any FPL link containing /entry/<id>/. Leave empty if unknown.",
"title": "Team Id"
},
"players": {
"anyOf": [
{
"items": {
"maxLength": 60,
"minLength": 1,
"type": "string"
},
"maxItems": 20,
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "11-15 FPL player names (e.g. read from a screenshot of their team), used when there is no team ID. Add the club to disambiguate, e.g. 'Palmer CHE'.",
"title": "Players"
},
"captain": {
"anyOf": [
{
"maxLength": 60,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Captain's name, if known",
"title": "Captain"
}
},
"title": "rate_my_teamArguments"
}🟢get_my_team(team_id, players)
Use this for start, bench and captain questions about an FPL manager's own squad: each player's FPL Copilot expected points for the next gameweek with fixtures, and the best XI and captain. It shows the squad and does not score it. Needs their team ID or FPL link, or player names from a screenshot.
Input Schema
{
"type": "object",
"properties": {
"team_id": {
"anyOf": [
{
"type": "integer"
},
{
"maxLength": 200,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The manager's FPL team ID (entry ID), or any FPL link containing /entry/<id>/. Leave empty if unknown.",
"title": "Team Id"
},
"players": {
"anyOf": [
{
"items": {
"maxLength": 60,
"minLength": 1,
"type": "string"
},
"maxItems": 20,
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "11-15 FPL player names (e.g. read from a screenshot of their team), used when there is no team ID. Add the club to disambiguate, e.g. 'Palmer CHE'.",
"title": "Players"
}
},
"title": "get_my_teamArguments"
}🟢get_captain_picks(team_id, scope)
Use this when someone asks who to captain (or Triple Captain) in Fantasy Premier League (fantasy football) this gameweek. Call it even without their team: it then lists the best captain options in the game. With a team ID (or their team from an earlier chat) it ranks their own players; scope "all" ranks the game.
Input Schema
{
"type": "object",
"properties": {
"team_id": {
"anyOf": [
{
"type": "integer"
},
{
"maxLength": 200,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The manager's FPL team ID (entry ID), or any FPL link containing /entry/<id>/. Leave empty if unknown.",
"title": "Team Id"
},
"scope": {
"anyOf": [
{
"maxLength": 24,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "all: the best captains in the game, for general asks; squad: from the user's own team",
"title": "Scope"
}
},
"title": "get_captain_picksArguments"
}🟢find_players(position, max_price, min_price, team, max_ownership, ...)
Use this to find the best Fantasy Premier League (fantasy football) players to pick or buy, by FPL Copilot expected points (xPts, also called predicted or projected points), filtered by position, price, club or ownership, and sorted by points, value per £m, or as low-owned differentials. Classic FPL, not FPL Draft.
Input Schema
{
"type": "object",
"properties": {
"position": {
"anyOf": [
{
"maxLength": 24,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Position: GK, DEF, MID or FWD",
"title": "Position"
},
"max_price": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Max price in £m, e.g. 8.0",
"title": "Max Price"
},
"min_price": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Min price in £m",
"title": "Min Price"
},
"team": {
"anyOf": [
{
"maxLength": 30,
"minLength": 1,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Club, e.g. ARS or Arsenal",
"title": "Team"
},
"max_ownership": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Max ownership %, e.g. 10 for differentials",
"title": "Max Ownership"
},
"sort": {
"default": "xpts",
"description": "xpts (default), value (xPts per £m) or differential (low-owned)",
"maxLength": 24,
"title": "Sort",
"type": "string"
},
"horizon": {
"default": 5,
"description": "How many gameweeks ahead to count (1-8).",
"title": "Horizon",
"type": "integer"
},
"limit": {
"default": 10,
"description": "How many players (1-15)",
"title": "Limit",
"type": "integer"
}
},
"title": "find_playersArguments"
}🟢get_player(names, horizon)
Use this for one to five FPL players, e.g. whether to buy, sell or start them: expected points for each coming gameweek with fixtures, injury news, price and price-change progress, ownership, xG/xA and his chance of being the main penalty taker.
Input Schema
{
"type": "object",
"properties": {
"names": {
"description": "1-5 player names, e.g. ['Haaland']",
"items": {
"maxLength": 60,
"minLength": 1,
"type": "string"
},
"maxItems": 15,
"title": "Names",
"type": "array"
},
"horizon": {
"default": 5,
"description": "How many gameweeks ahead to count (1-8).",
"title": "Horizon",
"type": "integer"
}
},
"required": [
"names"
],
"title": "get_playerArguments"
}🟢compare_players(names, horizon)
Use this when choosing between two or three FPL players (e.g. 'Saka or Palmer?', one transfer for another, or whether a -4 hit is worth it): expected points over the coming gameweeks, form, price and ownership side by side.
Input Schema
{
"type": "object",
"properties": {
"names": {
"description": "2-3 player names",
"items": {
"maxLength": 60,
"minLength": 1,
"type": "string"
},
"maxItems": 10,
"title": "Names",
"type": "array"
},
"horizon": {
"default": 5,
"description": "How many gameweeks ahead to count (1-8).",
"title": "Horizon",
"type": "integer"
}
},
"required": [
"names"
],
"title": "compare_playersArguments"
}🟢get_fixture_ticker(teams, gw_from, gw_to)
Use this for Fantasy Premier League fixture difficulty (FDR) and which teams have the easiest or hardest fixtures: each club's coming fixtures and their average difficulty, easiest runs first.
Input Schema
{
"type": "object",
"properties": {
"teams": {
"anyOf": [
{
"items": {
"maxLength": 30,
"minLength": 1,
"type": "string"
},
"maxItems": 40,
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Clubs to include (default: all 20)",
"title": "Teams"
},
"gw_from": {
"anyOf": [
{
"type": "integer"
},
{
"maxLength": 12,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "First gameweek. Leave empty for the next gameweek; set only if the user names one",
"title": "Gw From"
},
"gw_to": {
"anyOf": [
{
"type": "integer"
},
{
"maxLength": 12,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Last gameweek. Leave empty for a 6-gameweek view (max 8 ahead)",
"title": "Gw To"
}
},
"title": "get_fixture_tickerArguments"
}🟢get_price_changes(view, names)
Use this for FPL price rises and falls: players likely to change price tonight, or changes already made this gameweek.
Input Schema
{
"type": "object",
"properties": {
"view": {
"default": "tonight",
"description": "tonight (default): likely changes tonight; recent: changes made this gameweek",
"maxLength": 24,
"title": "View",
"type": "string"
},
"names": {
"anyOf": [
{
"items": {
"maxLength": 60,
"minLength": 1,
"type": "string"
},
"maxItems": 20,
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Specific players to check",
"title": "Names"
}
},
"title": "get_price_changesArguments"
}🟢get_penalty_takers(teams)
Use this to find who takes penalties, corners and free kicks for Premier League clubs in FPL, with each penalty taker's chance of being his club's main taker.
Input Schema
{
"type": "object",
"properties": {
"teams": {
"anyOf": [
{
"items": {
"maxLength": 30,
"minLength": 1,
"type": "string"
},
"maxItems": 40,
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Clubs, e.g. ['BHA'] (default: all 20)",
"title": "Teams"
}
},
"title": "get_penalty_takersArguments"
}🟢get_best_chip_squad(chip, gw)
Use this when someone wants the best FPL Wildcard or Free Hit squad for any gameweek, or the best FPL team right now, built by FPL Copilot's optimiser within £100m and FPL squad rules. Not for a Bench Boost team or when to play a chip: the result links FPL Copilot's Chip Strategies for that.
Input Schema
{
"type": "object",
"properties": {
"chip": {
"default": "wildcard",
"description": "wildcard or free_hit (bench_boost and triple_captain, played on the manager's own team, return where to plan them)",
"maxLength": 24,
"title": "Chip",
"type": "string"
},
"gw": {
"anyOf": [
{
"type": "integer"
},
{
"maxLength": 12,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Gameweek (default: next)",
"title": "Gw"
}
},
"title": "get_best_chip_squadArguments"
}🟢get_mini_league(team_id, league_id)
Use this for an FPL mini-league or a manager's rivals in it: standings, the gap to the leader, and rivals' captains and differential picks. Without a league ID it lists the manager's leagues to choose from.
Input Schema
{
"type": "object",
"properties": {
"team_id": {
"anyOf": [
{
"type": "integer"
},
{
"maxLength": 200,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The manager's FPL team ID (entry ID), or any FPL link containing /entry/<id>/. Leave empty if unknown.",
"title": "Team Id"
},
"league_id": {
"anyOf": [
{
"type": "integer"
},
{
"maxLength": 200,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Mini-league ID, or the FPL league standings link. Leave empty to list the manager's leagues.",
"title": "League Id"
}
},
"title": "get_mini_leagueArguments"
}🟢get_mini_league_odds(league_id, team_id)
Use this when an FPL manager asks their chances (or odds) of winning their mini-league: each manager's win and top-3 probability from 5,000 simulations of the rest of the season.
Input Schema
{
"type": "object",
"properties": {
"league_id": {
"anyOf": [
{
"type": "integer"
},
{
"maxLength": 200,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Mini-league ID, or the FPL league standings link. Leave empty to list the manager's leagues.",
"title": "League Id"
},
"team_id": {
"anyOf": [
{
"type": "integer"
},
{
"maxLength": 200,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The manager's FPL team ID (entry ID), or any FPL link containing /entry/<id>/. Leave empty if unknown.",
"title": "Team Id"
}
},
"title": "get_mini_league_oddsArguments"
}🟢get_gameweek_review(team_id, gw)
Use this to review an FPL manager's gameweek: points vs the average, captain result, bench points and transfers, plus how lucky their season has been against FPL Copilot's expected points.
Input Schema
{
"type": "object",
"properties": {
"team_id": {
"anyOf": [
{
"type": "integer"
},
{
"maxLength": 200,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The manager's FPL team ID (entry ID), or any FPL link containing /entry/<id>/. Leave empty if unknown.",
"title": "Team Id"
},
"gw": {
"anyOf": [
{
"type": "integer"
},
{
"maxLength": 12,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Gameweek (default: the last finished)",
"title": "Gw"
}
},
"title": "get_gameweek_reviewArguments"
}🟢get_deadline
Use this for the next Fantasy Premier League deadline time and gameweek.
Input Schema
{
"type": "object",
"properties": {},
"title": "get_deadlineArguments"
}🟢get_predicted_lineups(teams)
Use this for predicted Premier League starting XIs and team news for the next FPL gameweek (who starts, who is injured or rotated), from FPL Copilot's expected minutes.
Input Schema
{
"type": "object",
"properties": {
"teams": {
"anyOf": [
{
"items": {
"maxLength": 30,
"minLength": 1,
"type": "string"
},
"maxItems": 40,
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Clubs, e.g. ['ARS', 'Chelsea'] (default: all 20)",
"title": "Teams"
}
},
"title": "get_predicted_lineupsArguments"
}🟢search_guides(query, gw)
Use this for Fantasy Premier League rules and how-to questions (scoring, free transfers, chips and when to play them, DefCon, FDR) and FPL Copilot's guides: gameweek tips, chip guides, penalty takers, fixtures. FPL's rules change each season (free transfers now roll over up to 5), so use these, not memory.
Input Schema
{
"type": "object",
"properties": {
"query": {
"anyOf": [
{
"maxLength": 100,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "What to look for, e.g. 'bench boost' or 'GW7 tips'",
"title": "Query"
},
"gw": {
"anyOf": [
{
"type": "integer"
},
{
"maxLength": 12,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Prefer guides for this gameweek",
"title": "Gw"
}
},
"title": "search_guidesArguments"
}🟢read_guide(slug)
Use this to read one FPL Copilot Fantasy Premier League guide in full, by its slug or its fplcopilot.com/blog/ link.
Input Schema
{
"type": "object",
"properties": {
"slug": {
"description": "The guide's slug, or its fplcopilot.com/blog/ link",
"maxLength": 200,
"title": "Slug",
"type": "string"
}
},
"required": [
"slug"
],
"title": "read_guideArguments"
}🟡create_share_link(component, data, token)
Creates a public fplcopilot.com page for an FPL Copilot card so it can be shared.
Input Schema
{
"type": "object",
"properties": {
"component": {
"description": "The card's component, e.g. rating_card",
"maxLength": 40,
"title": "Component",
"type": "string"
},
"data": {
"additionalProperties": true,
"description": "The card's data object",
"title": "Data",
"type": "object"
},
"token": {
"anyOf": [
{
"maxLength": 64,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The card's share token (from the result's _meta)",
"title": "Token"
}
},
"required": [
"component",
"data"
],
"title": "create_share_linkArguments"
}🟢get_player_breakdown(player_id)
The FPL Copilot player card's data for one player (for the card's own view).
Input Schema
{
"type": "object",
"properties": {
"player_id": {
"description": "The FPL player (element) id",
"maximum": 5000,
"minimum": 1,
"title": "Player Id",
"type": "integer"
}
},
"required": [
"player_id"
],
"title": "get_player_breakdownArguments"
}🟢get_player_breakdowns(player_ids)
The FPL Copilot player cards' data for the players on a card (for the card's own view).
Input Schema
{
"type": "object",
"properties": {
"player_ids": {
"description": "FPL player (element) ids",
"items": {
"maximum": 5000,
"minimum": 1,
"type": "integer"
},
"maxItems": 45,
"minItems": 1,
"title": "Player Ids",
"type": "array"
}
},
"required": [
"player_ids"
],
"title": "get_player_breakdownsArguments"
}🟢get_manager_squad(entry_id, gw)
An FPL mini-league rival's squad for the league card's own view.
Input Schema
{
"type": "object",
"properties": {
"entry_id": {
"description": "The rival's FPL team (entry) id",
"maximum": 99999999,
"minimum": 1,
"title": "Entry Id",
"type": "integer"
},
"gw": {
"anyOf": [
{
"maximum": 38,
"minimum": 1,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "A played gameweek (default: the last)",
"title": "Gw"
}
},
"required": [
"entry_id"
],
"title": "get_manager_squadArguments"
}Community
Evidence