fifa-public-api-mcp
Enables querying FIFA competitions, fixtures, results, and live match data through the FIFA Public API without authentication.
README
fifa-public-api-mcp
ā½ Live FIFA World Cup & football data for your AI assistant: an MCP server for competitions, fixtures, live scores, lineups, squads, and stadiums.
Give Claude, or any Model Context Protocol client, instant read-only access to the public FIFA data API for football (soccer): every FIFA competition (the men's and women's World Cups, club competitions, and more), their fixtures and results, live match detail, and reference data. No API key, no auth, no rediscovering FIFA's undocumented endpoints. Just install and ask.
ā” What you can ask
Once it's connected, ask your assistant things like:
- "Who's hosting the 2026 FIFA World Cup, and which stadiums are being used?"
- "List the knockout-stage fixtures for the FIFA Women's World Cup."
- "What was the final score, lineup, and attendance for that match?"
- "Which six confederations does FIFA recognise, and how many member associations are there?"
Your assistant picks the right tools and chains the FIFA IDs for you behind the scenes.
⨠Features
- ā½ 12 read-only tools spanning competitions, seasons, stages, fixtures, results, live matches, teams, stadiums, and reference data.
- š No API key or sign-up: wraps the public FIFA API directly.
- š Localised output via a
languagearg, plus arawescape hatch that returns the untouched FIFA payload. - š¦ One-line install with
npx: nothing to clone or build. - š”ļø Typed and tested: unit-tested response normalizers and provenance-signed npm releases.
š Install
The server is published to npm and runs via npx, so there is nothing to clone or compile.
Claude Code:
claude mcp add fifa -- npx -y fifa-public-api-mcp
Claude Desktop: add this to mcpServers in your config:
{
"mcpServers": {
"fifa": {
"command": "npx",
"args": ["-y", "fifa-public-api-mcp"]
}
}
}
npx downloads and caches the package on first use; later runs are offline-fast. Requires Node 22+ on the PATH.
š§° Tools
Every tool also accepts two optional args: raw (default false; return FIFA's untouched payload) and language (default en).
| Tool | Inputs | Returns |
|---|---|---|
search_competitions |
name |
[{idCompetition, name}] |
get_competition |
idCompetition |
{idCompetition, name, owner, type} |
list_seasons |
idCompetition, count? |
[{idSeason, name, startDate, endDate}] |
get_season |
idSeason |
{idSeason, name, dates, memberAssociations[], hostTeams[], pictureUrls} |
list_stages |
idCompetition, idSeason |
[{idStage, name}] |
list_countries |
none | [{idCountry, name}] |
list_confederations |
none | [{idConfederation, name}] |
get_matches |
idCompetition, idSeason, idStage?, idGroup?, count? |
{matches:[ā¦]} (see pagination note) |
get_match_timeline |
idCompetition, idSeason, idStage, idMatch |
{idMatch, events:[ā¦]} |
get_live_match |
idCompetition, idSeason, idStage, idMatch |
{idMatch, status, score, home, away, officials, attendance, weather} |
get_team |
idTeam |
{idTeam, name, abbreviation, country, city, stadium, idStadium, pictureUrl} |
get_stadium |
idStadium |
{idStadium, name, city, capacity} |
IDs are stable string handles chained between endpoints. A typical flow: search_competitions ā list_seasons ā list_stages ā get_matches ā get_match_timeline / get_live_match.
Example IDs (FIFA World Cup 2026): idCompetition=17, idSeason=285023. These are examples for trying the tools, not defaults baked into the server.
ā ļø Known limitations
- No standings. FIFA's
/calendar/standingendpoint returns200 nullfor every competition and season tested, so no standings tool ships. - No real pagination on
get_matches. The API's continuation cursor is non-functional, socountis only a single-request hard limit. Set a largecount(e.g. 500) for a full fixture list, and narrow withidStage/idGroup; there is no way to page pastcount. get_live_matchreturns data for any match state, not just live matches. A not-started match has an empty lineup and a null score.
š ļø Develop from source
git clone https://github.com/chrispickford/fifa-public-api-mcp.git
cd fifa-public-api-mcp
npm install
npm run build # compiles TS to build/index.js (with shebang + executable bit)
npm test # vitest unit tests over the normalizers (no network, CI-safe)
npm run smoke # manual live end-to-end hit of every tool against the real API (needs network)
Point a client at the local build with an absolute path, e.g. claude mcp add fifa-dev -- node /absolute/path/to/build/index.js.
The code is four small, single-purpose layers: src/client.ts (the only module that touches the network; encodes the FIFA base-API conventions and throws a structured FifaApiError), src/shape.ts (pure, unit-tested response normalizers), src/tools.ts (tool definitions and handlers wiring client ā shape), and src/index.ts (bootstrap: register tools, connect StdioServerTransport).
License
MIT Ā© Chris Pickford
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.