AI-powered Fantasy Premier League MCP server — captain picks, transfer suggestions, player comparison, chip strategy, and more
Project description
FPL Intelligence — MCP Server
Turn Claude into your FPL analyst. Captain picks, transfer advice, rival scouting, chip timing, league predictions — powered by real-time FPL data.
Quick Start
Step 1 — Install
Requires Python 3.12+.
pip install fpl-intelligence
Step 2 — Connect to Claude Desktop
fpl-intelligence --setup
Step 3 — Restart Claude Desktop
Quit (Cmd+Q on macOS) and reopen. Look for fpl under the MCP servers icon (hammer icon).
Step 4 — Ask Claude anything about FPL
"Analyze my FPL team 5456980 — who should I captain, who should I transfer in, and when should I use my chips?"
That's it. Bank balance, free transfers, and chips are all auto-detected from your team ID.
Where's my team ID?
Go to fantasy.premierleague.com → click Points → grab the number from the URL:
https://fantasy.premierleague.com/entry/YOUR_TEAM_ID/event/30
Your league ID is in the mini-league URL:
https://fantasy.premierleague.com/leagues/YOUR_LEAGUE_ID/standings/c
12 Tools
| Tool | What it does |
|---|---|
fpl_manager_hub |
Full personalized analysis — captain, transfers, differentials, fixtures, price risks |
captain_pick |
Top 5 captain picks scored by form, xG, fixtures, and ICT index |
transfer_suggestions |
Who to bring in and ship out based on your squad and budget |
player_comparison |
Head-to-head compare 2-4 players across every metric |
is_hit_worth_it |
Should you take a -4? Projects net points over N gameweeks |
chip_strategy |
Optimal gameweek for each chip — factors in DGW predictions |
differential_finder |
Hidden gems outperforming their ownership |
fixture_outlook |
Teams ranked by upcoming fixture difficulty |
price_predictions |
Who's rising and falling tonight |
live_points |
Live score, projected bonus, auto-sub scenarios |
rival_tracker |
Spy on mini-league rivals — differentials, weaknesses, predicted moves |
league_analyzer |
Win probabilities for your league — who's the favourite and why |
squad_scout |
Deep scout using FPL's hidden data — ep_next, set pieces, suspension risks |
Example Prompts
"Give me the full breakdown on team 5456980 — captain, transfers, everything"
"I have 2 free transfers and 1.5m in the bank. Who should I bring in?"
"Salah vs Palmer vs Saka — who's the best pick for the next 5 gameweeks?"
"I want to bring in Haaland for a -4. Is it worth the hit?"
"I still have my bench boost and triple captain. When should I use them?"
"Find me some differentials under 3% ownership that are actually returning points"
"It's 60 minutes into the games — how's my team doing? Any auto-subs?"
"Show me everything about mini-league 1189955 — who's going to win?"
"How do I beat my rivals in league 1189955? I'm team 5456980"
"Which players are about to drop in price tonight? I need to sell before the deadline"
"Scout my squad — who's nailed, who's at risk of rotation, any suspension danger?"
How It Works
FPL Intelligence connects to the official FPL API — the same free, public data that powers the FPL website. All data is real-time. See the full FPL API reference on Postman for endpoint documentation.
The server runs locally on your machine and talks to Claude Desktop via MCP. No API keys, no accounts, no data leaves your machine except FPL API calls.
Install from Source
git clone https://github.com/dohyung1/x402-fpl-api.git
cd x402-fpl-api
uv sync
Then use the full absolute path to uv and the repo in your Claude Desktop config:
{
"mcpServers": {
"fpl": {
"command": "/full/path/to/uv",
"args": ["run", "--directory", "/full/path/to/x402-fpl-api", "mcp_server.py"]
}
}
}
Find your
uvpath withwhich uv(e.g./Users/you/.cargo/bin/uv).
Troubleshooting
FPL API calls are blocked / 403 errors
The FPL API blocks requests that don't look like they come from a browser.
Test if the API is reachable:
curl -s -o /dev/null -w "%{http_code}" \
-H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)" \
https://fantasy.premierleague.com/api/bootstrap-static/
Returns 200? The API works — the issue is likely Claude Desktop's sandbox (see below). Returns 403? Your network is blocking it.
Claude Desktop sandbox: Claude Desktop may prompt you to approve network access to fantasy.premierleague.com. If you dismissed this, restart Claude Desktop and watch for the prompt. Check logs at ~/Library/Logs/Claude/ (macOS).
VPN / corporate network: Some networks block *.premierleague.com. Try disconnecting from VPN or switching to a personal network.
FPL API downtime: The API goes down around deadline time and between seasons (June-July). Test in your browser: fantasy.premierleague.com/api/bootstrap-static/
Server won't start / "Failed to spawn process" / command not found
First try re-running the auto-setup:
fpl-intelligence --setup
If that doesn't work, set it up manually:
Step 1 — Find the binary:
find ~ -name "fpl-intelligence" -type f 2>/dev/null
Step 2 — Use the full path in your config:
{
"mcpServers": {
"fpl": {
"command": "/full/path/to/fpl-intelligence"
}
}
}
Step 3 — Make sure you're editing the right config file:
# macOS — open the file directly
open ~/Library/Application\ Support/Claude/claude_desktop_config.json
# Windows
notepad %APPDATA%\Claude\claude_desktop_config.json
Step 4 — Fully quit and reopen Claude Desktop (Cmd+Q on macOS, not just close the window).
Still not working? Check Claude Desktop's logs for errors:
- macOS:
~/Library/Logs/Claude/ - Windows:
%APPDATA%\Claude\logs\
Python version error: Requires Python 3.12+. Check with python3 --version.
Invalid team_id errors
Use your FPL team ID (a number like 5456980), not your username. Find it at fantasy.premierleague.com → Points → check the URL.
Still stuck?
Open an issue with your OS, Python version, the error message, and the output of the curl test above.
Contributing
See CONTRIBUTING.md for development setup and guidelines.
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fpl_intelligence-0.21.0.tar.gz.
File metadata
- Download URL: fpl_intelligence-0.21.0.tar.gz
- Upload date:
- Size: 256.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f3d2eafc49dd1cbd06f028a646d8f069466d7cca5b7599534055e058ddda43de
|
|
| MD5 |
1afc59b5528461d77b54deb63633fc9c
|
|
| BLAKE2b-256 |
a736ca43ab59ee93547173dac24f572062a8bbede0a88b88d3779006518eeee2
|
Provenance
The following attestation bundles were made for fpl_intelligence-0.21.0.tar.gz:
Publisher:
publish.yml on dohyung1/x402-fpl-api
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fpl_intelligence-0.21.0.tar.gz -
Subject digest:
f3d2eafc49dd1cbd06f028a646d8f069466d7cca5b7599534055e058ddda43de - Sigstore transparency entry: 1166935228
- Sigstore integration time:
-
Permalink:
dohyung1/x402-fpl-api@ef318806759458fad1116e54958552264c6a7c6f -
Branch / Tag:
refs/tags/v0.21.0 - Owner: https://github.com/dohyung1
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ef318806759458fad1116e54958552264c6a7c6f -
Trigger Event:
release
-
Statement type:
File details
Details for the file fpl_intelligence-0.21.0-py3-none-any.whl.
File metadata
- Download URL: fpl_intelligence-0.21.0-py3-none-any.whl
- Upload date:
- Size: 85.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
285c732b5979a38988bb41aaa7235f20760e0807f931f6423ec04910b7200f5c
|
|
| MD5 |
c00c76542993c582ca88d56eccbf91df
|
|
| BLAKE2b-256 |
2987e1621ff4e02a2beb7c7ba26daf1cbc73f85d9c7f2e83f3fe66459f9b6f1d
|
Provenance
The following attestation bundles were made for fpl_intelligence-0.21.0-py3-none-any.whl:
Publisher:
publish.yml on dohyung1/x402-fpl-api
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fpl_intelligence-0.21.0-py3-none-any.whl -
Subject digest:
285c732b5979a38988bb41aaa7235f20760e0807f931f6423ec04910b7200f5c - Sigstore transparency entry: 1166935293
- Sigstore integration time:
-
Permalink:
dohyung1/x402-fpl-api@ef318806759458fad1116e54958552264c6a7c6f -
Branch / Tag:
refs/tags/v0.21.0 - Owner: https://github.com/dohyung1
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ef318806759458fad1116e54958552264c6a7c6f -
Trigger Event:
release
-
Statement type: