Provides comprehensive access to Fantasy Premier League data and team management, including player research and statistics, squad management and transfers, league standings and competitor analysis, fixture difficulty analysis, injury reports, and performance tracking.
š FPL MCP Server - Your AI-Powered Fantasy Premier League Assistant
Control your Fantasy Premier League team with your favourite LLM to help inform your decisions and gain more contextual insights based for your team
A secure, feature-rich Model Context Protocol (MCP) server that connects your LLM (like Claude) to the Fantasy Premier League API, enabling intelligent team management, competitor analysis, and data-driven decision making.
š Why This Tool?
Fantasy Premier League is complex. With 20 teams, 600+ players, injuries, form changes, and fixture difficulty to track, making optimal decisions is challenging. This MCP server gives your AI assistant complete access to FPL data, enabling:
š Deep Competitor Analysis - Spy on league rivals, analyze their teams, and understand why they're winning
š Intelligent Player Research - Get comprehensive stats, fixture analysis, and injury updates
šÆ Strategic Planning - Analyze fixture difficulty, identify transfer targets, and optimize your squad
š League Intelligence - Track standings, compare teams, and gain competitive insights
š¤ AI-Powered Decisions - Let your LLM crunch the numbers and suggest optimal strategies
⨠Key Features
š Secure Authentication
Out-of-Band Login - Your FPL credentials never touch the LLM
Multi-User Support - Multiple sessions with isolated authentication
Session Management - Secure token-based API access
š Comprehensive Data Access
Your Team Management
View current squad with prices and roles
Execute transfers with validation
Check team value and bank balance
Track transfer history and costs
Player Intelligence
Smart Search - Fuzzy name matching handles typos and variations
Detailed Stats - Form, points per game, total points, ownership
Injury Reports - Real-time lineup predictions from RotoWire
Fixture Analysis - Upcoming opponents with difficulty ratings
Historical Performance - Past gameweek and season statistics
Player Comparison - Side-by-side analysis of multiple players
Competitive Analysis
League Standings - View any league with pagination support
Manager Performance - Deep dive into any manager's stats and rankings
Team Inspection - See exactly what players competitors picked each gameweek
Head-to-Head Comparison - Compare multiple managers' teams side-by-side
Captain Choices - Analyze captaincy decisions across your league
Strategic Planning
Fixture Difficulty - Analyze team schedules for transfer timing
Gameweek Fixtures - Complete fixture list with kickoff times
Top Performers - Best players by position based on form
Team Squads - Browse all players from specific teams
Injury Avoidance - Identify players to avoid before transfers
š Advanced Capabilities
Circular Data Flow with Friendly Names
The server enables natural, circular exploration of FPL data using friendly names:
Example workflow using only friendly names:
"How am I doing?" ā Automatically uses your entry, shows your leagues
"Show Greatest Fantasy Footy standings" ā Find top competitors by league name
"What team did Jaakko pick in GW13?" ā Analyze selections by manager name
"Compare my team to Jaakko's" ā Understand performance differences
"Tell me about Haaland's fixtures" ā Research players by name
"Compare Salah and Palmer" ā Direct player comparison by names
No IDs needed anywhere! The system resolves all names internally.
Smart Caching
4-Hour TTL - Bootstrap and fixtures data cached locally
Automatic Refresh - Data updates when cache expires
Fallback Support - Uses expired cache if API fails
Fast Responses - Instant access to cached data
Player Name Rehydration
Automatic Translation - Element IDs converted to player names
Rich Context - Full player info (team, position, price, form)
Seamless Experience - No manual ID lookups needed
š Prerequisites
Install (An extremely fast Python package manager):
Mac/Linux:
curl -LsSf https://astral.sh/uv/install.sh | shWindows:
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
š Installation & Setup
1. Clone and Install
2. Verify Installation (Optional)
Test the server locally before connecting to Claude:
You should see:
Press Ctrl+C to stop.
3. Connect to Claude Desktop
Get Your Project Path
Mac/Linux: Run
pwdin the project folderWindows: Run
cdin the project folder
Copy the full absolute path.
Configure Claude
Open Claude's config file:
Mac:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
Add the FPL server (replace /ABSOLUTE/PATH/TO/fpl-mcp-server with your path):
Restart Claude
Quit Claude completely and reopen. An error notification popup will appear if something is wrong with connecting the MCP server. If not error, this is a good sign, but go to settings and check connectors to confirm fpl-mcp-server is listed there.
š” Usage Examples
šÆ Natural Conversation Flow
The server uses friendly names instead of IDs, enabling natural conversations:
Getting Started
Your Team & Performance
Player Research (Use Names, Not IDs!)
Competitive Analysis (Use Friendly Names!)
Team & Fixture Analysis (Use Team Names!)
Strategic Planning
Advanced Analysis
š Key Principle: Names over IDs
The system automatically:
Fetches your entry ID after login
Resolves league names from your leagues
Finds managers by name within leagues
Matches player names with fuzzy search
Converts team names to IDs internally
š ļø Available Tools
The server provides 30+ MCP tools organized by category. All tools use friendly names instead of IDs!
Authentication
login_to_fpl- Generate secure login linkcheck_login_status- Verify authentication and activate session
Your Account
get_my_info- View your account, entry, and leaguesget_my_squad- View your current teamget_my_performance- Your stats, ranks, and league positionsmake_transfers- Execute transfers using player names (irreversible!)
Player Research (Use Player Names!)
search_players(name_query)- Find players by namefind_player(player_name)- Intelligent fuzzy search with full detailsget_player_details(player_name)- Detailed player info by nameget_player_summary(player_name)- Comprehensive analysis with fixturescompare_players(player_names)- Side-by-side comparison using namesget_top_players()- Best performers by positionsearch_players_by_team(team_name)- Browse team squads by name
Injury & Availability
get_injury_and_lineup_predictions()- RotoWire lineup dataget_players_to_avoid()- Injury risk assessmentcheck_player_availability(player_name)- Check specific player status
Fixtures & Teams (Use Team Names!)
get_fixtures_for_gameweek(gameweek)- All matches in a gameweekanalyze_team_fixtures(team_name, num_gameweeks)- Fixture difficulty by team nameget_team_info(team_name)- Team strength ratings by namelist_all_teams()- All Premier League teams
Gameweek Information
get_current_gameweek()- Current/upcoming gameweekget_gameweek_info(gameweek_number)- Detailed gameweek statslist_all_gameweeks()- Season overview
Competitive Analysis (Use Friendly Names!)
get_league_standings(league_name, page)- League rankings by league nameget_manager_gameweek_team(manager_name, league_name, gameweek)- Inspect teams by manager namecompare_managers(manager_names, league_name, gameweek)- Multi-manager comparison by names
šļø Architecture
Key Components
MCP Tools - 30+ functions for FPL data access
Smart Caching - 4-hour TTL for bootstrap/fixtures data
Player Rehydration - Automatic ID-to-name conversion
Secure Auth - Out-of-band login flow
RotoWire Integration - Real-time injury updates
š§ Troubleshooting
Plug Icon Not Appearing
Check Logs:
Mac:
tail -f ~/Library/Logs/Claude/mcp.logWindows: Check
%APPDATA%\Claude\logs\mcp.log
Common Issues:
Did you run
uv syncfirst?Is the
cwdpath in the JSON config correct (no typos)?Is
uvin your system PATH?Try replacing
"command": "uv"with the full path to youruvexecutable
Authentication Issues
Make sure you're using the correct FPL credentials
Check that the web server is running on port 8000
Try clearing browser cookies and logging in again
Data Not Loading
Check your internet connection
Verify the FPL API is accessible
Look for error messages in the logs
Try restarting the Claude Desktop app
š¤ Contributing
Contributions are welcome! Areas for improvement:
add understat and/or fbref stats to add better technical analysis to player data
Additional MCP tools for more FPL features
Enhanced fixture difficulty algorithms
Historical data analysis tools
Transfer suggestion algorithms
Price change predictions
š License
MIT License
Copyright (c) 2025 Lewis King
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
š Acknowledgments
Fantasy Premier League for API
RotoWire for injury and lineup data
The MCP community for the protocol
Claude for AI capabilities
Ready to dominate your FPL leagues with AI-powered insights? Get started now! š