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 or Pinecone. The server logs a DRY RUN MODE warning and tools return descriptions of would-be actions. | false |
| DATABASE_URL | Yes | PostgreSQL read-only connection string for the query_historical_stats tool. Example: postgresql://fpl_readonly:password@localhost:5432/fpl | |
| MCP_AUTH_TOKEN | No | Bearer token required for HTTP transport (--transport http). If set, all /mcp requests must include Authorization: Bearer <token>. Leave empty only when bound to localhost. | |
| DATABASE_ETL_URL | No | PostgreSQL read/write connection string used by the ingest_match_data job. Falls back to DATABASE_URL if not set. | |
| GUARDIAN_API_KEY | No | The Guardian Open Platform API key. Optional but recommended; without it, press content ingestion skips Guardian articles and uses only BBC Sport. | |
| PINECONE_API_KEY | Yes | Pinecone API key for the query_press_conferences tool and press content ingestion. Must have access to an index configured with the multilingual-e5-large model. | |
| PINECONE_INDEX_NAME | No | Pinecone index name. Defaults to 'fpl-context'. | fpl-context |
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
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| query_historical_statsA | Execute a read-only SQL SELECT against the FPL stats database. Use this to answer questions about player stats, fixtures, team strength, or gameweek history for the seasons in the database. Available tables (read-only). The current season is fully populated; past seasons
exist only as season totals in seasons — id, label (e.g. '2025/26'), start_year, is_current teams — season_id, fpl_id, name, short_name, strength, strength_attack_home/away, strength_defence_home/away gameweeks — season_id, gw_number (1–38), deadline_time, is_current, is_next, is_finished, average_entry_score, highest_score players — season_id, fpl_id, team_fpl_id, first_name, second_name, web_name, position (GKP/DEF/MID/FWD), now_cost, form, total_points, minutes, goals_scored, assists, clean_sheets, expected_goals, expected_assists, ict_index, status, news fixtures — season_id, fpl_id, gw_number, kickoff_time, home_team_fpl_id, away_team_fpl_id, home_score, away_score, finished, home_team_difficulty, away_team_difficulty gw_player_stats — season_id, player_fpl_id, gw_number, fixture_fpl_id, opponent_team_fpl_id, was_home, minutes, goals_scored, assists, clean_sheets, bonus, total_points, expected_goals, expected_assists, ict_index, starts Notes:
Join hint: teams.fpl_id = players.team_fpl_id (current season, same season_id). |
| query_press_conferencesA | Semantic search over Premier League press conference summaries, match reports, and player injury/availability updates ingested from BBC Sport and The Guardian. Use this to find recent quotes, injury news, or manager/team news. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 2 tools
The two tools are completely distinct in purpose: one executes SQL queries on structured stats data, the other performs semantic search over press conference text. There is zero overlap, so an agent can unambiguously select the correct tool.
Both tools follow the exact same 'query_' + noun pattern (query_historical_stats, query_press_conferences). This is a perfectly consistent and predictable naming convention.
With only 2 tools, the surface is thin, but it matches the narrow scope of providing FPL context (stats and news). It sits at the borderline where the count is low but arguably sufficient for the server's stated purpose.
The two tools cover the core needs of an FPL context server: historical/current stats via SQL and recent news/availability via press conferences. Minor gaps exist (e.g., no dedicated tool for current standings or transfers), but the SQL tool can be used to derive much of that, so the surface is largely complete.