Skip to content
Back to search
100
MCP live MCP 2025-11-25 streamable-http

io.github.ninjabeam20/sportiq-mcp

io.github.ninjabeam20/sportiq-mcp

MCP tools for FIFA World Cup 2026 football, Formula 1, and IPL cricket — sims, strategy, fantasy.

Watch this dependency Share evidence report
Uptime
100.0%
5 direct probes · 30d
Response
3335ms
last probe
Tools
46
callable
Resources
7
readable
Prompts
10
available
Score: 100/100
Handshake verified by our own probe.
pass Answers the MCP handshake 50/50
The handshake and the list calls succeeded on the primary URL.
pass Lists tools, resources or prompts 30/30
46 tools, 7 resources, 10 prompts returned.
pass 3 or more catalogue items 10/10
63 items in total; 3 or more earns these points.
pass Describes itself 10/10
97 characters; more than 30 earns these points.

Tools · 46

sportiq_health

Report cache backend, per-adapter healthcheck, and quota status. Returns: HealthReport-shaped dict with `cache_backend`, `cache_ok`, `adapters` (per-source ok/detail), and `quotas`.

football_get_groups

Return the FIFA World Cup 2026 group draw and advancement format. Returns: data.groups: {group_letter: [4 team codes]} for all 12 groups. data.format: 48-team / 12-group / top-2 + 8-best-thir…

football_get_fixtures

Return World Cup 2026 fixtures (live providers, else the group schedule). Args: limit: Max fixtures to return, 1..200 (default 50). offset: Number of fixtures to skip for paging (default 0). …

football_get_standings

Return current World Cup 2026 group standings. Args: limit: Max standing rows to return, 1..200 (default 50). offset: Number of rows to skip for paging (default 0). Returns: data.standin…

football_get_squad

Return a national team's World Cup squad. Args: team: Team code or name (e.g. "ARG"). Live rosters need an API-Football key; without one the static seed serves an empty-but-valid squad …

football_get_match_stats

Return a team's aggregate World Cup tournament statistics. Network-only enrichment: requires a configured API-Football (or football-data.org) key. There is no offline static fallback, so without a ke…

football_get_top_scorers

Return the World Cup 2026 top scorers. Returns: data.scorers: list of {name, team, goals, assists}. meta.source: adapter that served the data.

football_get_odds

Return market head-to-head odds for any World Cup 2026 events the odds feed still lists. Sourced from The Odds API (requires THEODDS_KEY). Without a key the call returns a clean ALL_SOURCES_FAILED en…

football_xg_model

Estimate a match's expected goals and win/draw/loss probabilities. Args: home_team: First team, FIFA code or name (e.g. "ARG" or "Argentina"). away_team: Second team, FIFA code or name (e.g. …

football_match_predictor

Predict a single match: most likely scoreline + outcome probabilities. Args: home_team: First team, FIFA code or name (e.g. "ESP" or "Spain"). away_team: Second team, FIFA code or name. n…

football_simulate_group

Monte Carlo one group within the full 12-group qualification context. Args: group: Group letter A-L (also accepts "Group A"). iterations: Number of simulations (clamped to 100..20000). Retur…

football_simulate_bracket

Monte Carlo the full World Cup 2026 — per-team round + title probabilities. Simulates all 12 groups, advances the top 2 + 8 best third-placed teams to a 32-team knockout, and plays it to a champion, …

football_knockout_path

Round-by-round survival probabilities for one team in the full sim. Args: team: FIFA code or name (e.g. "FRA" or "France"). iterations: Number of tournament simulations (clamped to 100..20000…

football_what_if

Replay World Cup 2026 from a chosen stage, optionally flipping one real knockout result. Keeps every real result played before ``replay_from`` and Monte-Carlos the rest of the tournament from there. …

football_find_value_bets

Surface the largest gaps between the model's win probability and the market. De-vigs each market's 1X2 decimal odds (removes the margin so implied probabilities sum to 1) and compares them to this se…

football_form_trends

Return rolling form, goal record, and xG trend for a football team. Args: team: FIFA code (e.g. ARG) or name (e.g. "Argentina", "South Korea"). Returns: data: {form_string, wins, draws, loss…

football_build_accumulator

Model the joint probability of several match outcomes from the top model-vs-market gaps. Calls ``football_find_value_bets`` internally to fetch live odds, then selects the strongest legs and combines…

f1_get_sessions

Return F1 sessions for a given year, optionally filtered by country or session name. Args: year: Championship year (e.g. 2026). country: Optional country name to filter (e.g. "Netherlands"). …

f1_get_drivers

Return driver list for a specific F1 session. Args: session_key: OpenF1 session identifier. Returns: data.drivers: list of driver objects with driver_number, full_name, team. meta.source…

f1_get_lap_times

Return lap times for a driver in a specific F1 session. Args: session_key: OpenF1 session identifier. driver_number: Driver's race number (driver numbers change by season; use f1_get_drivers)…

f1_get_standings

Return F1 driver and constructor championship standings for a year. Use this for "who is leading / who will win the F1 championship this year". For title probabilities use f1_simulate_championship. T…

f1_get_race_results

Return the final classification for one F1 race, keyed by year and round. Args: year: Championship year (e.g. 2025). round: Round number within the season (1-based; e.g. 1 for the opener). R…

f1_get_weather

Return weather data for a specific F1 session. Args: session_key: OpenF1 session identifier. Returns: data.weather: list of weather snapshots with temperature, rainfall, wind. meta.sourc…

f1_tyre_degradation

Fit a tyre degradation model for a driver + compound in a session. Args: session_key: OpenF1 session identifier. driver_number: Driver's race number. compound: Tyre compound (SOFT, MEDIUM…

f1_undercut_window

Estimate whether an undercut is viable for the attacker against the target. Args: session_key: OpenF1 session identifier. attacker_number: Attacking driver's race number. target_number: T…

f1_head_to_head_pace

Compare lap-time pace distribution between two drivers in a session. Args: session_key: OpenF1 session identifier. driver_a: First driver's race number. driver_b: Second driver's race num…

f1_weather_strategy_impact

Analyse weather data and recommend compound or pit-window adjustments. Args: session_key: OpenF1 session identifier. Returns: data: {has_rain, avg_track_temp_c, compound_recommendation, reco…

f1_predict_pit_strategy

Predict the optimal pit-stop strategy for a driver in an F1 race session. Args: session_key: OpenF1 session identifier for a recorded race. driver_number: Driver's race number (driver numbers…

f1_simulate_championship

Estimate each driver's F1 drivers' title probability for the rest of a season. Monte Carlo over the remaining races and sprints (Plackett-Luce finishing orders weighted by each driver's season points…

f1_qualifying_analysis

Analyse a qualifying session: best lap per driver, gap to pole, projected grid. Args: session_key: OpenF1 session identifier for a Qualifying session. Returns: data.grid: [{position, driver_…

f1_race_pace_compare

Compare race-pace and tyre degradation between two F1 drivers in a session. Args: session_key: OpenF1 session identifier. driver_a: First driver's race number. driver_b: Second driver's r…

cricket_get_live_matches

Return all currently live cricket matches across all series. Returns: data.matches: list of live match objects (team names, score, status). meta.source: which adapter served the response. …

cricket_get_scorecard

Return the full scorecard for a specific match. Args: match_id: The match identifier (e.g. from cricket_get_live_matches). Returns: data: full scorecard with innings, partnerships, bowling f…

cricket_get_points_table

Return the points table / standings for a cricket series. Args: series_id: The series identifier (e.g. IPL 2026 series ID from CricAPI). Returns: data: points table rows with team, P, W, L, …

cricket_get_schedule

Return the upcoming match schedule, optionally filtered by series. Args: series_id: Optional. Filter to a specific series. If omitted, returns all upcoming fixtures across all acti…

cricket_get_squad

Return the squad roster for a cricket team, optionally for a specific series. Args: team: Team code or name (e.g. "MI", "CSK", "IND", "AUS"). series_id: Optional. Series ID to pull the tourna…

cricket_get_live_odds

Return live market head-to-head odds for upcoming/live IPL matches. IPL only (~March-May). An empty ``events`` list outside that window is a successful empty market, not an outage. Not international/…

cricket_build_dream11_team

Recommend an optimal fantasy XI + captain + vice-captain for one fixture. Args: match_id: CricAPI match identifier; resolves team_a/team_b/venue automatically. team_a: First team code/name (e…

cricket_captain_recommendation

Return the top-3 captain candidates ranked by projected points. IPL venues only (pitch seed is IPL grounds). Test/international matches and unknown venues fail rather than inventing a ranking. Same-r…

cricket_differential_picks

Suggest low-ownership picks with positive projected upside. Ownership is *estimated* — proxied by credit weight (lower-credit players tend to have lower ownership), not real ownership data. Flagged `…

cricket_player_form_index

Report a 0-100 form score for a player using the player_stats chain. Args: player_id: Upstream player identifier (CricAPI/Cricbuzz id). Returns: data.form_score: 0..100 indicator. data.t…

cricket_get_pitch_report

Summarise pitch characteristics for a venue. Args: venue: Venue key (e.g. ``wankhede``), official name, or city. Returns: data: {batting_friendly 0..1, expected_first_inn, recommendation, …

cricket_find_value_bets

Compare model probabilities against market-implied IPL odds. Requires THEODDS_KEY. NOTE: cricket has no calibrated team-strength model wired yet (unlike the football Elo/Poisson path), so this tool c…

cricket_head_to_head

Compare two cricket teams head-to-head using squad form and player stats. Args: team_a: First team code or name (e.g. "MI", "India"). team_b: Second team code or name (e.g. "CSK", "Australia"…

cricket_player_matchup

Analyse the head-to-head matchup between two cricket players based on role and career stats. Args: player_a: CricAPI player ID for the first player (names are not resolved). player_b: CricAPI…

cross_sport_build_accumulator

Model the joint probability of multiple outcomes across football and cricket. Args: legs: Total legs across both sports (2-8). Default 3. min_edge: Minimum edge per leg. Default 0.05. Return…

Resources · 7

sportiq-instructions

Read once at session start: tool catalogue, min-call recipes, envelope format, staleness rules, and error recovery for all 44 tools.

sportiq://instructions
football-wc2026-draw

WC 2026 format and the 12 groups of team codes.

sportiq://football/wc2026/draw
football-team-codes

WC 2026 team code → name and accepted name aliases.

sportiq://football/team-codes
f1-circuits

Measured circuit profiles (pit loss, lap length) keyed by circuit key.

sportiq://f1/circuits
cricket-venues

Venue keys accepted by the cricket tools, with names and cities.

sportiq://cricket/venues
cricket-teams

IPL franchise code → official name.

sportiq://cricket/teams
cricket-scoring-profile

The versioned Dream11 T20 points table the fantasy tools score with.

sportiq://cricket/scoring-profile

Prompts · 10

dream11_team_builder

Build an optimal fantasy XI for an IPL match.

f1_race_strategy

Predict pit strategy for a driver at a specific Grand Prix.

world_cup_2026_retrospective

Review the completed FIFA World Cup 2026 against the model's simulation.

cricket_value_bets

Compare model probabilities against the market across IPL matches.

f1_driver_comparison

Compare two F1 drivers' pace at a Grand Prix.

cricket_captain_pick

Recommend a captain for tonight's live IPL match.

predict_match

Predict the scoreline and outcome of one World Cup 2026 match.

build_accumulator

Model the joint probability of multiple outcomes across sports.

server_health

Report cache backend, adapter status, and remaining API quota.

wc_group_situation

Show the World Cup 2026 group draw and advancement format.

How to use

Claude Desktop or claude.ai: add a custom connector (Customize → Connectors; on Team and Enterprise plans an owner adds it under Organization settings → Connectors) with this server URL: https://sportiq.utkarshgupta.org/mcp

Cursor or Cline: add to your MCP config:

{
  "mcpServers": {
    "io.github.ninjabeam20/sportiq-mcp": {
      "url": "https://sportiq.utkarshgupta.org/mcp",
      "transport": "streamable-http"
    }
  }
}