Australian Football League (AFL) statistics and data MCP server with match data, player stats, Brownlow Medal voting, lineups, and weather information
AFL MCP has well-structured tool definitions with consistent naming (verb_noun pattern), complete input schemas with types and descriptions, and clear parameter constraints (enums for competitions). However, tool descriptions are brief (avg ~80 chars, below the 194-char baseline), lack WHEN-to-use guidance, and output schemas are not documented. Error handling is minimal, no recovery guidance or actionable error messages. Admin tools (backfill, recalculate) lack dry-run confirmation patterns despite being destructive. No tool annotations (readOnlyHint/destructiveHint) despite clear risk stratification.
Backfill historical match data for a range of seasons from external sources
Backfill Brownlow Medal voting data for a range of seasons from AFL Tables source
Recalculate Player Adjusted Value (PAV) for all seasons in the database
Recalculate Player Adjusted Value (PAV) for a specific season
Retrieve administrative status information about the server including sync state and data freshness
Manually trigger a synchronization of match data from external sources
Retrieve Brownlow Medal voting data for a specific season or player
Tool descriptions are too brief (avg ~80 chars vs 194-char baseline). Missing WHEN-to-use guidance and prerequisites. E.g., 'get_player_stats' lacks context on match_id vs season filtering trade-offs.
Output schemas are not documented. LLMs cannot plan downstream calls or extract required fields. E.g., get_matches returns match data but no schema shows what fields are included or whether match_id is present for chaining.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | 2025-06-18+ | v2 |
Retrieve the competition ladder (standings) for a specific season and competition
Retrieve player lineups for a specific match including positions and emergency/substitute status
Retrieve observed or forecast weather data for a specific match
Retrieve AFL matches with optional filtering by season, round, competition, team, or date range
Retrieve detailed information about a player including career statistics and biographical data
Retrieve player statistics for a specific match or season with optional filtering
Retrieve information about an AFL team including season records and statistics
Destructive admin tools (admin_backfill, admin_backfill_brownlow, admin_recalculate_pav, admin_recalculate_all_pav) lack confirmation or dry-run patterns. dryRun param exists on backfill tools but not on recalculate tools, creating inconsistency.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Tools are clearly stratified by risk (READ_ONLY vs WRITE) but this is not exposed to the MCP client, forcing LLMs to infer safety from names alone.
Error handling is minimal. No recovery guidance, actionable error messages, or error classification (retryable vs user-fixable vs fatal). E.g., if a match_id is invalid, the LLM receives no hint to call get_matches first.