@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 settlingevent_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 foevent_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 posseevent_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 questioevents_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 scheduleget_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, allist_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_evteam_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 worldwiteam_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