Skip to main content

AI-powered Fantasy Premier League MCP server — captain picks, transfer suggestions, player comparison, chip strategy, and more

Project description

FPL Intelligence — MCP Server

PyPI version CI License: MIT Python 3.12+ MCP Downloads

Turn Claude into your FPL analyst. Captain picks, transfer advice, rival scouting, chip timing, league predictions — powered by real-time FPL data.

FPL Intelligence MCP server

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 uv path with which 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.comPoints → 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

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fpl_intelligence-0.20.0.tar.gz (254.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fpl_intelligence-0.20.0-py3-none-any.whl (84.7 kB view details)

Uploaded Python 3

File details

Details for the file fpl_intelligence-0.20.0.tar.gz.

File metadata

  • Download URL: fpl_intelligence-0.20.0.tar.gz
  • Upload date:
  • Size: 254.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for fpl_intelligence-0.20.0.tar.gz
Algorithm Hash digest
SHA256 52af9847955c2ef7f8c11825dffaec5e3c76e4b587c45c5622efb8b613191888
MD5 9d8f4591a833b7c292518c9533d356f3
BLAKE2b-256 d455f6b77556c9327aa23a94cb25c1e422a6f11cfb917042a198fe58cd6791d2

See more details on using hashes here.

Provenance

The following attestation bundles were made for fpl_intelligence-0.20.0.tar.gz:

Publisher: publish.yml on dohyung1/x402-fpl-api

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fpl_intelligence-0.20.0-py3-none-any.whl.

File metadata

File hashes

Hashes for fpl_intelligence-0.20.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9e5740e84ae5d0d2eb2b81e424495dd1fc2db4d9e45c582ef2f07e9e1781faa4
MD5 a5a77a3b8f9ad4ea2480ba33b89bc393
BLAKE2b-256 77e5069022ed6eec1fc9c2a29c18046369839cad1dad05a1d904b7d20f162652

See more details on using hashes here.

Provenance

The following attestation bundles were made for fpl_intelligence-0.20.0-py3-none-any.whl:

Publisher: publish.yml on dohyung1/x402-fpl-api

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page