World Cup History MCP
# World Cup History MCP
> **by Zafronix** · npm: `@zafronix/wc-mcp` · MIT-licensed
[](https://glama.ai/mcp/servers/zafronix/wc-mcp)
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](https://api.zafronix.com/) — 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.
## Install
```bash
npm install -g @zafronix/wc-mcp
```
Or run from source:
```bash
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):
```json
{
"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:
```json
{
"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
```bash
npm run dev # tsx watch mode
WC_API_KEY=... npm start
```
The server speaks stdio. You can test it with the MCP CLI:
```bash
npx @modelcontextprotocol/inspector npx tsx src/index.ts
```
## License
MIT.
TDQS
Scored across 15 tools
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.
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.
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.
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.