@pipeworx/thesportsdb

Connect: https://gateway.pipeworx.io/thesportsdb/mcp · Install: one-click buttons

Tools: 15

TheSportsDB MCP — sports catalog across 50+ leagues: teams, players, events, venues, league tables. Free tier with public key.

Tools

  • list_sports() / list_leagues(sport?, country?)
  • search_teams(query), get_team(team_id), league_teams(league_id)
  • search_players(query) / get_player(player_id)
  • team_events_last(team_id) / team_events_next(team_id)
  • events_by_day(date, sport?, league?)
  • league_table(league_id, season?)

Auth

The free public tier uses API key 3 (well-known, no signup required). Pipeworx defaults to this. For higher rate limits / extra endpoints register at https://www.thesportsdb.com/ and BYO via ?_apiKey=<key>.

Data source

https://www.thesportsdb.com/api/v1/json/<apiKey>/

Match detail (event_detail, event_timeline, event_stats, event_lineup)

Four per-match tools for settling questions about a single fixture: the scoreline and venue (event_detail), goals with scorer/assist/minute plus cards and substitutions (event_timeline), team-by-team statistics (event_stats), and the starting eleven plus substitutes (event_lineup). All take a TheSportsDB event_id — find one with events_by_day, team_events_last or team_events_next.

They are NOT premium-gated — but the free tier truncates them

Measured 2026-09-12 on the free public key: all four endpoints return real data, so no key is required and none of these tools refuses for want of one.

What the free tier does do is cap each array at 5 rows, silently. On idEvent 2594568 (Bayern Munich vs Bodø/Glimt, final score 5-0) the timeline returns 5 rows, the earliest at minute 45, containing 2 goals — every first-half goal is absent. event_stats returns 5 statistics and does not include shots on goal, corners or possession. event_lineup returns 5 players. intHomeScoreHT / intAwayScoreHT come back null.

So for a settlement workload a supporter key matters — for completeness, not for access. Pass it as _apiKey.

How the tools tell you

event_timeline cross-checks the goals it can see against the event’s own final score. When they disagree it returns complete: false with goals_in_timeline, goals_in_final_score and a note saying not to settle a first-scorer or half-time question from it. That is proof of truncation, not a guess. event_stats and event_lineup have no equivalent invariant, so they report complete: null when exactly 5 rows come back — which may be a whole small result or a truncated large one, and from the response alone those are indistinguishable.

Coverage is per-competition

A match the source has not covered returns found: false with a reason, never an error and never a wrong answer. The tools distinguish two cases that arrive identically from upstream (both are a bare null): no_timeline_for_event — the match exists and is named back to you, the source just has no timeline for that competition — versus no_data_and_event_unconfirmed, where the event id could not be confirmed either. For a caller settling a market those are opposite conclusions: “ask a different source” versus “you have the wrong match”.

Tools

  • list_sports — Return all sports tracked by TheSportsDB (e.g. Soccer, Ice Hockey, Basketball), each with id, name, and forum.
  • list_leagues — List the sports leagues catalogued by TheSportsDB, optionally narrowed by sport name (Soccer, Ice Hockey, Basketball, American Football, Baseball) and by country name. Returns each league id, name, al
  • search_teams — Search TheSportsDB for sports teams by name — football/soccer clubs in any league worldwide including lower divisions, plus NBA, NFL, MLB and more. Returns team id (use with team_events_next / team_ev
  • get_team — Full team profile from TheSportsDB by numeric team_id — returns name, sport, country, stadium, formed year, description, badge, and social links.
  • league_teams — List all teams in a TheSportsDB league by league_id; returns each team’s id, name, badge, and country.
  • search_players — Search TheSportsDB for players by name. Returns player id, current team, nationality, position, and description. Use search_teams first to find team IDs if needed.
  • get_player — Full player profile from TheSportsDB by numeric player_id — returns name, team, nationality, position, birth date, description, and thumbnail.
  • team_events_last — Recent results for a team: the 5 most recently completed games/matches/fixtures by team_id (from search_teams); returns event name, date, home/away teams, and final score. Works for any league worldwi
  • team_events_next — Upcoming fixtures for a team: the next 5 scheduled games/matches by team_id (from search_teams); returns event name, kickoff date/time, home/away teams, league, and venue. Works for any league worldwi
  • events_by_day — Sports schedule/fixtures for a given date — all games/matches on that day, optionally filtered by sport or league. PREFER OVER WEB SEARCH for “what games are on today/tomorrow”, “NHL ice hockey schedu
  • league_table — Standings table for a league/season.
  • event_detail — One match by its TheSportsDB event id: final and half-time score, competition, season, round, venue, date and kickoff time, and the goal detail strings where the source carries them. Use for settling
  • event_timeline — Minute-by-minute timeline for one match: goals with scorer and assist, cards, and substitutions, each with the minute and which side it belongs to. Use for settling scorer, first-goal and card questio
  • event_stats — Team-by-team match statistics for one event — shots on goal, corners, possession, fouls, passes and whatever else the source recorded, as home/away pairs. Use for settling shot-count, corner and posse
  • event_lineup — Starting eleven and substitutes for one match, per side, with each player’s position, squad number and TheSportsDB player id. COVERAGE IS PER-COMPETITION: a match the source has not covered returns fo

Tools

  • event_detail — One match by its TheSportsDB event id: final and half-time score, competition, season, round, venue, date and kickoff time, and the goal detail strings where the source carries them. Use for settling
  • event_lineup — Starting eleven and substitutes for one match, per side, with each player's position, squad number and TheSportsDB player id. COVERAGE IS PER-COMPETITION: a match the source has not covered returns fo
  • event_stats — Team-by-team match statistics for one event — shots on goal, corners, possession, fouls, passes and whatever else the source recorded, as home/away pairs. Use for settling shot-count, corner and posse
  • event_timeline — Minute-by-minute timeline for one match: goals with scorer and assist, cards, and substitutions, each with the minute and which side it belongs to. Use for settling scorer, first-goal and card questio
  • events_by_day — Sports schedule/fixtures for a given date — all games/matches on that day, optionally filtered by sport or league. PREFER OVER WEB SEARCH for what games are on today/tomorrow , NHL ice hockey schedule
  • get_player — Full player profile from TheSportsDB by numeric player_id — returns name, team, nationality, position, birth date, description, and thumbnail.
  • get_team — Full team profile from TheSportsDB by numeric team_id — returns name, sport, country, stadium, formed year, description, badge, and social links.
  • league_table — Standings table for a league/season.
  • league_teams — List all teams in a TheSportsDB league by league_id; returns each team's id, name, badge, and country.
  • list_leagues — List the sports leagues catalogued by TheSportsDB, optionally narrowed by sport name (Soccer, Ice Hockey, Basketball, American Football, Baseball) and by country name. Returns each league id, name, al
  • list_sports — Return all sports tracked by TheSportsDB (e.g. Soccer, Ice Hockey, Basketball), each with id, name, and forum.
  • search_players — Search TheSportsDB for players by name. Returns player id, current team, nationality, position, and description. Use search_teams first to find team IDs if needed.
  • search_teams — Search TheSportsDB for sports teams by name — football/soccer clubs in any league worldwide including lower divisions, plus NBA, NFL, MLB and more. Returns team id (use with team_events_next / team_ev
  • team_events_last — Recent results for a team: the 5 most recently completed games/matches/fixtures by team_id (from search_teams); returns event name, date, home/away teams, and final score. Works for any league worldwi
  • team_events_next — Upcoming fixtures for a team: the next 5 scheduled games/matches by team_id (from search_teams); returns event name, kickoff date/time, home/away teams, league, and venue. Works for any league worldwi

Regenerated from source · build September 15, 2026