liga-record-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LIGA_RECORD_SQUAD | No | Path to a custom squad YAML file. Overrides the default data/squad.yaml. Point this at a different file to run a second team. | |
| LIGA_RECORD_COACHES | No | Path to a custom coaches YAML file. Overrides the default data/coaches.yaml. Holds the 18 selectable coaches. |
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_squadB | The 23 players under contract, with the money around them. Carries |
| get_playerA | Find one squad player by id, or by name (partial and accent-insensitive). Returns the match, or every candidate when the query is ambiguous — never a guess, since acting on the wrong player is worse than asking again. |
| search_squadA | Filter the squad. This searches the 23 players already owned, not the transfer market — the market needs the live source that step 4 adds. |
| validate_selectionA | Check a team sheet against §6.13, §6.17 and §10.3(l). Bench order matters — the first substitute listed is the first to come on. This is authoritative: trust it over your own count of the formation. |
| simulate_autosubsA | Apply the §11 automatic substitutions to a team sheet.
|
| check_transferA | Check one swap against §6.4 and §6.8. The incoming player is described by hand because there is no market data
yet — step 4 replaces these arguments with a lookup. |
| project_priceB | What a player's quote does if they score Scores of 1, 2 or 3 are not covered by the regulation and are treated as no movement — say so if it matters to the answer. |
| search_marketA | Search the whole Liga Record player market, not just the squad.
This one reads the live site, so it is the only tool here whose answer can change without anyone editing a file. Results are cached for 15 minutes — quotes only move when a round is scored. |
| check_market_transferA | Check a real transfer: one squad player out, one market player in. Both are player ids. Unlike check_transfer, the incoming player's price and position come from the live market rather than being described by hand — so the budget arithmetic uses their actual quote. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| pick_starting_xi | Work through this round's team sheet. |
| plan_transfers | Think through this round's transfer. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| regulation | The rules, generated from the constants the code actually enforces. |
| squad_sheet | The current squad as a readable document. |
TDQS
Scored across 9 tools
Each tool has a clear and distinct purpose. check_transfer vs check_market_transfer and search_squad vs search_market are differentiated by their descriptions, preventing confusion. The others (get, validate, simulate, project) are uniquely scoped.
All tool names follow a consistent verb_noun pattern (check_transfer, get_squad, search_market, etc.), using lowercase with underscores. No mixed conventions or inconsistent verb usage.
Nine tools cover the core operations of a fantasy football assistant without redundancy. Each tool serves a distinct function, and the count is neither too sparse nor overwhelming for the domain.
The toolset covers reads, searches, validation, simulation, and pricing projections, but lacks an explicit 'execute transfer' or 'update squad' action. However, given the assistant's advisory role, this is a minor gap that doesn't hinder typical workflows.