fpl-context-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DRY_RUN | No | Set to true/1/yes to run without writing to PostgreSQL. | false |
| DATABASE_URL | Yes | Read-only PostgreSQL connection string for the query_historical_stats tool. Example: postgresql://fpl_readonly:password@localhost:5432/fpl | |
| MCP_AUTH_TOKEN | No | HTTP transport only (--transport http): if set, /mcp requests must include Authorization: Bearer <token>. | |
| DATABASE_ETL_URL | No | PostgreSQL read/write connection string used by the fpl-context-ingest-match job. Falls back to DATABASE_URL if not set. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_live_availabilityA | Current FPL injury, suspension and availability flags, fetched live from the FPL API. Call this before recommending, picking or captaining any player, so a newly flagged or suspended player isn't missed. With no arguments it lists every player who currently has a flag, newest news first. Pass player names to check specific players (returned even when fully available), and/or statuses to filter. Status codes: a available, d doubtful, i injured, s suspended, u unavailable (left club / on loan), n not in squad. chance_of_playing is FPL's estimate for the next round. |
| get_current_gameweekA | The current and next FPL gameweek and the transfer deadline, live from the FPL API. Use it to anchor 'this week' / 'next week' questions and to say how long a manager has left to make transfers. |
| get_fixturesA | FPL fixtures with difficulty ratings (FDR, 1 easiest to 5 hardest), live from the FPL API. With no arguments lists the next 5 gameweeks for every team. Pass team to see one team's run from its own point of view, gameweek for a single round, or gameweeks_ahead for a longer window. |
| search_playersA | Find and rank current-season FPL players, live from the FPL API: by name, team, position and maximum price, sorted by a chosen stat. Returns price, total points, form, ownership, FPL's expected points for the next gameweek (ep_next) and availability status. Use it for 'best midfielders under £8m', 'how is Palmer doing', or to find a replacement. |
| get_manager_squadA | A manager's FPL squad for a gameweek, with captain, bench, bank, squad value, transfers and the chips they have used, looked up by their FPL team ID (live from FPL's public API, no login needed). The team ID is the number in the URL of the manager's FPL Points page. Use it as the starting point for transfer, captain and chip advice on their actual team. |
| get_fixture_runA | How easy or hard a team's next few fixtures are, live from the FPL API: average FDR (1 easiest, 5 hardest), home/away split, and blank or double gameweeks. Pass team for its fixture-by-fixture run; omit it to rank all 20 teams, easiest run first. Prefer this over get_fixtures when judging transfers, captaincy or chip timing. |
| get_xptsA | Rank players by estimated expected points (xPts) for a gameweek, live from the FPL API. A transparent baseline built from season xG/xA/clean-sheet/save/bonus rates, expected minutes, availability and fixture difficulty, shown beside FPL's own ep_next. Filter by position, team and max price. Good for captain shortlists and finding transfer targets; it is noisy early in the season and ignores rotation, so cross-check availability with get_live_availability. |
| get_player_historyA | A player's match-by-match record this season (minutes, goals, assists, clean sheets, bonus, xG/xA, points), optionally only against one opponent or the last N matches, plus their season totals for past seasons. Live from the FPL API. Use it for 'how has Saka done against Spurs this season' or 'is his form real'. FPL provides match-level data for the current season only; past seasons are totals, so opponent splits for earlier seasons do not exist. |
| get_gameweek_statsA | Every player's stats for one gameweek, ranked (default: the latest gameweek with results, sorted by points). Live from the FPL API. Use it for 'top scorers last week', 'which defenders kept clean sheets in GW9' or 'who got the most bonus'. Filter by position and team. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| captain_pick | Recommend a captain, vice-captain and differential for a gameweek. |
| transfer_plan | Plan one or two transfers using fixture runs, expected points and availability. |
| chip_timing | Decide when to play Wildcard, Free Hit, Bench Boost and Triple Captain. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| glossary | Status codes, FDR, positions and which tool answers what. |
TDQS
Scored across 9 tools
Most tools have clearly distinct targets: availability, gameweek timing, player search, squad lookup, player history, and gameweek stats. The main overlap is get_fixtures versus get_fixture_run, both covering fixture difficulty, and to a lesser degree search_players versus get_xpts for player ranking; the descriptions explicitly guide usage, but an agent could still hesitate.
All tool names use consistent snake_case with a clear verb_noun pattern (get_current_gameweek, search_players, get_manager_squad, get_player_history). The single search_ prefix is still a standard verb and fits the same predictable convention.
Nine tools is well-scoped for an FPL context server, covering distinct query areas without obvious filler. Each tool appears to earn its place in the analytical workflow.
The surface covers the core FPL context needs: availability, current gameweek, fixtures/FDR, player search, xPts, player history, gameweek stats, and manager squad. Minor gaps remain, such as mini-league standings or more explicit player/team detail views, but agents can work around most questions with the existing tools.