Context7
Up-to-date docs for AI agents
Beschreibung vom Entwickler (englisches Original)
Research and manage a Fantasy Premier League team from any MCP-capable agent.
Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.
Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.
Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.
Du brauchst
Welche App nutzt du?
Wähle oben deine App. Wir merken sie uns, damit der Button beim nächsten Mal „In … installieren“ anzeigt.
Öffne Claude Desktop → Settings → Developer → Edit Config und füge dies in claude_desktop_config.json ein
{
"mcpServers": {
"fpl": {
"command": "uvx",
"args": [
"fantasy-premier-league-mcp"
]
}
}
}Führe das in deinem Terminal aus
claude mcp add fpl -- uvx fantasy-premier-league-mcpIn .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen
{
"mcpServers": {
"fpl": {
"command": "uvx",
"args": [
"fantasy-premier-league-mcp"
]
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
In .vscode/mcp.json in deinem Projekt einfügen
{
"servers": {
"fpl": {
"type": "stdio",
"command": "uvx",
"args": [
"fantasy-premier-league-mcp"
]
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
Dieser Server läuft auf deinem Computer, und ChatGPT kann sich nur mit Servern im Internet verbinden. Wähle eine andere App.
Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.
Diese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.
Läuft auf deinem Computer; die Tool-Liste erscheint nach der Installation in deiner KI-App.
Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 7. Nov. 2026
Der Registry-Name wurde mit dem GitHub-Konto anubabajide bestätigt, dem das Repo gehört
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieser Server läuft auf deinem Computer; es gibt keinen Endpunkt im Internet
Läuft auf deinem Computer und nutzt stattdessen lokale Einstellungen
Läuft auf deinem Computer; Tool-Listen können wir nur von Endpunkten im Internet lesen
Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.
Er hat 1 von 1 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.
Die Registry nennt keinen erforderlichen Schlüssel, manche Server bitten dich aber bei der ersten Nutzung, dich anzumelden.
Er läuft auf deinem Computer. Deine KI-App startet ihn bei Bedarf, und die Daten laufen nicht über die Server des Entwicklers (außer der Server ruft selbst einen Onlinedienst auf).
Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (0.3.2) kam gestern in die Registry.
Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Außerdem brauchst du Python (uv) auf deinem Computer.
In derselben Kategorie: Context7, Codebase Memory, Exa
Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.
So liest du eine Karte:★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti
Up-to-date docs for AI agents
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Connect AI agents to Exa for web search, content fetching, and multi-step research.
Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.
An MCP server for Fantasy Premier League that works with any MCP-capable agent — read your squad and stats, rank players, work out differentials, and make changes to your team. It is published in the official MCP Registry and works over either stdio or remote streamable HTTP.
This project is packaged on PyPI as fantasy-premier-league-mcp, rather than fpl-mcp, which is already owned by an unrelated project.
Install it with uv (recommended):
uv tool install fantasy-premier-league-mcp
Or run it without installing:
uvx fantasy-premier-league-mcp
fpl_login also needs a local Chromium installation. Install it once with:
uvx --from playwright playwright install chromium
For development, create a virtual environment and install the project:
uv sync --group dev
uv run playwright install chromium
Releases are published by GitHub Actions when a matching version tag is pushed. The workflow tests and builds the package, publishes it to PyPI using Trusted Publishing, then publishes the matching server.json to the official MCP Registry. No PyPI API token is stored in GitHub.
Before the first release, configure a PyPI pending Trusted Publisher with:
anubabajidefpl-mcprelease.ymlpypifantasy-premier-league-mcpCreate a protected GitHub environment named pypi (for example, require manual approval). Once that one-time setup is complete, publish a prepared version with:
git tag v0.3.2
git push origin v0.3.2
Playwright drives the one-off browser sign-in described under Authentication.
Any MCP-capable client can use this server. It speaks MCP over stdio by default, and can also run as a remote streamable-HTTP connector for agents that support remote MCP servers.
Point your agent at uvx:
{
"mcpServers": { "fpl": { "command": "uvx", "args": ["fantasy-premier-league-mcp"] } } }
Use that block in your client's MCP configuration — many clients accept a .mcp.json/.cursor/mcp.json file or offer a settings screen. Some clients call the top-level key servers instead of mcpServers; the fpl entry is the same. For a checked-out copy, point command at the project's Python and run python -m fpl_mcp.
Nothing is exposed off the machine in stdio mode. This is the safest option.
Agents that connect to remote MCP servers over HTTPS can use the built-in HTTP transport:
export FPL_MCP_SHARED_SECRET="$(python -c 'import secrets; print(secrets.token_urlsafe(32))')"
python -m fpl_mcp --http
Then put an HTTPS tunnel in front of it (for example cloudflared tunnel --url http://localhost:8000) and give the agent the resulting https://…/mcp URL as a custom connector.
HTTP mode refuses to start without `FPL_MCP_SHARED_SECRET` (16+ characters). These tools can transfer players and rewrite your lineup, so an open endpoint would let anyone who found the URL edit your team. Every request must carry Authorization: Bearer ; anything else gets a 401. Your machine has to be running for the connector to work.
For apps that install local MCP servers as bundles, fpl.mcpb is a zip containing the server, its dependencies and a bundled Python interpreter, plus a manifest.json. Install it through the app's extension UI. See the MCP Bundle setup notes for build, update and Chromium details.
The server is listed in the official MCP Registry as io.github.anubabajide/fpl, so registry-aware clients can find and install it directly.
Everything read-only works with no login at all. Only the three write tools (fpl_set_lineup, fpl_set_captain, fpl_make_transfers) need a session.
Sign in once: ask your agent to run fpl_login. It opens FPL's own sign-in page in a browser window on the machine running the server and returns promptly:
fpl_login call.The sign-in runs as an independent background task, so it keeps going even if the client gives up on the first call — your progress in the window is never thrown away. You sign in yourself; this server never sees your password. The session is kept as a refresh token in ~/.fpl-mcp/credentials.json, readable only by you, and access tokens are renewed with a single HTTPS request. No browser is involved after sign-in. You should not need to think about tokens again until the session itself lapses, at which point any write tool will tell you to run fpl_login again. fpl_auth_status can check whether a browser sign-in has finished.
If no browser window can be opened, fpl_login returns status awaiting_redirect_url with a sign_in_url. Open that link in any browser; after signing in, paste the address you land on back into fpl_login as redirect_url.
fpl_logout forgets the session and revokes it at FPL. fpl_auth_status reports the current state.
Because FPL's identity provider refuses that exchange. The site's OAuth client (bfcbaf69-aade-4c1b-8f00-c1cb8a193030, read from the FPL app bundle) is configured without the password grant:
POST https://account.premierleague.com/as/token
grant_type=password -> 400 unsupported_grant_type: "Invalid grant type: password"
The supported flow is authorization-code + PKCE in a browser, and account.premierleague.com rejects non-browser HTTP clients outright. So a real browser has to be involved somewhere. Doing it this way means the login is performed by you, on FPL's own page in a genuine browser window, and no FPL credentials are ever stored, read, or handled by this server. The authorization code is redeemed with a PKCE verifier held only in memory, and what is saved afterwards is a refresh token — not a password and not a browser profile.
If the login ever presents two-factor or a bot check, you complete it in that window like any other sign-in. Nothing is bypassed.
fpl_set_token still accepts a bearer token pasted by hand from DevTools, for machines where launching a browser is not an option. Such a token lasts about an hour, cannot renew itself, and is retained only until the server stops.
| Tool | What it does |
|---|---|
fpl_setup | Store your team id and a default mini-league id |
fpl_login | Sign in once in a browser window; the session is remembered |
fpl_logout | Forget the saved session |
fpl_auth_status | Check the session, renewing the token if needed |
fpl_set_token | Paste a token by hand (fallback) |
| Tool | What it does |
|---|---|
fpl_my_squad | Starting XI, bench, captain, formation, bank, free transfers remaining, held chips |
fpl_season_summary | Points, overall rank, rank by gameweek, chips, hits, past seasons |
fpl_gameweek_report | Per-player scoring for a gameweek, incl. bench and auto-subs; live or confirmed headline |
fpl_best_performers | Rank your own squad to see who is carrying and who is dead weight |
| Tool | What it does |
|---|---|
fpl_top_players | Best players in the game, filtered by position, club and price; ranked by metric or sort_by |
fpl_player | One player in depth: stats, fixtures, set pieces, injury news |
fpl_compare_players | Two or more players side by side |
fpl_search_players | Name lookup |
fpl_fixture_ticker | Clubs ranked by upcoming fixture difficulty |
| Tool | What it does |
|---|---|
fpl_export_players | Compact player-pool export as CSV — full pool or paged, unranked |
fpl_export_fixtures | Every fixture over a horizon, one row per team per match |
fpl_export_gameweek_history | Per-player, per-gameweek stats across finished gameweeks |
These return whole datasets rather than a ranked top-N, so a client can run its own optimiser. CSV is the default: the same data as JSON costs roughly five times the tokens.
The default player export is compact — about 22 columns — so it fits in a tool result. fields="standard" restores the broad optimiser set (62 columns), and fields="all" gives every raw column (112) with a size warning. Narrow further with ids, position, team, min_minutes or max_price, or page with offset/limit; the response carries has_more and next_offset.
Join fpl_export_fixtures to the player export on team_id to build per-player, per-gameweek projections. Blanks and doubles fall out of the shape: no row for a gameweek means a blank, two rows mean a double.
| Tool | What it does |
|---|---|
fpl_team_news | Manager, new signings, departures and injury flags, per club |
fpl_predicted_lineups | Confirmed XI if published, otherwise a derived prediction |
Managers come from the Premier League's own Pulse backend, joined to FPL on the pulse_id field FPL already ships. It is undocumented and unversioned, so when it does not answer the manager reads unknown rather than failing the call. Managers are not an FPL asset this season, so a change matters indirectly — rotation, set-piece duty, formation — not as points.
Signings and departures need no extra source: FPL's team_join_date is a real transfer feed, and its news text carries departures and loans verbatim.
Predicted lineups do not exist as data anywhere — they are editorial judgement. fpl_predicted_lineups therefore returns one of two things:
source: "confirmed" — the real team list, once the league publishes it about an hour before kickoff;source: "predicted" — a heuristic derived here, ranked on recent starts, minutes per appearance, availability, set-piece duty and price. Every pick carries its score_breakdown so you can disagree with the weighting.The season prior is split into rate and volume, because total minutes alone conflates "was injured" with "is not a starter". Odegaard started only 16 games last season but averaged 85 minutes in them — nearly identical to Rice's 88 — so scoring on totals alone dropped a nailed-on captain out of the XI. Minutes-per-start now carries more weight than starts, since fitness returns and a squad role does not.
Recent signings are scored on fee instead, since a July arrival has no club minutes and one from abroad has none recorded anywhere. Those rows are flagged new_signing. Because they score on absent evidence rather than on merit, any who miss the XI are listed separately under new_signings_not_predicted — left to the ranking alone they would fall off the bottom and read as "not considered", when the truth is "cannot be judged".
Nothing here can see a new manager's preferences, pre-season friendlies, or a press conference.
| Tool | What it does |
|---|---|
fpl_differentials | Both directions — see below |
fpl_league_standings | A mini-league table and your position in it |
| Tool | What it does |
|---|---|
fpl_set_captain | Move the armband, keeping the XI as-is |
fpl_set_lineup | Set the full XI, bench order, captain and vice; may play Bench Boost or Triple Captain |
fpl_make_transfers | Transfer players in and out, optionally on a wildcard or free hit |
fpl_differentials answers the question in both directions, which is what you asked for:
Nur der Anfang wird gezeigt; den Rest findest du im Repo