Skip to main content
Glama
rishijatia

Fantasy Premier League MCP Server

by rishijatia

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
FPL_EMAILNoYour Fantasy Premier League email address
FPL_TEAM_IDNoYour Fantasy Premier League team ID
FPL_PASSWORDNoYour 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

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

Tools

Functions exposed to the LLM to take actions

NameDescription
get_teamA

Get any team's players, captain, and other details for a specific gameweek

    Args:
        team_id: FPL team ID (required)
        gameweek: Gameweek number (defaults to current gameweek)
        
    Returns:
        Detailed team information including player details, captain, and value
    
get_my_teamA

Get your own FPL team for a specific gameweek

    Args:
        gameweek: Gameweek number (defaults to current gameweek)
        
    Returns:
        Detailed team information including player details, captain, and value
        
    Note:
        This uses your authenticated team ID from the FPL credentials.
        To get another team's details, use get_team and provide a team_id.
    
get_managerB

Get detailed information about an FPL manager

    Args:
        team_id: FPL team ID to look up

    Returns:
        Manager information including history, name, team details, and leagues
    
get_my_current_teamA

Get your current team as shown on the transfers page, including selling prices, chips, and transfer state (requires authentication)

    Unlike get_my_team, this uses the authenticated my-team endpoint, so
    it reflects pending changes and per-player purchase/selling prices.

    Returns:
        Current squad with prices, available chips, and transfer status
    
check_fpl_authenticationA

Check if FPL authentication is working correctly

    Returns:
        Authentication status and basic team information
    
update_fpl_credentialsA

Store a new FPL refresh token when the current one has expired.

    Use this when authenticated FPL tools fail with an invalid/expired refresh
    token error. Ask the user to fetch a fresh token first: log in at
    https://fantasy.premierleague.com, open the DevTools Console (F12), run

        copy(JSON.parse(localStorage.getItem(Object.keys(localStorage).find(k=>k.startsWith('oidc.user:')))).refresh_token)

    (typing 'allow pasting' first if Chrome refuses), and paste the clipboard
    contents here. Copying the whole 'oidc.user:...' JSON value from DevTools ->
    Application -> Local storage works too.

    Args:
        refresh_token: The copied oidc.user JSON value (or just its
            refresh_token field)
        team_id: FPL team ID; omit to keep the currently stored one

    Returns:
        Whether the new token was stored and validated against the FPL API
    
get_manager_infoB

Get detailed information about an FPL manager

    Args:
        team_id: FPL team ID (defaults to authenticated user)

    Returns:
        Manager info with leagues and performance stats
    
get_manager_transfer_historyA

Get a manager's transfer history with player names and prices

    Args:
        team_id: FPL team ID to look up
        limit: Maximum number of transfers to return (most recent first)

    Returns:
        Transfer history grouped by gameweek
    
get_league_standingsA

Get standings for a specified FPL league

    Args:
        league_id: ID of the league to fetch
        
    Returns:
        League information with standings and team details
    
get_league_analyticsC

Get rich analytics for a Fantasy Premier League mini-league

    Returns visualization-optimized data for various types of league analysis.
    
    Args:
        league_id: ID of the league to analyze
        analysis_type: Type of analysis to perform:
            - "overview": General league overview (default)
            - "historical": Historical performance analysis
            - "team_composition": Team composition analysis
            - "decisions": Captain and transfer decision analysis
            - "fixtures": Fixture difficulty comparison
        start_gw: Starting gameweek (defaults to 1 or use "current-N" format)
        end_gw: Ending gameweek (defaults to current)
        
    Returns:
        Rich analytics data structured for visualization
    
get_player_informationA

Get detailed information and statistics for a specific player

    Args:
        player_id: FPL player ID (if provided, takes precedence over player_name)
        player_name: Player name to search for (used if player_id not provided)
        start_gameweek: Starting gameweek for filtering player history
        end_gameweek: Ending gameweek for filtering player history
        include_history: Whether to include gameweek-by-gameweek history
        include_fixtures: Whether to include upcoming fixtures

    Returns:
        Comprehensive player information including stats and history
    
search_fpl_playersA

Search for FPL players by name with optional filtering

    Args:
        query: Player name or partial name to search for
        position: Optional position filter (GKP, DEF, MID, FWD)
        team: Optional team name filter
        limit: Maximum number of results to return

    Returns:
        List of matching players with details
    
get_price_changesA

Get players whose price changed in the current gameweek (risers and fallers)

    Args:
        direction: Optional filter, "risers" or "fallers" (default: both)
        limit: Maximum number of players per direction

    Returns:
        Price risers and fallers with ownership and transfer momentum
    
get_gameweek_statusB

Get precise information about current, previous, and next gameweeks

    Returns:
        Detailed information about gameweek timing, including exact status
    
get_blank_gameweeksA

Get information about upcoming blank gameweeks where teams don't have fixtures

    Args:
        num_gameweeks: Number of upcoming gameweeks to check (default: 5)

    Returns:
        Information about blank gameweeks and affected teams
    
get_double_gameweeksA

Get information about upcoming double gameweeks where teams play multiple times

    Args:
        num_gameweeks: Number of upcoming gameweeks to check (default: 5)

    Returns:
        Information about double gameweeks and affected teams
    
analyze_player_fixturesA

Analyze upcoming fixtures for a player and provide a difficulty rating

    Args:
        player_name: Player name to search for
        num_fixtures: Number of upcoming fixtures to analyze (default: 5)

    Returns:
        Analysis of player's upcoming fixtures with difficulty ratings
    
analyze_fixturesA

Analyze upcoming fixtures for players, teams, or positions

    Args:
        entity_type: Type of entity to analyze ("player", "team", or "position")
        entity_name: Name of the specific entity
        num_gameweeks: Number of gameweeks to look ahead
        include_blanks: Whether to include blank gameweek info
        include_doubles: Whether to include double gameweek info

    Returns:
        Fixture analysis with difficulty ratings and summary
    
analyze_playersB

Filter and analyze FPL players based on multiple criteria

    Args:
        position: Player position (e.g., "midfielders", "defenders")
        team: Team name filter
        min_price: Minimum player price in millions
        max_price: Maximum player price in millions
        min_points: Minimum total points
        min_ownership: Minimum ownership percentage
        max_ownership: Maximum ownership percentage
        form_threshold: Minimum form rating
        include_gameweeks: Whether to include gameweek-by-gameweek data
        num_gameweeks: Number of recent gameweeks to include
        sort_by: Metric to sort results by (default: points; bootstrap
            names like total_points/goals_scored are accepted as aliases)
        sort_order: Sort direction ("asc" or "desc")
        limit: Maximum number of players to return

    Returns:
        Filtered player data with summary statistics
    
compare_playersA

Compare multiple players across various metrics

    Args:
        player_names: List of player names to compare (2-5 players recommended)
        metrics: List of metrics to compare (bootstrap names like
            total_points/goals_scored are accepted as aliases)
        include_gameweeks: Whether to include gameweek-by-gameweek comparison
        num_gameweeks: Number of recent gameweeks to include in comparison
        include_fixture_analysis: Whether to include fixture analysis including blanks and doubles

    Returns:
        Detailed comparison of players across the specified metrics
    
get_gameweek_live_scoresA

Get live player points and stats for a gameweek while matches are being played

    Args:
        gameweek_id: Gameweek to fetch (defaults to the current gameweek)
        player_ids: Optional list of FPL player IDs to restrict the result to
        limit: Maximum number of players to return when player_ids is not given

    Returns:
        Live scores sorted by points, plus bonus-processing status
    
get_dream_teamA

Get the official dream team (highest-scoring XI) for a gameweek

    Args:
        gameweek_id: Gameweek to fetch (defaults to the current gameweek)

    Returns:
        The dream team with player names, teams, positions, and points
    
suggest_captainA

Suggest who to captain from a team's current squad, ranked with reasoning

    Combines FPL's own expected points (ep_next), form, points per game,
    and upcoming fixture difficulty into a transparent captain score.

    Args:
        team_id: FPL team ID (defaults to your authenticated team)
        gameweek_id: Gameweek whose squad to analyze (defaults to current)

    Returns:
        Squad ranked by captain score with per-component breakdown
    

Prompts

Interactive templates invoked by user choice

NameDescription
transfer_advice_promptCreate 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_promptCreate 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_promptCreate 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_promptCreate 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_promptCreate 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

NameDescription
fpl://static/players
fpl://static/teams
fpl://gameweeks/current
fpl://gameweeks/all
fpl://fixtures
fpl://gameweeks/blank
fpl://gameweeks/double

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/rishijatia/fantasy-pl-mcp'

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