MCP serverio.github.Ninjabeam20/sportiq-mcp
MCP tools for FIFA World Cup 2026 football, Formula 1, and IPL cricket — sims, strategy, fantasy.
Overview
Score?
UNRATED 0.516
of what a free look can see, on 29 looks
Looks
31
last 15 hr ago
Tools
44
changed 9 days ago
More info
URL
sportiq.utkarshgupta.org/mcp
streamable-http
Says it is
sportiq 0.3.2
protocol 2025-06-18
In the record since
29 days ago
Among servers18,413 with a card
0median 0.606 · this server 0.516 · highest on record 0.8561
Toolsfrom sha256:e00e85ea44…78e36b · +0 −0 9 days ago
| Tool | Schema |
|---|---|
| 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: Fir |
input · output |
| 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 inventi |
input · output |
| 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 owner |
input · output |
| 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 p |
input · output |
| 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 serv |
input · output |
| 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 |
input · output |
| 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 |
input · output |
| 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 |
input · output |
| 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 fixt |
input · output |
| 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, par |
input · output |
| 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 I |
input · output |
| 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 |
input · output |
| 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 i |
input · output |
| cricket_player_matchup Analyse the head-to-head matchup between two cricket players based on role and career stats.
Args:
player_a: Player ID or name for the first player.
player_b: Player ID or |
input · output |
| 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. D |
input · output |
| 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, t |
input · output |
| 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 (e.g. 1 for Verstappen).
limi |
input · output |
| 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 |
input · output |
| f1_get_sessions Return F1 sessions for a given year, optionally filtered by country.
Args:
year: Championship year (e.g. 2025).
country: Optional country name to filter (e.g. "Monaco").
|
input · output |
| 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".
There is no F1 title Monte Carlo — |
input · output |
| 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, |
input · output |
| 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: Seco |
input · output |
| 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 nu |
input · output |
| 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: |
input · output |
| 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_ |
input · output |
| 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 co |
input · output |
| 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.
|
input · output |
| 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_ |
input · output |
| 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 stronge |
input · output |
| 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 comp |
input · output |
| football_form_trends Return rolling form, goal record, and xG trend for a football team.
Args:
team: Team name (e.g. "Brazil", "Argentina").
Returns:
data: {form_string, wins, draws, losses, |
input · output |
| 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 |
input · output |
| 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 / |
input · output |
| 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 fallb |
input · output |
| football_get_odds Return live market head-to-head odds for upcoming World Cup 2026 matches.
Sourced from The Odds API (requires THEODDS_KEY). Without a key the call
returns a clean ALL_SOURCES_FAIL |
input · output |
| football_get_squad Return a national team's World Cup squad.
Args:
team: Team code or name (e.g. "ARG"). Without an API-Football key, the
static seed serves an empty-but-valid squad (ros |
input · output |
| 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).
Retur |
input · output |
| 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.
|
input · output |
| football_knockout_path Round-by-round survival probabilities for one team in the full sim.
Args:
team: Team code (e.g. "FRA").
iterations: Number of tournament simulations (clamped to 100..20000 |
input · output |
| football_match_predictor Predict a single match: most likely scoreline + outcome probabilities.
Args:
home_team: First team code.
away_team: Second team code.
neutral: True for a neutral venue |
input · output |
| 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 play |
input · output |
| football_simulate_group Monte Carlo one group within the full 12-group qualification context.
Args:
group: Group letter A-L.
iterations: Number of simulations (clamped to 100..20000).
Returns:
|
input · output |
| football_xg_model Estimate a match's expected goals and win/draw/loss probabilities.
Args:
home_team: First team code (e.g. "ARG").
away_team: Second team code (e.g. "BRA").
neutral: Tr |
input · output |
| 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 |
input · output |
Verify it yourself
npx teppi-check https://sportiq.utkarshgupta.org/mcpcurl -s https://api.teppi.xyz/v1/trust/mcp/mcs_01M1RE4WWG6H148AVQJ32XD385