Skip to main content
Glama
World Cup History MCP

World Cup History MCP

by zafronix

World Cup History MCP

by Zafronix · npm: @zafronix/wc-mcp · MIT-licensed

wc-mcp MCP server

Model Context Protocol server giving Claude / Cursor / any MCP-aware agent grounded access to every FIFA World Cup since 1930. 23 tournaments. 1,168+ matches. 2,500+ players. 206 stadiums. All exposed as 15 typed tools so the model stops hallucinating squads, scores, brackets, and stadium altitudes.

Powered by the public Zafronix World Cup API — free tier with key, 1,000 req/day, no card.

Why

LLMs are unreliable on:

  • Exact tournament results from before the trained-data window.

  • Roster details (jersey numbers, DOBs, captains).

  • Knockout-round paths and exact scores.

  • Stadium facts (capacity, altitude, year opened).

This MCP wraps the Zafronix WC API so the model can call a tool and get the canonical answer instead of guessing.

Related MCP server: World Cup Stats MCP

Install

npm install -g @zafronix/wc-mcp

Or run from source:

git clone https://github.com/zafronix/wc-mcp
cd wc-mcp
npm install
npm run build

Get a free API key

https://api.zafronix.com/signup

1,000 requests/day on the free tier, no card.

Configure (Claude Desktop)

Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) / %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "wc": {
      "command": "npx",
      "args": ["-y", "@zafronix/wc-mcp"],
      "env": {
        "WC_API_KEY": "zwc_pk_your_key_here"
      }
    }
  }
}

Restart Claude Desktop. You'll see a 🔌 icon in the input bar — click it to confirm wc is connected.

Configure (Cursor)

Settings → MCP → Add new server:

{
  "mcpServers": {
    "wc": {
      "command": "npx",
      "args": ["-y", "@zafronix/wc-mcp"],
      "env": { "WC_API_KEY": "zwc_pk_..." }
    }
  }
}

Tools

Tool

What it does

list_tournaments

Every WC 1930→2026 (year, host, champion).

get_tournament

Full tournament: teams, brackets, awards, squads.

compare_tournaments

Side-by-side stats for 2-6 years.

search_players

Player name search across history.

get_player_career

Every WC a player appeared in.

list_teams

Every nation that ever played, optional confederation filter.

get_team

Cross-tournament summary for a country.

get_team_roster

Full squad for one team in one year.

list_stadiums

Every WC venue with elevation + coords.

get_stadium

Single venue by slug.

list_matches

Filter by year / stage / date.

get_match

Single match with score + attendance + referee.

get_trivia

Curated factual nuggets per year.

get_standings

Computed group tables with FIFA tiebreakers.

get_bracket

Full knockout bracket.

Example prompts (in Claude Desktop, with this MCP enabled)

  • "Compare Pelé and Messi at the World Cup."

  • "What was the highest-altitude World Cup stadium ever, and how did goal totals there compare to sea-level venues?"

  • "Show me Italy's 2006 squad with positions and clubs."

  • "Trace Argentina's 2022 path to the title — every match, every score."

  • "List every African nation that has reached the World Cup quarter-finals."

Development

npm run dev          # tsx watch mode
WC_API_KEY=... npm start

The server speaks stdio. You can test it with the MCP CLI:

npx @modelcontextprotocol/inspector npx tsx src/index.ts

License

MIT.

Available Tools

15 tools
compare_tournamentsA

Side-by-side comparison of 2-6 World Cup tournaments. Returns total goals, goals per match, attendance, top scorer, best player, champion, runner-up, third place for each year. Use this when the user asks "compare 1986 vs 2022" or "what changed between 1990 and 2014". For a single year use get_tournament.

Inputs: years (required).

get_bracketA

Full knockout bracket for a tournament — Round of 16 through Final, with each match's teams + result. Use this for "show me the 2014 World Cup bracket" or "trace France's 2018 path to the title".

Inputs: year (required).

get_matchA

Single match by ID. IDs follow {year}-{ordinal} zero-padded — the 1986 final is "1986-052", the 2022 final is "2022-064", the 2026 opener is "2026-001". Returns kickoff, both teams, score, extra time, penalties, stadium, city, attendance, referee, and (with denormalize=true) the full stadium block.

Inputs: id (required), denormalize.

get_player_careerA

Get a player's full World Cup career: every tournament they appeared in, with team/position/jersey/goals/captain status per year. Use this when the user wants a "all of Pelé's World Cup matches" or "compare Messi's 4 World Cups" view. The name should be the canonical name (use search_players first if unsure).

Inputs: name (required).

get_stadiumA

Single venue details by stable slug ID. Slugs are kebab-case ("estadio-azteca", "maracana", "wembley-stadium-old", "metlife-stadium"). Use list_stadiums first if you need to discover the right ID.

Inputs: id (required).

get_standingsA

Computed group standings with FIFA tiebreakers applied. Returns the order teams finished within each group of the given year, including W/D/L, GF, GA, GD, points. Use this for "show me the 1990 Group F table" or "who finished where in 2022 Group H?".

Inputs: year (required), group.

get_teamA

Cross-tournament summary for a national team: every appearance, final position by year, total titles, knockout records. Use this for "Brazil's World Cup history" or "how many times has Argentina reached the final?". For a specific year's squad use get_team_roster.

Inputs: name (required).

get_team_rosterA

Full squad for one team in one tournament — every player with jersey, position, DOB, club, goals, captain flag. Use this for "who was on Spain's 2010 squad?" or "show me Italy's 2006 roster".

Inputs: name (required), year (required).

get_tournamentA

Get full details for a single World Cup tournament: every team that played, group stages, knockout brackets, awards (top scorer, best player, best young player, best GK), full squads with DOB/position/club, attendance, and trivia notes. Use this when the user asks about a specific year ("1986 World Cup", "what happened at Italia 90"). For comparisons across multiple tournaments use compare_tournaments instead.

Inputs: year (required).

get_triviaA

Curated factual nuggets about a tournament — record-setting moments, oddities, historical context. Each entry is a single fact with category. Use this when the user wants "interesting facts about 1958" or "tell me something I don't know about Italia 90". Far less hallucination-prone than free-recall about old tournaments.

Inputs: year.

list_matchesA

List World Cup matches. Filterable by year and/or stage (group_a..group_h, round_of_16, quarter_final, semi_final, third_place, final). Returns kickoff time, home/away team, score, stadium, attendance. Use this for "show me all the 1990 group matches" or "list every World Cup final". Pair with get_match for a specific match's full details.

Inputs: year, stage, date.

list_stadiumsA

List World Cup venues. 206 stadiums total across history, with capacity, lat/long, elevation in meters, opening year, and the list of WC years each one hosted. Useful for "which stadiums hosted the most World Cup matches?" or "where was the 1986 final?". Filterable by country.

Inputs: country.

list_teamsA

List every national team that has ever played a World Cup, with confederation, first/last appearance year, and total appearances. Useful for "which African nations have made the World Cup?" or "list every CONMEBOL team". Pair with get_team for a specific country.

Inputs: confederation.

list_tournamentsA

List every FIFA World Cup tournament (1930 → 2026) with year, host country list, champion (or null for the upcoming 2026 cup). Useful as a starting point when the user is exploring history or needs to disambiguate a year.

Inputs: no named parameters.

search_playersA

Search players by name. Returns every World Cup squad row matching the query, with team, position, DOB, club, and tournament-year goals. Use this when the user mentions a player by name. For a player's full multi-tournament career path use get_player_career.

Inputs: q (required), limit.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.4/5.0

    Scored across 15 tools

    Disambiguation5/5

    Each tool has a clear, non-overlapping purpose. For example, compare_tournaments is for multi-year comparisons while get_tournament handles single years; get_team vs get_team_roster separate summary from roster; search_players vs get_player_career distinguish lookup from career view.

    Naming Consistency5/5

    All tools follow a consistent verb_noun pattern (e.g., list_tournaments, get_match, compare_tournaments) using snake_case. There are no mixed conventions or ambiguous names.

    Tool Count5/5

    With 15 tools, the server is well-scoped for its domain—covering tournaments, teams, players, matches, stadiums, standings, brackets, and trivia without being bloated. The number feels natural for a comprehensive World Cup history API.

    Completeness5/5

    The tool set covers the major CRUD-like operations for the domain: listing and getting tournaments, teams, players, matches, stadiums, comparisons, trivia, brackets, and standings. There are no obvious gaps for typical World Cup queries.

    Maintenance

    ActivityInactive
    ResponsivenessLimited data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      C
      maintenance
      MCP server for FIFA World Cup 2026 data: matches, teams, venues, city guides, fan zones, visa info, injuries, odds, standings, bracket, and historical matchups. 18 tools, zero external API dependencies.
      18
      206 npm
      34
      MIT
    • F
      license
      Not graded
      quality
      D
      maintenance
      Enables querying FIFA World Cup player and team statistics for 2010, 2014, 2018, and 2022 through natural language, providing tools for top scorers, player comparisons, team summaries, and more via a Claude-powered CLI.
      -
    • A
      license
      Not graded
      quality
      D
      maintenance
      MCP server for retrieving World Cup match briefs, fixtures, and event explanations with sourced, plain-language context.
      MIT