Fantasy Premier League MCP Server
The Fantasy Premier League MCP Server provides comprehensive access to FPL data and analytics for strategic decision-making, primarily designed for use with MCP-compatible LLMs.
Core Data Access:
Retrieve comprehensive player statistics, historical data, and upcoming fixtures
Access Premier League team information and composition
Get detailed gameweek data (current, previous, and next) including status and timing
View all fixtures for the season, specific gameweeks, or teams
Analysis Tools:
Search and filter players by name, position, team, price, points, ownership, and form
Compare detailed statistics and metrics between multiple players
Analyze upcoming fixtures with difficulty ratings for players, teams, or positions
Identify upcoming blank and double gameweeks for strategic planning
Team Management:
Access authenticated FPL team details and manager information
View any FPL team using its team ID
Check FPL authentication status
League Features:
Retrieve mini-league standings
Access rich league analytics including historical performance, team composition, and decision analysis
Strategic Assistance:
Generate AI-assisted advice through prompt templates for transfer decisions, team ratings, differential picks, and chip strategies
Provides access to Fantasy Premier League data including comprehensive player statistics, team information, gameweek data, fixture difficulty, and tools for comparing players and analyzing performance
Leverages Python to access the Fantasy Premier League API, with support for Python 3.10 or higher to run the MCP server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Fantasy Premier League MCP Servercompare Mohamed Salah and Erling Haaland over the last 5 gameweeks"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Fantasy Premier League MCP Server
A Model Context Protocol (MCP) server that provides access to Fantasy Premier League (FPL) data and tools. This server allows you to interact with FPL data in Claude for Desktop and other MCP-compatible clients.
Demo of the Fantasy Premier League MCP Server in action

Supported Platforms
Claude Desktop
Cursor
Windsurf
Other MCP Compatible Desktop LLMs
Mobile is currently not supported.
Related MCP server: Yahoo Fantasy MCP
Features
Rich Player Data: Access comprehensive player statistics from the FPL API
Team Information: Get details about Premier League teams
Gameweek Data: View current and past gameweek information
Player Search: Find players by name or team
Player Comparison: Compare detailed statistics between any two players
Requirements
Python 3.10 or higher
Claude Desktop (for AI integration)
Installation
Option 1: Install from PyPI (Recommended)
pip install fpl-mcpOption 1b: Install with Development Dependencies
pip install "fpl-mcp[dev]"Option 2: Install from GitHub
pip install git+https://github.com/rishijatia/fantasy-pl-mcp.gitOption 3: Clone and Install Locally
git clone https://github.com/rishijatia/fantasy-pl-mcp.git
cd fantasy-pl-mcp
pip install -e .Running the Server
After installation, you have several options to run the server:
1. Using the CLI command
fpl-mcp2. Using the Python module
python -m fpl_mcp3. Using with Claude Desktop
Configure Claude Desktop to use the installed package by editing your claude_desktop_config.json file:
Method 1: Using the Python module directly (most reliable)
{
"mcpServers": {
"fantasy-pl": {
"command": "python",
"args": ["-m", "fpl_mcp"]
}
}
}Method 2: Using the installed command with full path (if installed with pip)
{
"mcpServers": {
"fantasy-pl": {
"command": "/full/path/to/your/venv/bin/fpl-mcp"
}
}
}Replace /full/path/to/your/venv/bin/fpl-mcp with the actual path to the executable. You can find this by running which fpl-mcp in your terminal after activating your virtual environment.
Note: Using just
"command": "fpl-mcp"may result in aspawn fpl-mcp ENOENTerror since Claude Desktop might not have access to your virtual environment's PATH. Using the full path or the Python module approach helps avoid this issue.
Usage
In Claude for Desktop
Start Claude for Desktop
You should see FPL tools available via the hammer icon
Example queries:
"Compare Mohamed Salah and Erling Haaland over the last 5 gameweeks"
"Find all Arsenal midfielders"
"What's the current gameweek status?"
"Show me the top 5 forwards by points"
Fantasy-PL MCP Usage Instructions
Basic Commands:
Compare players: "Compare [Player1] and [Player2]"
Find players: "Find players from [Team]" or "Search for [Player Name]"
Fixture difficulty: "Show upcoming fixtures for [Team]"
Captain advice: "Who should I captain between [Player1] and [Player2]?"
Advanced Features:
Statistical analysis: "Compare underlying stats for [Player1] and [Player2]"
Form check: "Show me players in form right now"
Differential picks: "Suggest differentials under 10% ownership"
Team optimization: "Rate my team and suggest transfers"
Tips:
Be specific with player names for accurate results
Include positions when searching (FWD, MID, DEF, GK)
For best captain advice, ask about form, fixtures, and underlying stats
Request comparison of specific metrics (xG, shots in box, etc.
MCP Inspector for Development
For development and testing:
# If you have mcp[cli] installed
mcp dev -m fpl_mcp
# Or use npx
npx @modelcontextprotocol/inspector python -m fpl_mcpAvailable Resources
fpl://static/players- All player data with comprehensive statisticsfpl://static/players/{name}- Player data by name searchfpl://static/teams- All Premier League teamsfpl://static/teams/{name}- Team data by name searchfpl://gameweeks/current- Current gameweek datafpl://gameweeks/all- All gameweeks datafpl://fixtures- All fixtures for the current seasonfpl://fixtures/gameweek/{gameweek_id}- Fixtures for a specific gameweekfpl://fixtures/team/{team_name}- Fixtures for a specific teamfpl://players/{player_name}/fixtures- Upcoming fixtures for a specific playerfpl://gameweeks/blank- Information about upcoming blank gameweeksfpl://gameweeks/double- Information about upcoming double gameweeks
Available Tools
Players
search_fpl_players- Search for players by name, with optional position and team filtersget_player_information- Get detailed information and gameweek history for a playeranalyze_players- Filter and analyze FPL players based on multiple criteriacompare_players- Compare multiple players across various metricsget_price_changes- Get players whose price rose or fell in the current gameweek
Fixtures and gameweeks
get_gameweek_status- Get precise information about current, previous, and next gameweeksanalyze_player_fixtures- Analyze upcoming fixtures for a player with difficulty ratingsanalyze_fixtures- Analyze upcoming fixtures for players, teams, or positionsget_blank_gameweeks- Get information about upcoming blank gameweeksget_double_gameweeks- Get information about upcoming double gameweeks
Live gameweek
get_gameweek_live_scores- Live player points and stats while matches are being playedget_dream_team- The official highest-scoring XI for a gameweek
Your team and advice
suggest_captain- Rank your squad by captain score with per-component reasoningcheck_fpl_authentication- Check if FPL authentication is working correctlyupdate_fpl_credentials- Update your stored FPL credentials from within a chatget_my_team- View your authenticated team (requires authentication)get_my_current_team- View your current team for the active gameweek (requires authentication)get_team- View any team with a specific ID (requires authentication)get_manager- Get manager details for a specific team ID (requires authentication)get_manager_info- Get manager details (requires authentication)get_manager_transfer_history- Get a manager's full transfer history
Leagues
get_league_standings- Get standings for a classic league (requires authentication)get_league_analytics- Analyze a league's managers, ownership trends, and performance
Prompt Templates
player_analysis_prompt- Create a prompt for analyzing an FPL player in depthtransfer_advice_prompt- Get advice on player transfers based on budget and positionteam_rating_prompt- Create a prompt for rating and analyzing an FPL teamdifferential_players_prompt- Create a prompt for finding differential players with low ownershipchip_strategy_prompt- Create a prompt for chip strategy advice
Development
Adding Features
To add new features:
Add resource handlers in the appropriate file within
fpl_mcp/fpl/resources/Add tool handlers in the appropriate file within
fpl_mcp/fpl/tools/Update the
__main__.pyfile to register new resources and toolsTest using the MCP Inspector before deploying to Claude for Desktop
Authentication
FPL migrated its login to PingOne (Ping Identity) OIDC, so authentication now uses an OIDC
refresh token rather than your email and password. The refresh token is exchanged for
short-lived access tokens automatically, and requests are sent with an
X-API-Authorization: Bearer header.
To use features requiring authentication (like accessing your team or private leagues), set up your refresh token:
# Run the credential setup tool
fpl-mcp-config setupThis interactive tool will:
Show you how to copy your OIDC refresh token from the browser
Prompt for the refresh token and your team ID
Save them (encrypted) to
~/.fpl-mcp/credentials.enc
Getting your refresh token:
Log in at https://fantasy.premierleague.com in your browser.
Open the DevTools Console (F12 → Console) and run:
copy(JSON.parse(localStorage.getItem(Object.keys(localStorage).find(k=>k.startsWith('oidc.user:')))).refresh_token)(If Chrome refuses, type
allow pastingin the console first.) The refresh token is now on your clipboard — paste it when prompted.Alternatively: DevTools → Application → Local storage →
https://fantasy.premierleague.com, copy the whole JSON value of the key starting withoidc.user:and paste that instead — setup extracts therefresh_tokenfield automatically.
Run fpl-mcp-config test right after setup: the first exchange claims the token
before your browser session can supersede it, and rotates it so the copy in your
browser is retired — that is expected, and your browser session recovers on its own.
You can test your authentication with:
fpl-mcp-config testAlternatively, you can manually configure authentication:
Create
~/.fpl-mcp/.envfile with:FPL_REFRESH_TOKEN=your_refresh_token FPL_TEAM_ID=your_team_idOr create
~/.fpl-mcp/config.json:{ "refresh_token": "your_refresh_token", "team_id": "your_team_id" }Or set environment variables:
export FPL_REFRESH_TOKEN=your_refresh_token export FPL_TEAM_ID=your_team_id
Note: refresh tokens can be rotated or revoked by FPL. If authentication starts failing, re-run
fpl-mcp-config setupwith a freshly copied token.
Advanced: overriding the OIDC endpoints
If FPL changes its OIDC client or endpoints, you can override the defaults with environment variables (all optional):
Variable | Default |
|
|
|
|
|
|
Limitations
The FPL API is not officially documented and may change without notice
Only read operations are currently supported
Troubleshooting
Common Issues
1. "spawn fpl-mcp ENOENT" error in Claude Desktop
This occurs because Claude Desktop cannot find the fpl-mcp executable in its PATH.
Solution: Use one of these approaches:
Use the full path to the executable in your config file
{ "mcpServers": { "fantasy-pl": { "command": "/full/path/to/your/venv/bin/fpl-mcp" } } }Use Python to run the module directly (preferred method)
{ "mcpServers": { "fantasy-pl": { "command": "python", "args": ["-m", "fpl_mcp"] } } }
2. Server disconnects immediately
If the server starts but immediately disconnects:
Check logs at
~/Library/Logs/Claude/mcp*.log(macOS) or%APPDATA%\Claude\logs\mcp*.log(Windows)Ensure all dependencies are installed
Try running the server manually with
python -m fpl_mcpto see any errors
3. Server not showing in Claude Desktop
If the hammer icon doesn't appear:
Restart Claude Desktop completely
Verify your
claude_desktop_config.jsonhas correct JSON syntaxEnsure the path to Python or the executable is absolute, not relative
License
This project is licensed under the MIT License - see the LICENSE file for details.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Fork the repository
Create your feature branch (
git checkout -b feature/amazing-feature)Commit your changes (
git commit -m 'Add some amazing feature')Push to the branch (
git push origin feature/amazing-feature)Open a Pull Request
For more details, please refer to the CONTRIBUTING.md file.
Acknowledgments
Fantasy Premier League API for providing the data
Model Context Protocol for the connectivity standard
Claude for the AI assistant capabilities
Citation
If you use this package in your research or project, please consider citing it:
@software{fpl_mcp,
author = {Jatia, Rishi and Fantasy PL MCP Contributors},
title = {Fantasy Premier League MCP Server},
url = {https://github.com/rishijatia/fantasy-pl-mcp},
version = {0.1.0},
year = {2025},
}Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseBqualityDmaintenanceAn MCP server providing access to college football statistics sourced from the College Football Data API within Claude Desktop.927MIT
- Alicense-qualityDmaintenanceA Model Context Protocol server that provides read-only access to Yahoo Fantasy Sports data, enabling AI assistants to query league standings, player stats, matchups, and rosters.2MIT
- Flicense-qualityCmaintenanceMCP server for natural language analysis of baseball league data, enabling team statistics, standings, lineup suggestions, and scouting reports via Claude Desktop.
- Flicense-qualityDmaintenanceMCP server for the Fantasy Premier League API, enabling querying of players, teams, fixtures, and your FPL team through any MCP-compatible client.
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Driflyte MCP server which lets AI assistants query topic-specific knowledge from web and GitHub.
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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