Context7
Up-to-date docs for AI agents
作者による説明(英語の原文)
Research and manage a Fantasy Premier League team from any MCP-capable agent.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"fpl": {
"command": "uvx",
"args": [
"fantasy-premier-league-mcp"
]
}
}
}ターミナルでこれを実行します
claude mcp add fpl -- uvx fantasy-premier-league-mcpプロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"fpl": {
"command": "uvx",
"args": [
"fantasy-premier-league-mcp"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"fpl": {
"type": "stdio",
"command": "uvx",
"args": [
"fantasy-premier-league-mcp"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月7日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント anubabajide で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(0.3.2)がレジストリに届いたのは昨日です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにPython (uv)も必要です。
同じカテゴリには:Context7, Codebase Memory, Exa
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
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.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
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:
冒頭だけを表示しています。続きはリポジトリで読めます