Fantasy Premier League MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FPL_EMAIL | No | Your Fantasy Premier League email address | |
| FPL_TEAM_ID | No | Your Fantasy Premier League team ID | |
| FPL_PASSWORD | No | Your Fantasy Premier League password |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_teamA | Get any team's players, captain, and other details for a specific gameweek |
| get_my_teamA | Get your own FPL team for a specific gameweek |
| get_managerB | Get detailed information about an FPL manager |
| get_my_current_teamA | Get your current team as shown on the transfers page, including selling prices, chips, and transfer state (requires authentication) |
| check_fpl_authenticationA | Check if FPL authentication is working correctly |
| update_fpl_credentialsA | Store a new FPL refresh token when the current one has expired. |
| get_manager_infoB | Get detailed information about an FPL manager |
| get_manager_transfer_historyA | Get a manager's transfer history with player names and prices |
| get_league_standingsA | Get standings for a specified FPL league |
| get_league_analyticsC | Get rich analytics for a Fantasy Premier League mini-league |
| get_player_informationA | Get detailed information and statistics for a specific player |
| search_fpl_playersA | Search for FPL players by name with optional filtering |
| get_price_changesA | Get players whose price changed in the current gameweek (risers and fallers) |
| get_gameweek_statusB | Get precise information about current, previous, and next gameweeks |
| get_blank_gameweeksA | Get information about upcoming blank gameweeks where teams don't have fixtures |
| get_double_gameweeksA | Get information about upcoming double gameweeks where teams play multiple times |
| analyze_player_fixturesA | Analyze upcoming fixtures for a player and provide a difficulty rating |
| analyze_fixturesA | Analyze upcoming fixtures for players, teams, or positions |
| analyze_playersB | Filter and analyze FPL players based on multiple criteria |
| compare_playersA | Compare multiple players across various metrics |
| get_gameweek_live_scoresA | Get live player points and stats for a gameweek while matches are being played |
| get_dream_teamA | Get the official dream team (highest-scoring XI) for a gameweek |
| suggest_captainA | Suggest who to captain from a team's current squad, ranked with reasoning |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| transfer_advice_prompt | Create a prompt for getting detailed FPL transfer advice Args: budget: Available budget in millions (e.g., 8.5) position: Optional position to target (e.g., MID, FWD, DEF, GKP) team_to_sell: Optional team name if selling a player from that team |
| player_analysis_prompt | Create a prompt for analyzing an FPL player in depth Args: player_name: Name of the player to analyze include_comparisons: Whether to compare with similar players |
| team_rating_prompt | Create a prompt for rating and analyzing an FPL team Args: player_list: Comma-separated list of players in the team budget_remaining: Remaining budget in millions |
| differential_players_prompt | Create a prompt for finding differential players with low ownership Args: max_ownership: Maximum ownership percentage to consider budget: Optional maximum budget per player in millions |
| chip_strategy_prompt | Create a prompt for chip strategy advice Args: available_chips: Comma-separated list of available chips (e.g., "Wildcard, Free Hit, Bench Boost") |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| fpl://static/players | |
| fpl://static/teams | |
| fpl://gameweeks/current | |
| fpl://gameweeks/all | |
| fpl://fixtures | |
| fpl://gameweeks/blank | |
| fpl://gameweeks/double |
TDQS
Scored across 23 tools
Several tool pairs overlap in purpose, such as get_manager_info and get_manager, which both return manager details, and get_my_current_team vs get_my_team, which have subtle differences. Additionally, analyze_fixtures and analyze_player_fixtures both cover player fixture analysis, creating potential misselection. However, descriptions do help clarify most boundaries.
Tool names consistently use snake_case with verb_noun structure (get_, search_, analyze_, compare_, suggest_). Minor deviations exist, such as the duplicate get_manager_info vs get_manager and the similar get_my_current_team vs get_my_team, but the overall pattern is predictable and readable.
With 23 tools, the server is on the high side for a fantasy sports API. While the breadth covers many FPL data types (players, teams, leagues, gameweeks, analytics), a few tools like get_manager_info and get_manager are redundant and could be consolidated, making the count feel slightly bloated.
The tool set covers major FPL domains well: authentication, team management, player search and analysis, league standings and analytics, gameweek status including blanks and doubles, live scores, dream team, and captain suggestions. Minor gaps exist (e.g., no dedicated transfer recommendation tool), but agents can easily work around these with existing data.