mcp-fpl
Provides tools for accessing Fantasy Premier League and Premier League data via the public FPL API, including fixtures with difficulty ratings, live scores and events, team and player details, mini-league standings, league history, squad information, and in-league player ownership.
Click on "Deploy 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., "@mcp-fplhow is my squad doing in this gameweek's live scores?"
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.
mcp-fpl
Fantasy Premier League tools as an MCP server — plus a small page where members of your mini-league get their own API key, already linked to their team. Data comes live from the keyless public FPL API.
Tool | |
| gameweek schedule with FDR difficulty and kickoff times |
| live scores, events, and how your players are doing right now |
| Premier League teams and strength ratings |
| any player: price, form, ownership, availability, next fixtures |
| your picked squad for a gameweek |
| your classic mini-leagues |
| a mini-league table |
| how standings/squads in a league changed over time (needs Postgres + |
| ownership inside a mini-league |
| your key's client and default team/league |
| admin only |
"My" team and league come from the caller's key: fpl: {entry_id, league_id} in the
clients file, or the team a /mcp/join key was issued for. An explicit entry_id /
league_id argument always wins. There is no server-wide default, so nobody gets someone
else's team by accident.
Part of the Jarvis tool servers; built on jarvis-mcp-kit (API keys, rate limits, logs).
Self-service keys — /mcp/join
Members of the leagues in FPL_LEAGUES open https://<host>/mcp/join, type their entry id,
team name or name, and get a key with a ready-to-paste connector URL and Claude Code command.
No proof of ownership (league tables are public) — instead: one active key per team (a new one
revokes the old, after a confirmation), 10 attempts per IP per hour, and a notification for
every key to JOIN_NOTIFY_WEBHOOK_URL. Revoke with the admin tool or
mcp-fpl keys revoke <entry_id>; list with mcp-fpl keys list.
Related MCP server: fpl-strategy-mcp
Storage and jobs
With DATABASE_URL (its own Postgres database and login) the server caches reference data and
league squad scans, keeps a permanent daily league history, and stores issued keys. Without it
caches stay in memory, history is unavailable and keys go to $MCP_FPL_DATA_DIR/keys.json.
mcp-fpl collect # today's league snapshot for every league in FPL_LEAGUES (cron 04:00)
mcp-fpl warm-cache # refresh the current gameweek's squad scans (every few hours)
mcp-fpl backfill # rebuild per-gameweek history from the FPL API (once, after deploy)Run
cp .env.example .env # FPL_LEAGUES, DATABASE_URL, MCP_PUBLIC_URL, …
cp config/clients.example.yaml config/clients.yaml
uv run jarvis-mcp-keys new me --servers fpl --set fpl.entry_id=1234567 --set fpl.league_id=765432
uv run --env-file .env mcp-fpl serve # http://localhost:8010/mcp/fpl, /mcp/joinKubernetes: deploy/kubernetes.yaml (Deployment, Service, CronJobs, Ingress for /mcp/fpl
and /mcp/join).
Connect
Claude app (custom connector): easiest via
/mcp/join; or URLhttps://<host>/mcp/fpl/jvk_…Claude Code:
claude mcp add --transport http fpl https://<host>/mcp/fpl --header "Authorization: Bearer jvk_…"Jarvis: an entry in its
config/subagents.yaml.
Variable | |
| leagues to collect/warm and to accept on |
| Postgres for caches, history, issued keys |
| base URL shown on the join page |
| where to POST |
| join page switches |
| cache freshness |
This server cannot be deployed
Maintenance
Related MCP Connectors
Fantasy Premier League predictions, fixture difficulty, team news and your own FPL team and leagues.
FPL data, points predictions, and transfer, captain and chip advice for any team.
Fantasy Premier League tools: rate a team, captains, player points, fixtures, injuries. No login.
Fantasy Premier League (FPL) assistant: one clear call on captain, transfers and chips.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables interaction with Fantasy Premier League data through natural language queries. Supports retrieving fixtures, league standings, player performance, and other FPL statistics via the official FPL API.6169 npm3MIT
- FlicenseNot gradedqualityCmaintenanceEnables Fantasy Premier League squad management with custom tools for player search, fixture outlook, tier classification, hit math, and chip timing, all using public FPL data without requiring login credentials.1-
- AlicenseNot gradedqualityCmaintenanceEnables reading and scoring Fleaflicker fantasy football leagues, including rosters, standings, matchups, boxscores, draft boards, and stat line scoring using league-specific rules, with no authentication required.MIT
- AlicenseNot gradedqualityCmaintenanceProvides tools and resources to interact with the Fantasy Premier League API, enabling player analysis, fixture insights, and team management through natural language.44 npmMIT