by rishijatia
The Fantasy Premier League MCP Server provides direct access to up-to-date Fantasy Premier League (FPL) data and tools, enabling AI agents to access and process FPL information within MCP-compatible clients.
The Fantasy Premier League MCP Server (fantasy-pl-mcp) is a Model Context Protocol (MCP) server that provides direct access to up-to-date Fantasy Premier League (FPL) data and tools. It allows users to interact with FPL data within MCP-compatible clients like Claude for Desktop, Cursor, and Windsurf, enabling AI agents to access and process FPL information.
Installation:
pip install fpl-mcp
pip install "fpl-mcp[dev]"
pip install git+https://github.com/rishijatia/fantasy-pl-mcp.git
git clone https://github.com/rishijatia/fantasy-pl-mcp.git
cd fantasy-pl-mcp
pip install -e .
Running the Server:
fpl-mcp
python -m fpl_mcp
claude_desktop_config.json
to use the Python module directly or the full path to the installed command.Usage in Claude for Desktop:
Once configured, FPL tools will be available via the hammer icon. You can then make queries like:
Authentication (for features requiring FPL login):
Run fpl-mcp-config setup
to interactively set up your FPL email, password, and team ID. Credentials can be stored in ~/.fpl-mcp/config.json
, ~/.fpl-mcp/.env
, or as environment variables.
Q: What are the supported platforms? A: Claude Desktop, Cursor, Windsurf, and other MCP Compatible Desktop LLMs. Mobile is currently not supported.
Q: What are the requirements? A: Python 3.10 or higher, and Claude Desktop (for AI integration).
Q: How do I troubleshoot "spawn fpl-mcp ENOENT" error in Claude Desktop?
A: This error occurs if Claude Desktop cannot find the fpl-mcp
executable. Use the full path to the executable in your config or, preferably, use Python to run the module directly ("command": "python", "args": ["-m", "fpl_mcp"]
).
Q: Why does the server disconnect immediately?
A: Check logs (~/Library/Logs/Claude/mcp*.log
on macOS or %APPDATA%\Claude\logs\mcp*.log
on Windows), ensure all dependencies are installed, and try running manually with python -m fpl_mcp
to see errors.
Q: Why is the server not showing in Claude Desktop?
A: Restart Claude Desktop, verify claude_desktop_config.json
for correct JSON syntax, and ensure the path to Python or the executable is absolute.
Q: Are there any limitations? A: The FPL API is not officially documented and may change without notice. Only read operations are currently supported.
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
Mobile is currently not supported.
pip install fpl-mcp
pip install "fpl-mcp[dev]"
pip install git+https://github.com/rishijatia/fantasy-pl-mcp.git
git clone https://github.com/rishijatia/fantasy-pl-mcp.git
cd fantasy-pl-mcp
pip install -e .
After installation, you have several options to run the server:
fpl-mcp
python -m fpl_mcp
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 ENOENT
error 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.
For development and testing:
# If you have mcp[cli] installed
mcp dev -m fpl_mcp
# Or use npx
npx @modelcontextprotocol/inspector python -m fpl_mcp
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 gameweeksget_gameweek_status
- Get precise information about current, previous, and next gameweeksanalyze_player_fixtures
- Analyze upcoming fixtures for a player with difficulty ratingsget_blank_gameweeks
- Get information about upcoming blank gameweeksget_double_gameweeks
- Get information about upcoming double gameweeksanalyze_players
- Filter and analyze FPL players based on multiple criteriaanalyze_fixtures
- Analyze upcoming fixtures for players, teams, or positionscompare_players
- Compare multiple players across various metricscheck_fpl_authentication
- Check if FPL authentication is working correctlyget_my_team
- View your authenticated team (requires authentication)get_team
- View any team with a specific ID (requires authentication)get_manager_info
- Get manager details (requires authentication)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 adviceTo add new features:
fpl_mcp/fpl/resources/
fpl_mcp/fpl/tools/
__main__.py
file to register new resources and toolsTo use features requiring authentication (like accessing your team or private leagues), you need to set up your FPL credentials:
# Run the credential setup tool
fpl-mcp-config setup
This interactive tool will:
You can test your authentication with:
fpl-mcp-config test
Alternatively, you can manually configure authentication:
Create ~/.fpl-mcp/.env
file with:
FPL_EMAIL=your_email@example.com
FPL_PASSWORD=your_password
FPL_TEAM_ID=your_team_id
Or create ~/.fpl-mcp/config.json
:
{
"email": "your_email@example.com",
"password": "your_password",
"team_id": "your_team_id"
}
Or set environment variables:
export FPL_EMAIL=your_email@example.com
export FPL_PASSWORD=your_password
export FPL_TEAM_ID=your_team_id
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"]
}
}
}
If the server starts but immediately disconnects:
~/Library/Logs/Claude/mcp*.log
(macOS) or %APPDATA%\Claude\logs\mcp*.log
(Windows)python -m fpl_mcp
to see any errorsIf the hammer icon doesn't appear:
claude_desktop_config.json
has correct JSON syntaxThis project is licensed under the MIT License - see the LICENSE file for details.
Contributions are welcome! Please feel free to submit a Pull Request.
git checkout -b feature/amazing-feature
)git commit -m 'Add some amazing feature'
)git push origin feature/amazing-feature
)For more details, please refer to the CONTRIBUTING.md file.
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},
}
Reviews feature coming soon
Stay tuned for community discussions and feedback