FOOTBALL API
The collectionDocumentationMembershipStatusSupport
Documentation / Assistants and agents

FOOTBALL MCP TOOLS

MCP tools

Every tool the MCP server gives an assistant, what it answers, its parameters and the endpoint it calls. Paging is left to the server, so a tool never asks for a page or a cursor.

Complimentary keyMembership
list_competitionsComplimentary key

Every league and competition in the collection with its country, its tier, the first season served, and whether your key reads it.

countrystringOnly this country, such as England.
Calls GET /v1/competitions
league_tableComplimentary key

A league table as it stands this morning, or as it stood on any date you pass, for home matches, away matches or both. Competitions played in groups return each group.

competitionrequiredstringA competition from /v1/competitions, such as premier-league. In the path.
seasonrequiredintegerThe first year of the season: 2026 for 2026/27. In the path.From 2015, or the competition's first season
datedateThe table on the morning of this day, YYYY-MM-DD.
venuestringA table of home matches only, or away matches only.home or away
Calls GET /v1/competitions/{competition}/seasons/{season}/table
season_statsComplimentary key

A season of a competition in figures: matches, goals, home and away wins, draws, clean sheets, scorelines and cards.

competitionrequiredstringA competition from /v1/competitions, such as premier-league. In the path.
seasonrequiredintegerThe first year of the season: 2026 for 2026/27. In the path.From 2015, or the competition's first season
Calls GET /v1/competitions/{competition}/seasons/{season}/stats
find_matchesComplimentary key

Every match in the collection, played or still to come, found by competition, club, season, dates, status, result, surface or home and away, paged.

competitionstringA competition from /v1/competitions, such as premier-league. Leave it out for every competition your key reads.
clubstringOnly this club's matches: a club id such as cl_a7vhnxhhh.
seasonintegerThe first year of the season: 2026 for 2026/27.From 2015, or the competition's first season
date_fromdateFrom this day, YYYY-MM-DD.
date_todateUp to this day, YYYY-MM-DD.
statusstringWhere the match stands.finished or scheduled or postponed or cancelled or abandoned
resultstringHow it ended, from the home side: home, draw or away.home or draw or away
surfacestringThe pitch.grass or artificial_turf
venuestringHome matches only, or away matches only.home or away
per_pageintegerRows to return. Default 25 here.From 1 to 1,000
Calls GET /v1/matches
get_matchComplimentary key

Everything about a match: the score at every stage, both clubs' positions before kickoff, the ground, the referee and the conditions on the day.

match_idrequiredstringA match id from any result, fixture or match list, such as mt_e2hk79mn5. In the path.
Calls GET /v1/matches/{match_id}
find_resultsComplimentary key

Settled matches newest first, by day, by date range, by competition or by club, paged. Every season goes back to 2015/16, or to the league's start.

competitionstringA competition from /v1/competitions, such as premier-league. Leave it out for every competition your key reads.
clubstringOnly this club's matches: a club id such as cl_a7vhnxhhh.
datedateOne day, YYYY-MM-DD.
date_fromdateFrom this day, YYYY-MM-DD.
date_todateUp to this day, YYYY-MM-DD.
per_pageintegerRows to return. Default 25 here.From 1 to 1,000
Calls GET /v1/results
upcoming_fixturesComplimentary key

Matches still to come in the competitions your key reads, soonest first, with kickoff in UTC and the local date.

competitionstringA competition from /v1/competitions, such as premier-league. Leave it out for every competition your key reads.
date_fromdateFrom this day, YYYY-MM-DD.
date_todateUp to this day, YYYY-MM-DD.
per_pageintegerRows to return. Default 25 here.From 1 to 1,000
Calls GET /v1/fixtures
live_scoresMembership

Every match being played now, with the score and the minute. Answers refresh every 5 seconds.

competitionstringA competition from /v1/competitions, such as premier-league. Leave it out for every competition your key reads.
Calls GET /v1/live
find_clubsComplimentary key

Every club in the collection with its ground and city, by competition and season, or by country, paged.

competitionstringA competition from /v1/competitions, such as premier-league. Leave it out for every competition your key reads.
seasonintegerWith a competition: the clubs of that season, by its first year.From 2015, or the competition's first season
countrystringOnly this country's clubs, such as England.
per_pageintegerRows to return. Default 25 here.From 1 to 1,000
Calls GET /v1/clubs
get_clubComplimentary key

A club: its ground, its city, where the ground is and how many of its matches the collection holds.

club_idrequiredstringA club id from any match, table or club list, such as cl_a7vhnxhhh. In the path.
Calls GET /v1/clubs/{club_id}
club_formComplimentary key

The last results of a club, newest first, with a summary of goals, clean sheets and points.

club_idrequiredstringA club id from any match, table or club list, such as cl_a7vhnxhhh. In the path.
lastintegerHow many matches, newest first. Default 5.From 1 to 50
Calls GET /v1/clubs/{club_id}/form
head_to_headComplimentary key

Every meeting between two clubs since 2015/16, newest first, with the record of each side.

club_idrequiredstringA club id from any match, table or club list, such as cl_a7vhnxhhh. In the path.
opponent_idrequiredstringThe other club's id. In the path.
limitintegerHow many meetings to list, newest first. Default 20.From 1 to 100
Calls GET /v1/clubs/{club_id}/head-to-head/{opponent_id}
check_usageComplimentary key

Your plan, your calls today, your limits and when they reset. Calling it never counts against your allowance.

No parameters.

Calls GET /v1/usage

WHEN A TOOL IS REFUSED

A refusal comes back as the tool's answer, marked as an error, so the assistant can say why: past your plan it names membership and links to it; past a limit it says when to try again. It is never reported as the server being down.