What Fantasy Premier League (FPL) does
Fantasy Premier League (FPL) MCP server exposes Fantasy Premier League data and decision-support tools to MCP-compatible AI applications. It reads current-season information from the official FPL API, including players, prices, injuries, teams, fixtures, gameweeks, and per-match statistics. Historical player and match data from the 2016-17 season onward comes from the vaastav dataset.
The Fantasy Premier League (FPL) MCP server can answer player and fixture questions, inspect a manager's public squad, compare players, and summarize team performance. It also uses a LightGBM model to estimate each player's points for the next one to five gameweeks. Those estimates feed squad selection, transfer, captain, and chip recommendations.
This belongs in the π Sports category and is intended for managers who want current FPL analysis inside an AI client rather than manually combining the official site, fixture lists, and historical data.
How it works
The server can run locally over stdio or be reached through HTTP at a deployed MCP URL. Local operation keeps the process on the user's computer; remote operation is needed for clients such as claude.ai, ChatGPT, and Grok that cannot start a local program. The project also documents a hosted endpoint and an npm command for applications that launch local servers.
Data is stored in SQLite by default, with Supabase available as an alternative. Synchronization jobs load the live snapshot, current-season match records, and selected or complete historical seasons. Model jobs train, evaluate, compare, and generate predictions. A weekly workflow can refresh live and current data before retraining and updating predictions.
Predictions use player form, minutes and starts, attacking and defensive statistics, ownership and transfers, price and position, home or away status, rest time, team strength, and fixture context. Injury or suspension availability adjusts the next gameweek estimate. Double gameweeks contribute multiple fixtures. The optimizer applies squad size, formation, club-limit, budget, and transfer-cost rules, while reducing the weight of predictions farther into the future.
Setup and configuration
Running from source requires Python 3.12 or later. A typical local setup creates a virtual environment, installs the project with its Supabase and development extras, synchronizes data, and trains the model. Initial synchronization and training take several minutes, depending on the destination and data selected.
SQLite uses data/fpl.db by default. Supabase requires a DATABASE_URL containing a Session pooler connection string; tables are created automatically. The repository keeps the database, cache, logs, trained models, and environment file outside version control. After reloading historical data, the cache can be rebuilt with the refresh-cache option.
The documented alternatives are the remote URL, npx -y fpl-mcp-server for local-server clients, Smithery, and the official MCP Registry. The hosted free-plan deployment may have a slow first response after a period without requests.
Tools and capabilities
Available MCP tools include:
- Check the current or upcoming gameweek and deadline with
gameweek_status.
- Search, inspect, and compare players with
search_players, get_player, and compare_players.
- Review fixtures and team performance with
get_fixtures and team_summary.
- Retrieve a player's season-by-season record with
player_season_history.
- Read a public manager squad with
get_my_team; no login is used.
- Rank expected points with
predict_points and inspect model results with model_report.
- Build a budget-constrained squad with
optimal_squad.
- Receive transfer or roll advice with
suggest_transfers, captain choices with pick_captain, and chip recommendations with chip_advice.
- Pull a new live snapshot with
refresh_data.
Limitations and notes
The server uses public manager endpoints, so transfers made after the last deadline are not visible. Selling prices and available free transfers are estimated from public transfer and gameweek history. Predictions are not guarantees: FPL scoring is noisy, and historical evaluations lack historical injury information. Data also has known quirks, including unusual 2019-20 gameweek numbering and assistant-manager rows in 2024-25 that the model ignores. xG and xA are available only from 2022-23 onward.