touchlinewire
Use the MCP server’s exposed tools to query Premier League standings, lineups, fixtures, injuries, club/set-piece data, and tactical previews/reports.
Get the 20-club Premier League table with points, goal difference, goals, and 5-match form.
Retrieve predicted starting XIs, formations, benches, and confidence ratings for one club or all 20.
Check injury updates, chance of playing, and manager quotes, optionally filtered by club.
List fixtures by gameweek and/or club.
Browse club managers, stadiums, capacities, colors, and set-piece specialists.
Fetch match reports with lineups, event timelines, xG, possession, and forecast accuracy.
View set-piece taker hierarchies for penalties, free kicks, and corners, all clubs or one club.
Rank clubs by fixture difficulty over 1–10 upcoming matches, sorted easiest/hardest, optionally by club.
Get pre-match tactical previews for a home/away matchup with formation clash, manager records, availability, and form.
Provides Premier League tactical intelligence and match data, including standings, predicted starting XIs, injury reports, fixtures, match reports with xG and event timelines, set-piece takers, fixture difficulty ratings, and pre-match tactical previews.
This server has a remotely hosted endpoint. Open its connector listing for connection details, authentication requirements, and setup instructions:
Touchline Wire FPL & Premier League MCP Server ⚽
Zero-authentication Model Context Protocol (MCP) server providing live 2026/27 Fantasy Premier League (FPL) expected minutes (
Start %), Gameweek captaincy picks,<10%differentials,≤£6.5mbudget value enablers, live transfer momentum & bandwagon traps, plus RoboKlopp predicted Starting XIs, medical injury wires, PGMOL referee dossiers, match reports, and standings.
Powered by Touchline Wire (Ouroborean Software Ltd). Zero API keys or sign-ups required. Available as both a zero-install Remote HTTP endpoint (https://touchlinewire.com/mcp) and a local stdio npm package (npx -y touchlinewire-mcp).
📖 Documentation & Quickstart Guide: steven-robinson.github.io/touchlinewire-mcp | Interactive REST API & OpenAPI 3.0 Docs
⚡ Quickstart
Option 1: Zero-Install Remote HTTP MCP (https://touchlinewire.com/mcp)
Connect directly over Streamable HTTP (MCP 2025-03-26) with zero local runtime:
# Claude Code CLI
claude mcp add --transport http touchlinewire https://touchlinewire.com/mcpOr in .cursor/mcp.json / vscode / mcp.json:
{
"mcpServers": {
"touchlinewire": {
"url": "https://touchlinewire.com/mcp"
}
}
}Option 2: Local stdio Package (npx -y touchlinewire-mcp)
Add to claude_desktop_config.json, Cursor, Gemini CLI, or Antigravity:
{
"mcpServers": {
"touchlinewire": {
"command": "npx",
"args": ["-y", "touchlinewire-mcp"]
}
}
}Related MCP server: mcp-football-data
🌟 Available Tools (16)
Tool Name | Description | Key Arguments |
| Complete 2026/27 FPL Gameweek Scout Briefing: captains, RoboKlopp |
|
| Filter 2026/27 FPL player picks by scout mode, club, position, max price ( |
|
| Live Gameweek transfers in/out, price risers/fallers, and Bandwagon Trap alerts (injuries, doubts, |
|
| Audit a 15-man FPL squad or transfer shortlist for RoboKlopp |
|
| Verified RoboKlopp predicted Starting 11, formation, bench, and AI Tactical Confidence rating for a club. |
|
| Complete slate of all 20 predicted Starting 11s and tactical formations for the upcoming Gameweek. | None |
| Live Premier League injury wire, medical recovery status, chance of playing %, and press conference quotes. |
|
| Hierarchy of set-piece specialists: primary/backup penalties, direct free-kicks, and corners across all 20 clubs. |
|
| Upcoming Fixture Difficulty Ratings (FDR 1–5) ranking all 20 clubs easiest to hardest (next 3–10 matches). |
|
| Official 2026/27 20-club Premier League standings, points, goal difference, and 5-match form guide. | None |
| Upcoming Premier League matchday calendar with kickoff ISO dates and home/away pairings. |
|
| Complete directory of all 20 clubs: 2026/27 managers, stadiums, primary colors, and capacities. | None |
| Pre-match tactical preview: predicted formation clash, manager H2H, and form guide. |
|
| Post-match tactical reports: confirmed lineups, chronological event timeline, xG, and possession stats. |
|
| PGMOL Select Group 1 referee statistical dossiers: yellow/red cards/match, fouls, penalty rate, and club bias. |
|
| Tier 1–4 rated Premier League transfer rumours with club positional depth needs. |
|
💡 Example FPL & Tactical Prompts
"Audit my FPL squad [Haaland, Saka, Palmer, Isak, Gabriel, Raya] for expected minutes, 4-yellow-card tightropes, and best GW10 captain."
"Give me the top 5 nailed FPL differentials under 10% ownership and under £6.5m with set-piece duties."
"Which most-transferred-in FPL players this Gameweek are injury or suspension bandwagon traps?"
"Who is predicted to start for Arsenal and Liverpool this weekend, and who is on penalties?"
📄 License & Attribution
Data provided live by Touchline Wire. Licensed under MIT. Free for personal, commercial, research, and agentic workflows with attribution.
Available Tools
16 toolsaudit_fpl_playersARead-onlyIdempotentInspect
Audit a list of FPL player names (e.g. a user's 15-man squad or transfer shortlist) for RoboKlopp expected minutes (Start %), next fixture FDR, injury/doubt flags, 4-yellow-card suspension tightrope risk, set-piece duties, and expected points (ep_next).
| Name | Required | Description | Default |
|---|---|---|---|
| players | Yes | List of player names to audit (e.g. ['Haaland', 'Saka', 'Palmer', 'Isak']) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is covered. The description adds real value by disclosing the exact analytical payload returned, which matters because there is no output schema. It does omit what happens with unknown or ambiguous player names, which is the main remaining behavioral gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence with the resource and the use case front-loaded, followed by the metric list. Every enumerated metric is informative rather than filler, so the length is justified, though the parenthetical metric list is slightly harder to scan than a short bulleted structure would be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter aggregator with no output schema, the description does the necessary work by naming the returned fields. What is missing is failure behavior for unresolvable names and whether results are returned in input order, which an agent would need to interpret the response correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and there is a single well-described 'players' array, so the schema carries the load; the description's inline example ('Haaland', 'Saka') merely echoes the schema's own example. It adds no guidance on name-matching tolerance or whether full names vs. surnames are accepted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ('Audit') and resource ('a list of FPL player names') and enumerates exactly which metrics are produced (Start %, FDR, injury flags, suspension risk, set-piece duties, ep_next). This makes the aggregating nature clear against siblings like get_injuries or get_set_piece_takers, though it never explicitly says how it differs from chaining those tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied through concrete scenarios ('a user's 15-man squad or transfer shortlist'), which tells an agent the intended context. However, there is no explicit when-not guidance and no mention of the sibling tools an agent might otherwise call for the same underlying data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_all_lineupsARead-onlyIdempotentInspect
Retrieve the complete slate of all 20 Premier League predicted formations, starting XIs, and tactical confidence scores for the current gameweek.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, closed-world and non-destructive, so the safety profile is covered. The description adds useful scope context (all 20 clubs, current gameweek only, includes confidence scores), but says nothing about payload size, caching freshness, or what happens outside a live gameweek.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the resource list and scope arrive before any qualifier.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read with no output schema, the description names the returned data types and the time scope, which is enough to invoke it correctly. A brief note on what 'tactical confidence scores' look like would fully close the gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing to disambiguate and the baseline of 4 applies; the description's 'current gameweek' note usefully explains why no gameweek argument is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (retrieve), a precise resource (predicted formations, starting XIs, tactical confidence scores), and a clear scope ('complete slate of all 20 Premier League'). The 'all 20' framing implicitly distinguishes it from the singular get_predicted_lineup sibling, so an agent can choose without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'For the current gameweek' implies the usage context, but the description never states when to prefer this over get_predicted_lineup (single team) or get_fpl_gameweek_briefing, nor any exclusion such as 'no historical gameweeks'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_clubsARead-onlyIdempotentInspect
List all 20 Premier League clubs with official managers, stadium names, capacities, primary club colors, and designated set-piece specialists (corners, free kicks, penalties).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered. The description adds genuine behavioral value on top: it discloses that the result set is complete (all 20 clubs, so no paging or filtering behavior to plan for) and that each record carries several joined attributes. It does not state which season the data reflects or whether it is static, which keeps it out of 5 territory.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the verb and scope first, followed by a compact field inventory. Every element earns its place, since with no output schema the field list is the only description of the return value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters and no output schema, the description carries the full burden of describing the response, and it does so by naming the five attribute groups returned. For a simple static reference tool this is close to sufficient. The remaining gap is that nothing says which season or snapshot the club data represents, or whether set-piece specialists can be null.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate and the baseline of 4 applies. The description correctly implies the call requires no arguments by framing the output as the full list of 20 clubs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ("List") and resource ("all 20 Premier League clubs") and enumerates exactly what each record contains: managers, stadium names, capacities, colors, and set-piece specialists. That is enough for an agent to know it is a bulk club-reference lookup. It stops short of a 5 because it never distinguishes itself from the overlapping sibling get_set_piece_takers, which presumably also surfaces set-piece personnel.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use statement, no prerequisites, and no named alternative. The overlap with get_set_piece_takers is left unresolved, so an agent looking for penalty/corner takers cannot tell which of the two tools to call. The only implicit signal is "all 20", which suggests a complete unfiltered dump, but that is inference rather than guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fixture_difficultyBRead-onlyIdempotentInspect
Retrieve upcoming Fixture Difficulty Ratings (FDR) ranking Premier League clubs by easiest to toughest schedule over upcoming matches (3 to 10 fixtures) with home/away difficulty tags (1=easiest, 5=hardest).
| Name | Required | Description | Default |
|---|---|---|---|
| club | No | Filter schedule difficulty to a single club (e.g. 'arsenal') | |
| sort | No | Sort ordering of ranked clubs (default: 'easiest') | |
| window | No | Number of upcoming matches to analyze (default: 5) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds the rating scale semantics (1=easiest, 5=hardest) and the home/away tagging, which is genuine added context, but it says nothing about what is returned or how the rating is computed. It also states a '3 to 10 fixtures' window while the schema permits 1-10, creating ambiguity about valid behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence that leads with the verb and resource, with no filler. It is dense with stacked parentheticals (FDR, scale, window range), which hurts scannability slightly but nothing is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description carries the burden of explaining the return value; it names the ranking and difficulty tags but not the actual fields an agent would receive. Given a simple 3-parameter read-only tool this is close to adequate, but the window-range mismatch and missing return detail leave gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters are already documented with examples, enum values and defaults; baseline is 3. The description's window range ('3 to 10') actually conflicts with the schema's minimum of 1 and default of 5, which slightly undermines rather than adds meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Retrieve upcoming Fixture Difficulty Ratings (FDR)') plus the output shape: clubs ranked easiest to toughest with home/away difficulty tags on a 1-5 scale. It does not name or differentiate against siblings like get_fixtures or get_fpl_gameweek_briefing, so an agent must infer the boundary itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the FDR framing signals 'use this to compare schedule difficulty', but there is no explicit when-to-use, when-not-to-use, or pointer to an alternative tool. An agent could reasonably confuse it with get_fixtures for fixture listing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fixturesARead-onlyIdempotentInspect
List Premier League matchday calendar fixtures with local kickoff ISO dates, gameweek numbers, and home/away pairings. Can filter by gameweek number and/or club.
| Name | Required | Description | Default |
|---|---|---|---|
| club | No | Optional club name to filter fixtures (e.g. 'liverpool') | |
| gameweek | No | Optional specific gameweek number (e.g. 7, 8) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds meaningful value beyond that by specifying the shape of the returned records (local kickoff ISO dates, gameweek numbers, home/away pairings) in the absence of an output schema, though it says nothing about season scope or ordering.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences with zero filler: the listing scope and returned fields come first, followed by the filter options. Nothing is repeated and nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, fully annotated two-parameter read tool with no output schema, the description covers purpose, filterable dimensions, and returned fields adequately. Minor gaps remain around whether only the current season is covered, whether past fixtures are included, and any result ordering.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters and their examples are already documented in structured data. The description's only addition is that filters can be combined ('and/or'), which is a small but real clarification beyond the schema; the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('List Premier League matchday calendar fixtures') and enumerates the data returned (kickoff ISO dates, gameweek numbers, home/away pairings). It is clearly distinguishable from sibling tools like get_fixture_difficulty or get_match_preview, though it never names them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the agent can infer it lists fixtures for a gameweek and/or club. There is no explicit when-to-use statement, no exclusions, and no pointer to alternatives such as get_fixture_difficulty or get_match_preview when richer per-match context is needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fpl_gameweek_briefingARead-onlyIdempotentInspect
Retrieve the live 2026/27 Fantasy Premier League (FPL) Gameweek Scout Briefing: top captaincy picks, RoboKlopp expected minutes (Start %), sub-10% differentials, <=£6.5m budget enablers, Gameweek transfer momentum, and injury/4-yellow-card bandwagon trap warnings.
| Name | Required | Description | Default |
|---|---|---|---|
| gameweek | No | Optional Gameweek number (1-38). Defaults to the active upcoming Gameweek. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is fully carried by structured fields. The description adds that the data is 'live' (freshness context) and that the output is a composite briefing, but says nothing about how often it refreshes, whether 'live' lags the official API, or what happens for a future/finished gameweek. Some added value, but not rich behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence with the verb and resource first, then the content breakdown. It is dense with domain jargon (RoboKlopp, differentials, bandwagon trap) but every clause names a distinct returned section, so little is wasted; a short second sentence on default gameweek behavior would have been a better investment than some of the jargon.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does the work of enumerating the return payload's sections, which is the key missing piece for an aggregate read tool. For a single optional-parameter, read-only, closed-world call the definition covers nearly everything an agent needs; only the freshness/lag caveat and the no-argument default are left implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the single gameweek parameter's 1-38 range and 'defaults to active upcoming Gameweek' behavior are fully documented in the schema. The description never mentions the parameter at all, so it adds no meaning beyond the schema – baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Retrieve) and a well-defined resource (live 2026/27 FPL Gameweek Scout Briefing) and then enumerates exactly what the briefing contains: captaincy picks, expected minutes, differentials, budget enablers, transfer momentum, and trap warnings. This distinctively separates it from narrower siblings such as get_fpl_picks and get_fpl_transfer_trends, which cover only one slice each.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the content list – an agent can infer this is the aggregate 'one-stop' FPL call – but there is no explicit when-to-use or when-not-to-use statement, and no routing to get_fpl_picks / get_fpl_transfer_trends for single-topic queries. It also does not say whether to prefer this over those siblings when both would answer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fpl_picksBRead-onlyIdempotentInspect
Filter 2026/27 FPL player recommendations by mode ('differentials', 'value', 'captains', 'xmins'), club slug, position ('GK', 'DEF', 'MID', 'FWD'), max price (£m), and max ownership (%).
| Name | Required | Description | Default |
|---|---|---|---|
| club | No | Optional club slug or short code (e.g. 'arsenal', 'liverpool', 'man-city') | |
| mode | No | Scout mode (default: 'differentials') | |
| position | No | Optional FPL position filter | |
| max_price | No | Optional maximum price in £m (e.g. 6.5) | |
| max_ownership | No | Optional maximum TSB % ownership (e.g. 10.0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the description's burden is reduced, yet it adds essentially no behavioral context of its own. It never says how many recommendations come back, in what order they are ranked, what each mode actually selects for, or what 'xmins' means, so the agent learns nothing beyond the structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single front-loaded sentence with no filler, and the season and resource appear before the filter list. The parenthetical enumerations duplicate the schema slightly, which is minor redundancy rather than bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's purpose, all five optional parameters, and the season context in one sentence, but the mode semantics ('xmins', 'captains') remain unexplained, which matters for a recommendations tool with no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all five parameters including the club slug format and the enum values, making 3 the baseline. The description restates those enums and units rather than adding meaning, such as what distinguishes 'differentials' from 'value' or 'captains', or how max_ownership interacts with mode.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Filter') and a specific resource ('2026/27 FPL player recommendations'), and enumerates the filter dimensions, which is enough to distinguish it from sibling tools like get_fpl_transfer_trends or audit_fpl_players. It stops short of explicitly contrasting those closest siblings, so it is clear but not fully differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the agent can infer this is the tool for getting filtered player recommendations, but nothing states when to prefer it over audit_fpl_players or get_fpl_transfer_trends. There are no exclusions, prerequisites, or notes that all filters are optional and combine conjunctively.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fpl_transfer_trendsBRead-onlyIdempotentInspect
Retrieve live 2026/27 FPL Gameweek transfer momentum: most transferred-in players, most transferred-out players, price risers/fallers, and Bandwagon Trap warnings for injured, doubtful, or 4-yellow-card tightrope assets.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of rows per category (default: 15) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds meaningful context beyond them: 'live' signals fresh/non-cached data, and it names the specific derived signals returned, including 'Bandwagon Trap warnings' for injured, doubtful, or 4-yellow-card assets. It stops short of saying how fresh 'live' is or how the trap warnings are computed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with verb and resource, then a compact enumeration of output categories. Every clause carries information; the only minor cost is that the trailing 'Bandwagon Trap' clause is dense jargon that could be slightly clearer.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity tool with one optional parameter and no output schema, the description does the necessary work by listing what comes back across the four categories. The absence of any usage guidance is the only real completeness gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single 'limit' parameter is fully documented in the schema as rows per category with a default of 15. The description adds nothing about limit, which is acceptable at this coverage level, but it also doesn't clarify that the limit applies uniformly across the four categories.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Retrieve') plus a precise resource ('live 2026/27 FPL Gameweek transfer momentum') and then enumerates the four return categories. That level of detail makes it distinguishable from sibling get_transfer_rumours (real-world news) even though the sibling is not named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use, when-not-to-use, or alternative-tool guidance at all. An agent must infer from the domain wording that this is for fantasy-manager transfer-decision context rather than news, and nothing tells it whether to prefer get_fpl_gameweek_briefing or get_transfer_rumours for adjacent questions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_injuriesARead-onlyIdempotentInspect
Retrieve live Premier League injury telemetry, medical room updates, chance of playing percentages, and press conference manager quotes. Can optionally be filtered by club.
| Name | Required | Description | Default |
|---|---|---|---|
| club | No | Optional club name or slug to filter injuries (e.g. 'arsenal', 'chelsea') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is covered without description help. The description adds that the data is 'live' telemetry, which usefully signals freshness expectations, but says nothing about latency, caching, or coverage (all clubs vs. a subset). With annotations carrying the behavioral load, this is adequate rather than rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the resource and its payload, followed by the filtering constraint. Nothing is redundant and no sentence fails to earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read tool with full annotation coverage, the description is nearly complete, and by enumerating injury telemetry, chance-of-playing percentages, and manager quotes it effectively stands in for the missing output schema. The only gap is the absence of any statement about data freshness/scope or how it relates to lineup-based siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single optional 'club' parameter is documented in the schema with the same examples ('arsenal', 'chelsea'). The description's 'can optionally be filtered by club' matches the schema without adding new meaning, so the baseline 3 applies — though it is a small credit that the optionality is restated at the top level for quick scanning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('Retrieve live Premier League injury telemetry') and enumerates the concrete content returned: medical room updates, chance of playing percentages, and press conference manager quotes. No sibling tool covers injuries, so an agent can distinguish it immediately from get_predicted_lineup, get_all_lineups, and the FPL tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the agent must infer that this is the tool for injury/news lookups while lineups and fixtures live elsewhere. There is no explicit when-to-use statement and no named alternative or exclusion (e.g. whether chance-of-playing percentages overlap with get_predicted_lineup or get_fpl_picks).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_match_previewARead-onlyIdempotentInspect
Retrieve pre-match tactical dossiers for upcoming fixtures: predicted formation clash (e.g. 4-3-3 vs 5-4-1), manager tactical records, expected starter matchups, medical availability, and 5-game form guide.
| Name | Required | Description | Default |
|---|---|---|---|
| away_club | Yes | Away club name or slug (e.g. 'chelsea', 'spurs', 'aston-villa') | |
| home_club | Yes | Home club name or slug (e.g. 'arsenal', 'liverpool', 'man-city') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is fully covered. The description adds the relevant scope constraint (pre-match/upcoming only) and what categories of data come back, but says nothing about failure behavior for unknown clubs, fixture-not-found cases, data freshness, or caching.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence: the verb and resource come first, followed by an enumerated payload list that is dense but each item is informative. No filler or repetition, though the parenthetical formation example is slightly expendable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description is the only source of return-value information, and it enumerates the dossier components well enough for an agent to know what it gets. Its only real gap is scope limits (which leagues, how far in advance fixtures are covered) and behavior when the fixture cannot be resolved.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with example values for both home_club and away_club, so the schema carries parameter meaning entirely. The description adds no format guidance beyond implying that home/away orientation matters for the matchup analysis, which is the baseline expectation rather than added value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Retrieve') and a precisely scoped resource ('pre-match tactical dossiers for upcoming fixtures'), then enumerates the payload: formation clash, manager records, starter matchups, medical availability, and 5-game form. The contents overlap heavily with siblings like get_predicted_lineup, get_injuries, and get_match_report, but the description never names or contrasts those siblings, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the phrase 'for upcoming fixtures', which signals this is a pre-match tool rather than a post-match one. There is no explicit statement of when to prefer this composite dossier over the narrower siblings (get_predicted_lineup, get_injuries, get_match_report), nor any exclusion such as league coverage or how far ahead fixtures are available.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_match_reportBRead-onlyIdempotentInspect
Retrieve comprehensive tactical match reports with official starting lineups, chronological event timelines (goals, cards, substitutions), xG, possession, and Touchline Wire lineup forecast accuracy.
| Name | Required | Description | Default |
|---|---|---|---|
| club | No | Club name or slug to get the latest match for (e.g. 'arsenal', 'chelsea') | |
| latest | No | Set to true to get the latest match across the entire Premier League | |
| fixture_id | No | Official match fixture ID (e.g. 1557417) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so safety needs no restating. The description adds useful content disclosure (what sections come back), but omits behaviorally relevant facts: whether a report exists for an unplayed fixture, what precedence applies when multiple selector params are passed, and what happens with no arguments.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the contents enumerated immediately after the verb; nothing is buried. Minor padding from marketing-flavored words ('comprehensive', 'official', 'Touchline Wire'), but no sentence is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Since there is no output schema, the description correctly takes on the job of naming the returned sections, and it does so reasonably well. However, for a tool with three optional selectors and no required parameters, it leaves the selection semantics and the pre/post-match availability condition unexplained, which is the missing piece an agent needs to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and each of the three parameters carries its own explanation with examples, so the baseline of 3 applies. The description adds no parameter-level meaning beyond the schema — notably it does not clarify the mutual exclusivity or precedence of 'club', 'latest', and 'fixture_id', which is the main semantic ambiguity here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ('Retrieve') and resource ('tactical match reports') and enumerates the payload: lineups, event timeline, xG, possession, forecast accuracy. It is clear what the tool returns, but it never contrasts itself with the adjacent get_match_preview or get_all_lineups siblings, so the agent must infer that this is the post-match, full-detail variant.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance at all: nothing says this is for completed matches rather than upcoming ones, nothing distinguishes it from get_match_preview, and nothing explains how to choose among the mutually exclusive 'club', 'latest', and 'fixture_id' selectors. With zero required parameters, the agent is left to guess what happens if it supplies none or several.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_predicted_lineupARead-onlyIdempotentInspect
Get the verified predicted tactical Starting 11, formation, starting player names and positions, bench options, and AI Tactical Confidence rating for a Premier League club ahead of kickoff.
| Name | Required | Description | Default |
|---|---|---|---|
| club | Yes | Club name or slug (e.g. 'arsenal', 'liverpool', 'chelsea', 'man-city', 'spurs', 'aston-villa') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world behavior, so the safety profile is covered. The description adds real value beyond that by enumerating what the response contains, including bench options and a confidence rating, which matters because no output schema exists. Gaps remain around failure modes such as an unknown club slug or a club with no upcoming fixture, and around how 'verified' and 'predicted' data freshness are determined.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single front-loaded sentence that leads with the verb and resource, and every listed item describes a distinct part of the payload. The enumerative style is dense but earns its length; minor tightening is possible but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read tool with full schema coverage and no output schema, the description is mostly sufficient because it outlines the returned fields. What is missing is the edge-case behavior (invalid slug, no fixture scheduled) and differentiation from get_all_lineups, which an agent needs in a crowded lineup-related sibling set. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single 'club' parameter already carries example slugs in the schema itself. The description adds no format guidance, normalization rules, or fallback behavior beyond what the schema states. Baseline 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Get') and a precise resource set: predicted Starting 11, formation, player names and positions, bench options, and an AI Tactical Confidence rating, scoped to a Premier League club ahead of kickoff. An agent can tell this is a pre-match prediction tool rather than a historical or actual-lineup tool. It stops short of naming the nearest sibling (get_all_lineups) explicitly, so the distinction is inferable rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'ahead of kickoff' implies the pre-match usage window, which is genuinely useful context. However, there is no explicit when-to-use or when-not-to-use guidance, and no routing statement against get_all_lineups or get_match_preview, both of which an agent could plausibly pick instead. Usage is implied rather than directed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_premier_league_tableARead-onlyIdempotentInspect
Retrieve the official 20-club Premier League standings including points, matches played, goal difference, goals scored/conceded, and 5-match form guide.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered. The description adds that the data is 'official' and fixed at 20 clubs, but says nothing about freshness/caching, season selection, or whether the table is live versus end-of-matchday — the one behavioral detail that would matter for a standings tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the verb and resource first, followed by the payload contents. Every clause earns its place and nothing is repeated from the annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of describing return values and does so by listing the key columns, which is sufficient for an agent to know what it gets back. It stops short of noting whether position/rank is included or how the form guide is encoded, a minor gap for a zero-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is no parameter semantics to explain; the baseline of 4 applies. The description does not need to compensate for any schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Retrieve) and resource (official 20-club Premier League standings) and enumerates the returned data points (points, matches played, goal difference, goals for/against, 5-match form). No sibling tool in the list covers league standings, so an agent can distinguish it immediately from fixtures, clubs, or match-level tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the resource name — an agent asking for league position or table data will land here — but the description never states when to prefer it over siblings like get_clubs or get_fixture_difficulty, nor any exclusions. Adequate but leaves routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_refereesARead-onlyIdempotentInspect
Retrieve 2026/27 PGMOL Select Group 1 Premier League referee statistical dossiers (yellow/red cards per match, fouls, penalty rate, strictness index, and club disciplinary bias).
| Name | Required | Description | Default |
|---|---|---|---|
| referee | No | Optional referee slug (e.g. 'michael-oliver', 'anthony-taylor') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and a closed-world scope, so the safety profile is covered. The description adds real value beyond that by enumerating the metrics in each dossier (cards per match, fouls, penalty rate, strictness index, club bias), letting the agent judge payload fit before calling. It does not say whether one or all referees come back, which is the remaining behavioral gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; every clause contributes scope or payload content. The parenthetical metric list is dense but justified given there is no output schema, though it does make the sentence long to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly takes on the job of describing returned fields, and it does so thoroughly while pinning the season and referee cohort. The only missing piece is the default behavior when 'referee' is not supplied.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single optional 'referee' slug param is fully documented with examples in the schema, so the baseline is a 3. The description does not explain what happens when the parameter is omitted (presumably all Select Group 1 referees), which is the one semantic detail the schema leaves open.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Uses a specific verb (Retrieve) and a precisely scoped resource (2026/27 PGMOL Select Group 1 Premier League referee statistical dossiers), so an agent knows exactly what domain of data is returned. It does not name or contrast with any sibling, but the subject matter is distinct enough from fixtures, lineups, and tables that confusion is unlikely.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the subject matter — an agent looking for referee discipline tendencies would pick this — but there is no explicit when-to-use statement, no mention of when a referee argument is warranted, and no alternatives referenced. Nothing misleading, just unsaid.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_set_piece_takersARead-onlyIdempotentInspect
Retrieve the authoritative hierarchy of set-piece specialists for Premier League clubs: primary and backup penalty takers, direct free-kick takers, and corner specialists ordered by manager priority.
| Name | Required | Description | Default |
|---|---|---|---|
| club | No | Optional Premier League club name or slug (e.g. 'arsenal', 'chelsea', 'liverpool'). If omitted, returns all 20 clubs. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so safety needs no restatement. The description does add behavior beyond that: results are an 'authoritative hierarchy' ordered 'by manager priority', telling the agent that ordering carries meaning rather than being incidental. It stops short of stating freshness or whether the ranking is depth-chart or estimated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence with the verb and resource first, followed by an enumeration that earns its space by defining scope. Slightly dense but free of filler or restated title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter lookup with no output schema, the description conveys enough about return shape (a per-club hierarchy of primary/backup takers by category, priority-ordered) to set expectations. It does not describe per-player fields, but with no output schema that is a minor gap rather than a blocking one.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single 'club' parameter already documents accepted forms (name or slug) and the omit-to-get-all-20 behavior. The description adds no parameter meaning beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb ('Retrieve') plus a precisely scoped resource ('authoritative hierarchy of set-piece specialists'), enumerated into penalty takers (primary/backup), direct free-kick takers, and corner specialists. The purpose is unmistakable, but it never names or contrasts a sibling, so differentiation is left implicit by topic rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer you call this when you need dead-ball duties for a club. There is no explicit when-to-use framing, no exclusion of adjacent tools like get_predicted_lineup (which may also surface takers), and no stated prerequisites or staleness caveats.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_transfer_rumoursARead-onlyIdempotentInspect
Retrieve 2026/27 Premier League transfer rumours rated Tier 1-4 by source reliability, enriched with club positional depth needs and incumbent starter benchmarks.
| Name | Required | Description | Default |
|---|---|---|---|
| club | No | Optional club slug (e.g. 'arsenal', 'liverpool', 'spurs') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the safety profile (readOnly, idempotent, non-destructive, closed-world), so the description's job is to add data-shape context — which it does by disclosing the season scope, the Tier 1-4 source-reliability rating, and the positional-depth/starter-benchmark enrichment. It does not state result volume, pagination, or whether unfiltered calls return the full rumour set, which keeps it below a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence with no filler; the season, competition, resource, and enrichment are all delivered immediately. The trailing 'enriched with...' clause is dense but earns its place by describing returned content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, single-optional-parameter lookup with no output schema, the description covers the essentials: season, resource, reliability tiering, and enrichment fields. Missing only volume/pagination expectations and any acknowledgement of the club filter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single 'club' parameter is already documented with example slugs in the schema. The description never mentions that results can be filtered by club at all, so it adds no meaning beyond the structured field — the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('Retrieve 2026/27 Premier League transfer rumours') and adds qualifying detail about tiering and enrichment, which clearly separates it from siblings like get_fpl_transfer_trends or get_match_preview. It does not explicitly name an alternative, so it stops short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the subject matter — an agent can infer this is the tool for transfer speculation rather than FPL trend data or match previews. There is no explicit when-to-use statement, no exclusions, and no mention of when a sibling such as get_fpl_transfer_trends would be preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
9 tool updates
v1.2.0- Added
audit_fpl_players - Changed
get_all_lineups1 field changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Changed
get_clubs1 field changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Added
get_fpl_gameweek_briefing - Added
get_fpl_picks - Added
get_fpl_transfer_trends - Changed
get_premier_league_table1 field changed- removed
Input schema / $schemaRemoved value: -"http://json-schema.org/draft-07/schema#"
- Added
get_referees - Added
get_transfer_rumours
10 tool updates
v1.1.0- First observed
get_all_lineups - First observed
get_clubs - First observed
get_fixture_difficulty - First observed
get_fixtures - First observed
get_injuries - First observed
get_match_preview - First observed
get_match_report - First observed
get_predicted_lineup - First observed
get_premier_league_table - First observed
get_set_piece_takers
TDQS
Scored across 16 tools
Most tools target distinct resources or actions, and the split between pre-match previews, post-match reports, one-club lineups, and all-club lineups is clear from descriptions. Minor overlap remains between get_clubs and get_set_piece_takers, and between the FPL briefing and the more specific FPL pick/trend tools, but an agent can usually select correctly.
Almost all tools use snake_case get_<noun> naming, making the set predictable. audit_fpl_players is the only clear verb deviation, which is a minor inconsistency rather than a readability problem.
The 16 tools cover many football and FPL subtopics, and each appears to have a distinct purpose. The count is slightly above the ideal 3-15 range, but it is reasonable for the breadth of data offered.
The surface covers fixtures, standings, previews, lineups, injuries, post-match reports, set pieces, referees, transfers, and FPL workflows. There are minor gaps around general player/team profile data or live in-match data, but core workflows are well covered.
Maintenance
Related MCP Connectors
API-Football MCP — comprehensive soccer/football data
Provides access to live sports data and analytics from BALLDONTLIE: The Sports API
Sportmonks Football MCP — wraps the Sportmonks Football v3 API (docs.sportmonks.com/football).…
Football-Data.org MCP — soccer competitions, matches, standings
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceProvides programmatic access to comprehensive football statistics and live match data via API-Football, enabling applications to retrieve league standings, team fixtures, player statistics, and real-time match events.6-
- AlicenseNot gradedqualityBmaintenanceAccess football (soccer) data including competitions, matches, standings, and team details via the Football-Data.org API.469 npm2MIT
- AlicenseNot gradedqualityBmaintenanceProvides comprehensive soccer/football data including standings, team search, league search, match predictions, and head-to-head records via the API-Football service.301 npmMIT
- AlicenseNot gradedqualityCmaintenanceProvides tools and resources to interact with the Fantasy Premier League API, enabling player analysis, fixture insights, and team management through natural language.45 npmMIT