Fantasy Pl Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Fantasy Pl Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
<a href="https://glama.ai/mcp/servers/2zxsxuxuj9"> <img width="380" height="200" src="https://glama.ai/mcp/servers/2zxsxuxuj9/badge" />
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-mcppip install "fpl-mcp[dev]"pip install git+https://github.com/rishijatia/fantasy-pl-mcp.gitgit 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-mcppython -m fpl_mcpConfigure 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.
#### Fantasy-PL MCP Usage Instructions
#### Basic Commands:
#### Advanced Features:
#### Tips:
For development and testing:
# If you have mcp[cli] installed
mcp dev -m fpl_mcp
# Or use npx
npx @modelcontextprotocol/inspector python -m fpl_mcpfpl://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 gameweekssearch_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 gameweekget_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 gameweeksget_gameweek_live_scores - Live player points and stats while matches are being playedget_dream_team - The official highest-scoring XI for a gameweeksuggest_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 historyget_league_standings - Get standings for a classic league (requires authentication)get_league_analytics - Analyze a league's managers, ownership trends, and performanceplayer_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 toolsFPL 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:
~/.fpl-mcp/credentials.encGetting your refresh token:
copy(JSON.parse(localStorage.getItem(Object.keys(localStorage).find(k=>k.startsWith('oidc.user:')))).refresh_token)(If Chrome refuses, type allow pasting in the console first.) The refresh token is now on your clipboard — paste it when prompted.
https://fantasy.premierleague.com, copy the whole JSON value of the key starting with oidc.user: and paste that instead — setup extracts the refresh_token field 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:
~/.fpl-mcp/.env file with: FPL_REFRESH_TOKEN=your_refresh_token
FPL_TEAM_ID=your_team_id~/.fpl-mcp/config.json: {
"refresh_token": "your_refresh_token",
"team_id": "your_team_id"
} export FPL_REFRESH_TOKEN=your_refresh_token
export FPL_TEAM_ID=your_team_idNote: refresh tokens can be rotated or revoked by FPL. If authentication starts failing, re-run fpl-mcp-config setup with a freshly copied token.If FPL changes its OIDC client or endpoints, you can override the defaults with environment variables (all optional):
| Variable | Default |
|---|---|
FPL_OIDC_CLIENT_ID | 1f243d70-a140-4035-8c41-341f5af5aa12 |
FPL_OIDC_AUTHORITY | https://account.premierleague.com/as |
FPL_TOKEN_URL | <FPL_OIDC_AUTHORITY>/token |
#### 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:
{
"mcpServers": {
"fantasy-pl": {
"command": "/full/path/to/your/venv/bin/fpl-mcp"
}
}
} {
"mcpServers": {
"fantasy-pl": {
"command": "python",
"args": ["-m", "fpl_mcp"]
}
}
}#### 2. Server disconnects immediately
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 errors#### 3. Server not showing in Claude Desktop
If 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},
}~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.