Skip to main content
Glama
nguyenanhducs

Fantasy Premier League MCP Server

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
fpl_get_fixtures_for_gameweekA

Get all Premier League fixtures for a specific gameweek.

Returns complete fixture list with team names, kickoff times, scores (if finished), and difficulty ratings for both teams. Useful for planning transfers based on fixture difficulty and understanding upcoming matches.

Args: params (GetFixturesForGameweekInput): Validated input parameters containing: - gameweek (int): Gameweek number between 1-38 - detailed (bool): Include detailed stats (default: False) - response_format (ResponseFormat): 'markdown' or 'json' (default: markdown)

Returns: str: Complete fixture list with times and difficulty ratings

Examples: - View GW10 fixtures: gameweek=10 - Check upcoming matches: gameweek=15 - Get as JSON: gameweek=20, response_format="json"

Error Handling: - Returns error if gameweek number invalid (must be 1-38) - Returns error if no fixtures found for gameweek - Returns formatted error message if data unavailable

fpl_find_fixture_opportunitiesA

Find teams with the easiest upcoming fixtures and their best assets.

Analyzes fixture difficulty for all 20 teams over the next N gameweeks. Identifies teams with the most favorable schedule and recommends their top-performing players (filtered by position if requested).

Args: params (FindFixtureOpportunitiesInput): Validated input parameters containing: - num_gameweeks (int): Number of gameweeks to analyze (3-10) - max_teams (int): Number of teams to recommend (1-5) - positions (list[str] | None): Optional position filter

Returns: str: Analysis of best teams to target and their key players

Examples: - Target next 5 GWs: num_gameweeks=5 - Find best attackers: positions=['Midfielder', 'Forward']

Error Handling: - Returns error if data unavailable - Returns formatted error message if API fails

fpl_get_current_gameweekA

Get the current or upcoming Fantasy Premier League gameweek information.

Returns the gameweek that is currently active (before deadline) or the next gameweek (after deadline). Essential for determining which gameweek to plan transfers for and understanding the current state of the season.

Args: params (GetCurrentGameweekInput): Validated input parameters containing: - response_format (ResponseFormat): 'markdown' or 'json' (default: markdown)

Returns: str: Current/upcoming gameweek details with deadline and status

Examples: - Check current GW: response_format="markdown" - Get as JSON: response_format="json"

Error Handling: - Returns error if gameweek data unavailable - Returns error if no active gameweek found - Returns formatted error message if API fails

fpl_get_league_standingsA

Get standings for a specific Fantasy Premier League league.

Returns manager rankings, points, team names, and rank changes within the league. Supports pagination for large leagues. Find league ID in the FPL website URL (e.g., for /leagues/12345/standings/ use league_id=12345).

Args: params (GetLeagueStandingsInput): Validated input parameters containing: - league_id (int): League ID from FPL URL - page (int): Page number for pagination (default: 1) - response_format (ResponseFormat): 'markdown' or 'json' (default: markdown)

Returns: str: League standings with rankings and pagination info

Examples: - View league: league_id=12345 - Next page: league_id=12345, page=2 - Get as JSON: league_id=12345, response_format="json"

Error Handling: - Returns error if league not found - Returns error if page number invalid - Returns formatted error message if API fails

fpl_get_manager_gameweek_teamA

Get a manager's team selection for a specific gameweek.

Shows the 15 players picked, captain/vice-captain choices, formation, points scored, transfers made, and automatic substitutions. Find manager by their name or team name within a specific league.

Args: params (GetManagerGameweekTeamInput): Validated input parameters containing: - manager_name (str): Manager's name or team name - league_id (int): League ID where manager is found - gameweek (int): Gameweek number (1-38)

Returns: str: Complete team sheet with starting XI, bench, and statistics

Examples: - View team: manager_name="John Smith", league_id=12345, gameweek=13 - Check transfers: manager_name="FC Warriors", league_id=12345, gameweek=15

Error Handling: - Returns error if manager not found in league - Returns helpful message suggesting correct name if ambiguous - Returns formatted error message if API fails

fpl_compare_managersA

Compare multiple managers' teams for a specific gameweek side-by-side.

Shows differences in player selection, captaincy choices, points scored, common players, and unique differentials. Useful for mini-league rivalry analysis and understanding what sets top managers apart.

Args: params (CompareManagersInput): Validated input parameters containing: - manager_names (list[str]): 2-4 manager names to compare - league_id (int): League ID where managers are found - gameweek (int): Gameweek number to compare (1-38)

Returns: str: Side-by-side manager comparison with differentials

Examples: - Compare 2 managers: manager_names=["John", "Sarah"], league_id=12345, gameweek=13 - Compare 4 managers: manager_names=["A", "B", "C", "D"], league_id=12345, gameweek=10

Error Handling: - Returns error if fewer than 2 or more than 4 managers provided - Returns error if any manager not found (with helpful message) - Returns formatted error message if API fails

fpl_get_manager_squadA

Get a manager's squad selection for a specific gameweek using their team ID.

Shows the 15 players picked, captain/vice-captain choices, formation, points scored, transfers made, and automatic substitutions. This is a simpler alternative to fpl_get_manager_gameweek_team that uses team ID directly instead of requiring manager name and league ID lookup.

Args: params (GetManagerSquadInput): Validated input parameters containing: - team_id (int): Manager's team ID (entry ID) - gameweek (int | None): Gameweek number (1-38), defaults to current GW - response_format (ResponseFormat): 'markdown' or 'json' (default: markdown)

Returns: str: Complete team sheet with starting XI, bench, and statistics

Examples: - View current team: team_id=123456 - View specific gameweek: team_id=123456, gameweek=13 - Get as JSON: team_id=123456, gameweek=15, response_format="json"

Error Handling: - Returns error if team ID not found - Returns error if gameweek not started yet - Returns formatted error message if API fails

fpl_get_manager_by_team_idA

Get manager profile and squad information using team ID directly.

This tool provides the same functionality as fpl_get_manager_squad but with a name that better reflects its purpose - getting manager information without requiring league context. Shows the 15 players picked, captain/vice-captain choices, formation, points scored, transfers made, and automatic substitutions.

Args: params (GetManagerByTeamIdInput): Validated input parameters containing: - team_id (int): Manager's team ID (entry ID) - gameweek (int | None): Gameweek number (1-38), defaults to current GW - response_format (ResponseFormat): 'markdown' or 'json' (default: markdown)

Returns: str: Complete manager profile with squad, statistics, and team info

Examples: - View current squad: team_id=123456 - View specific gameweek: team_id=123456, gameweek=20 - Get as JSON: team_id=123456, response_format="json"

Error Handling: - Returns error if team ID not found (404) - Returns error if gameweek not started yet - Returns formatted error message if API fails

fpl_analyze_rivalA

Compare your team against a specific rival manager.

Provides a comprehensive head-to-head analysis including:

  • Points and Rank comparison

  • Chip usage history

  • Captaincy comparison

  • Key Differentials (players they own that you don't)

Args: params (AnalyzeRivalInput): Validated input parameters containing: - my_team_id (int): Your team ID - rival_team_id (int): Rival's team ID - gameweek (int | None): Gameweek number (defaults to current)

Returns: str: Detailed rival analysis and threat assessment

Examples: - Compare me vs rival: my_team_id=123, rival_team_id=456 - Analyze past GW: my_team_id=123, rival_team_id=456, gameweek=10

Error Handling: - Returns error if either team ID invalid - Returns formatted error message if API fails

fpl_find_playerA

Find a Fantasy Premier League player by name with intelligent fuzzy matching.

Handles variations in spelling, partial names, and common nicknames. If multiple players match, returns disambiguation options. More forgiving than exact search.

Args: params (FindPlayerInput): Validated input parameters containing: - player_name (str): Player name with fuzzy support (e.g., 'Haalnd' matches 'Haaland')

Returns: str: Player details if unique match, or list of matching players if ambiguous

Examples: - Find with typo: player_name="Haalnd" (finds Haaland) - Partial name: player_name="Mo Salah" (finds Mohamed Salah) - Surname only: player_name="Son" (finds Son Heung-min)

Error Handling: - Returns helpful message if no players found - Returns disambiguation list if multiple matches - Returns formatted error message if API fails

fpl_get_player_detailsA

Get comprehensive information about a specific Fantasy Premier League player.

Returns detailed player information including price, form, team, position, upcoming fixtures with difficulty ratings, recent gameweek performance, popularity, and season stats. Most comprehensive player tool.

Args: params (GetPlayerDetailsInput): Validated input parameters containing: - player_name (str): Player name (e.g., 'Mohamed Salah', 'Erling Haaland')

Returns: str: Comprehensive player information with fixtures, form, and stats

Examples: - Get player info: player_name="Mohamed Salah" - Check fixtures: player_name="Bukayo Saka" - Review form: player_name="Erling Haaland"

Error Handling: - Returns error if player not found - Suggests using fpl_find_player if name is ambiguous - Returns formatted error message if API fails

fpl_compare_playersA

Compare multiple Fantasy Premier League players side-by-side.

Provides detailed comparison of 2-5 players including their stats, prices, form, and other key metrics. Useful for making transfer decisions.

Args: params (ComparePlayersInput): Validated input parameters containing: - player_names (list[str]): 2-5 player names to compare

Returns: str: Side-by-side comparison of players in markdown format

Examples: - Compare wingers: player_names=["Salah", "Saka", "Palmer"] - Compare strikers: player_names=["Haaland", "Isak"] - Compare for transfers: player_names=["Son", "Maddison", "Odegaard"]

Error Handling: - Returns error if fewer than 2 or more than 5 players provided - Returns error if any player name is ambiguous - Returns formatted error message if API fails

fpl_get_top_performersA

Get top 10 Fantasy Premier League performers over recent gameweeks.

Analyzes player performance over the last N gameweeks and returns the top 10 players for each metric: Goals, Expected Goals (xG), Assists, Expected Assists (xA), and Expected Goal Involvements (xGI). Perfect for identifying in-form players for transfers.

Args: params (GetTopPlayersByMetricInput): Validated input parameters containing: - num_gameweeks (int): Number of recent gameweeks to analyze, 1-10 (default: 5) - response_format (ResponseFormat): 'markdown' or 'json' (default: markdown)

Returns: str: Top 10 players for each metric with their stats and team info

Examples: - Last 5 gameweeks: num_gameweeks=5 - Last 10 gameweeks: num_gameweeks=10 - Get as JSON: num_gameweeks=5, response_format="json"

Error Handling: - Returns error if no finished fixtures in range - Gracefully handles API failures for individual fixtures - Returns formatted error message if data unavailable

Note: This tool might take a few seconds to complete due to the number of data points it needs to process.

fpl_get_captain_recommendationsA

Get captaincy recommendations for the upcoming gameweek.

Analyzes fixtures, form, and home/away advantage to recommend the best captain choices. If team_id is provided, analyzes YOUR specific squad. Otherwise, provides general recommendations from all players.

Args: params (GetCaptainRecommendationsInput): Validated input parameters containing: - team_id (int | None): Your team ID to analyze your specific squad - gameweek (int | None): Gameweek to analyze (defaults to next)

Returns: str: Top 3-5 captain recommendations with analysis

Examples: - Analyze my team: team_id=123456 - General picks for GW15: gameweek=15 - General picks: (no args)

Error Handling: - Returns error if gameweek invalid - Returns helpful message if team ID not found - Returns formatted error message if API fails

fpl_analyze_team_fixturesA

Analyze upcoming fixtures for a specific Premier League team to assess difficulty.

Shows next N gameweeks with opponent strength and home/away status. Includes average difficulty rating and assessment. Very useful for identifying good times to bring in or sell team assets based on fixture difficulty.

Args: params (AnalyzeTeamFixturesInput): Validated input parameters containing: - team_name (str): Team name to analyze (e.g., 'Arsenal', 'Liverpool') - num_gameweeks (int): Number of gameweeks to analyze, 1-15 (default: 5) - response_format (ResponseFormat): 'markdown' or 'json' (default: markdown)

Returns: str: Fixture difficulty analysis with ratings and assessment

Examples: - Next 5 fixtures: team_name="Arsenal" - Next 10 fixtures: team_name="Liverpool", num_gameweeks=10 - Long-term view: team_name="Man City", num_gameweeks=15

Error Handling: - Returns error if team not found - Returns error if no upcoming fixtures - Returns formatted error message if data unavailable

fpl_get_top_transferred_playersA

Get the most transferred in and out players for the current gameweek.

Shows live transfer trends to identify popular moves happening right now. Uses real-time data from bootstrap for instant response. Essential for understanding the current template and finding differentials.

Args: params (GetTopTransferredPlayersInput): Validated input parameters containing: - limit (int): Number of players to return, 1-50 (default: 10) - response_format (ResponseFormat): 'markdown' or 'json' (default: markdown)

Returns: str: Top transferred in and out players with net transfers

Examples: - Top 10: limit=10 - Top 20: limit=20 - Get as JSON: limit=15, response_format="json"

Error Handling: - Returns error if no transfer data available - Returns formatted error message if current gameweek unavailable

fpl_get_manager_transfers_by_gameweekA

Get all transfers made by a specific manager in a specific gameweek.

Shows which players were transferred in and out, transfer costs, and timing. Useful for analyzing manager strategy and understanding when/why they made moves. Requires manager's team ID (entry ID) which can be found in the FPL URL.

Args: params (GetManagerTransfersByGameweekInput): Validated input parameters containing: - team_id (int): Manager's team ID (entry ID) - gameweek (int): Gameweek number (1-38)

Returns: str: Complete transfer history for the gameweek with costs

Examples: - View transfers: team_id=123456, gameweek=20 - Check costs: team_id=789012, gameweek=15

Error Handling: - Returns error if team ID invalid - Returns message if no transfers in gameweek - Returns formatted error message if API fails

fpl_get_manager_chipsA

Get a manager's chip usage showing which chips have been used and which are still available.

Since the 2025/2026 season, FPL provides 4 chips per half-season.

Shows used chips with gameweek and timing, plus remaining available chips. Essential for strategic chip planning and recommendations.

Args: params (GetManagerChipsInput): Validated input parameters containing: - team_id (int): Manager's team ID (entry ID) - response_format (ResponseFormat): 'markdown' or 'json' (default: markdown)

Returns: str: Chip usage summary with used and available chips

Examples: - Check chip status: team_id=123456 - JSON format: team_id=123456, response_format="json"

Error Handling: - Returns error if team ID invalid - Returns formatted error message if API fails

fpl_analyze_transferA

Analyze a potential transfer decision between two players.

Compares the player being transferred out vs the player being transferred in. Analyzes form, upcoming fixtures (next 5), price difference, and overall value. Provides a direct recommendation based on the data.

Args: params (AnalyzeTransferInput): Validated input parameters containing: - player_out (str): Name of player to remove - player_in (str): Name of player to add - my_team_id (int | None): Optional team ID to check budget impact

Returns: str: Detailed transfer analysis and recommendation

Examples: - Analyze move: player_out="Salah", player_in="Palmer" - Check budget: player_out="Saka", player_in="Foden", my_team_id=123456

Error Handling: - Returns error if either player not found - Returns error if players play different positions (unless specified) - Returns formatted error message if API fails

Prompts

Interactive templates invoked by user choice

NameDescription
recommend_captain Recommend optimal captain choices using xGI-based metrics and fixture analysis. This prompt guides the LLM to analyze squad players and recommend the top 3 captain options based on form, fixtures, expected goals, and opponent strength. Args: team_id: Manager's FPL team ID gameweek: Target gameweek (defaults to current/next if None) response_format: Output format - 'markdown' (default) or 'json'
recommend_chip_strategy Analyze chip strategy with xGI-based metrics and EV calculations. This prompt guides the LLM to recommend optimal chip timing using quantitative expected value analysis rather than subjective assessments. Args: team_id: FPL team ID of the manager to analyze
gameweek_analysis Analyze detailed match reports for a specific gameweek. Provides a comprehensive analysis of all matches in a gameweek, highlighting key performers, tactical insights, and FPL implications based on detailed statistics. Also suggests transfer targets based on upcoming fixtures and form. Args: gameweek: Gameweek number to analyze (defaults to current gameweek if None)
compare_managers Generate a prompt for comparing managers' teams in a league. This prompt guides the LLM to analyze differences in team selection, strategy, and performance between multiple managers. Args: league_id: ID of the league (from FPL URL) gameweek: Gameweek number to analyze *manager_names: Variable number of manager names (2-4 managers)
find_league_differentials Generate a prompt for finding differential players in a league. This prompt guides the LLM to identify low-owned players that could provide a competitive advantage in a specific league. Args: league_id: ID of the league to analyze max_ownership: Maximum ownership % to consider as differential (default: 30%)
compare_players Compare players using underlying metrics and probability-based projections. This prompt prioritizes xG/xA/xGI over retrospective points, identifies positive/negative regression candidates, and accounts for ownership context. Args: *player_names: 2-5 player names to compare
analyze_squad_performance Analyze squad performance using xGI-based metrics and regression analysis. This prompt guides the LLM to identify underperforming/overperforming players using underlying stats (xG, xA, xGI) rather than retrospective points. Args: team_id: FPL team ID of the manager to analyze num_gameweeks: Number of recent gameweeks to analyze (default: 5)
analyze_team_fixtures Detect FDR trend shifts to time transfers optimally. Accounts for: - Fixture difficulty horizon (4-6 GW) - DGW/BGW detection - Home/away xG splits - "Green arrow" timing (when to invest) Args: team_name: Team to analyze num_gameweeks: Fixture horizon (default: 6 for trend detection)
select_team Optimize Starting XI and Bench using fixture analysis and player status. This prompt guides the LLM to choose the best starting lineup and bench order based on fixture difficulty, player availability, and form. Args: team_id: Manager's FPL team ID gameweek: Target gameweek (defaults to current/next if None)
recommend_transfers Identify targets using xGI delta, fixture swings, and price urgency. Args: team_id: Manager's FPL team ID free_transfers: Available free transfers

Resources

Contextual data attached and managed by the client

NameDescription
get_all_players_resourceGet all FPL players with basic stats and prices.
get_all_teams_resourceGet all Premier League teams with strength ratings.
get_all_gameweeks_resourceGet all gameweeks with their status for the season.
get_current_gameweek_resourceGet the current or upcoming gameweek information.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/nguyenanhducs/fpl-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server