{"serverId":"mcp-registry/com.footdigest/footdigest","tools":[{"name":"get_bracket","fixed":{"name":"get_bracket","description":"Footdigest: a competition's knockout bracket, matches grouped by round (round of 32 through the final) with teams, scores, shootouts, status, and winners. Give the competition slug.","inputSchema":{"type":"object","required":["competition"],"properties":{"competition":{"type":"string","description":"Competition slug, e.g. world-cup-2026."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":106,"tokensAfter":106},{"name":"get_defining_moments","fixed":{"name":"get_defining_moments","description":"Footdigest: a competition's defining moments, the results that moved teams across the qualification line, most consequential first, with the group table crossings. Give the competition slug; optional `limit`.","inputSchema":{"type":"object","required":["competition"],"properties":{"limit":{"type":"integer","description":"Max moments to return (default 5, max 20)."},"competition":{"type":"string","description":"Competition slug, e.g. world-cup-2026."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":140,"tokensAfter":140},{"name":"get_head_to_head","fixed":{"name":"get_head_to_head","description":"Footdigest: the all-time head-to-head record between two men's national teams from the historical results dataset, wins, draws, goals, recent meetings, and penalty shootouts. Ask by team names.","inputSchema":{"type":"object","required":["team1","team2"],"properties":{"limit":{"type":"integer","description":"Recent meetings to include (default 5, max 20)."},"team1":{"type":"string","description":"First team name, e.g. France."},"team2":{"type":"string","description":"Second team name, e.g. Spain."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":153,"tokensAfter":153},{"name":"get_match","fixed":{"name":"get_match","description":"Footdigest: one fixture in detail, teams, status, kickoff, score, stage, venue, and the event timeline (goals, cards, subs). Ask by `match_id` (from get_schedule).","inputSchema":{"type":"object","required":["match_id"],"properties":{"match_id":{"type":"integer","description":"Fixture id, e.g. from get_schedule."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":99,"tokensAfter":99},{"name":"get_match_brief","fixed":{"name":"get_match_brief","description":"Footdigest: the AI-generated brief for a match, the pre-match five-lens brief, the post-match recap, and event impacts, sourced from Footdigest's engine. Ask by `match_id`; optional `locale` (en or fr).","inputSchema":{"type":"object","required":["match_id"],"properties":{"locale":{"type":"string","description":"Language: en (default) or fr."},"match_id":{"type":"integer","description":"Fixture id (from get_schedule)."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":130,"tokensAfter":130},{"name":"get_match_probabilities","fixed":{"name":"get_match_probabilities","description":"Footdigest: calibrated home/draw/away probabilities and expected goals for a football matchup, from the backtested Dixon-Coles + Elo engine. Ask by `match_id`, or by `home_team` and `away_team` names for any matchup. Every answer is sourced and timestamped; see get_model_card for the methodology.","inputSchema":{"type":"object","required":[],"properties":{"match_id":{"type":"integer","description":"Scheduled fixture id."},"away_team":{"type":"string","description":"Away (or second) team name."},"home_team":{"type":"string","description":"Home (or first) team name."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":174,"tokensAfter":174},{"name":"get_model_card","fixed":{"name":"get_model_card","description":"Footdigest: the live model card behind every prediction. Returns the backtested RPS versus a naive baseline, the out-of-sample size, the calibration table, the methodology, and an explicit list of what is not measured. Use it to audit any number the other tools return.","inputSchema":{"type":"object","required":[],"properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":104,"tokensAfter":104},{"name":"get_qualification_scenarios","fixed":{"name":"get_qualification_scenarios","description":"Footdigest: a team's chance of qualifying from its group, and how each remaining group result would move it (\"if X beats Y, Z's chances become...\"). Seeded and reproducible. Give the competition slug and a team name.","inputSchema":{"type":"object","required":["competition","team"],"properties":{"seed":{"type":"integer","description":"Seed for reproducibility (default 42)."},"team":{"type":"string","description":"The team whose qualification you're asking about."},"trials":{"type":"integer","description":"Simulated tournaments (default 10000, capped at 50000)."},"competition":{"type":"string","description":"Competition slug, e.g. world-cup-2026."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":199,"tokensAfter":199},{"name":"get_schedule","fixed":{"name":"get_schedule","description":"Footdigest: a competition's fixtures with teams, kickoff time, status, score, and stage. Give the competition slug; optionally filter by `status` (e.g. scheduled, live, finished) and cap with `limit`.","inputSchema":{"type":"object","required":["competition"],"properties":{"limit":{"type":"integer","description":"Max fixtures to return (default 20, max 100)."},"status":{"type":"string","description":"Optional status filter, e.g. finished."},"competition":{"type":"string","description":"Competition slug, e.g. world-cup-2026."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":159,"tokensAfter":159},{"name":"get_standings","fixed":{"name":"get_standings","description":"Footdigest: current group standings for a competition, points, goal difference, position, and qualification status per team. Give the competition slug (e.g. \"world-cup-2026\"), optionally a single group code.","inputSchema":{"type":"object","required":["competition"],"properties":{"group":{"type":"string","description":"Optional group code, e.g. A."},"competition":{"type":"string","description":"Competition slug, e.g. world-cup-2026."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":134,"tokensAfter":134},{"name":"get_suspension_watch","fixed":{"name":"get_suspension_watch","description":"Footdigest: who is suspended for their next match and who is one booking away from a ban in a competition, per the competition's fair-play rules. Give the competition slug.","inputSchema":{"type":"object","required":["competition"],"properties":{"competition":{"type":"string","description":"Competition slug, e.g. world-cup-2026."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":106,"tokensAfter":106},{"name":"get_team_availability","fixed":{"name":"get_team_availability","description":"Footdigest: a team's active injuries in a competition, player, type, status, and expected return. Give the competition slug and a team name.","inputSchema":{"type":"object","required":["competition","team"],"properties":{"team":{"type":"string","description":"Team name, e.g. France."},"competition":{"type":"string","description":"Competition slug, e.g. world-cup-2026."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":118,"tokensAfter":118},{"name":"get_tournament_odds","fixed":{"name":"get_tournament_odds","description":"Footdigest: each team's chances of qualifying from the group stage, reaching the final, and winning the competition, from a seeded strength-aware Monte Carlo. Pass `trials` and `seed` to control and reproduce the run. Identify the competition by its slug (e.g. \"world-cup-2026\").","inputSchema":{"type":"object","required":["competition"],"properties":{"seed":{"type":"integer","description":"Seed for reproducibility (default 42)."},"trials":{"type":"integer","description":"Simulated tournaments (default 10000, capped at 50000)."},"competition":{"type":"string","description":"Competition slug, e.g. world-cup-2026."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":187,"tokensAfter":187}],"toolsChanged":13,"tokensSaved":0,"todo":[],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}