football-data-mcp
Provides authentication and API key management for the hosted football data MCP server.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@football-data-mcpCompare Salah and Son across all stats"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
football-data-mcp
A football analytics toolkit for Claude (and similar LLM tools) — player scouting, comparisons, market-value filters, expected-goals tables, match-by-match form, team attacking profiles, match search, shot maps, and more.
Built on top of ScraperFC by Owen Seymour.
What it does
Combines player and match statistics into one dataset you can explore in conversation with Claude.
Coverage: 10 leagues · 3 seasons (2023-24, 2024-25, 2025-26) · 18,800+ player records
Season stats (one row per player per season):
Kind of data | Where it’s available |
Goals, assists, minutes, shots, cards | All 10 leagues |
Expected goals (xG), expected assists (xAG) | All 10 leagues — Understat model in top five; SofaScore model elsewhere ( |
Non-penalty xG, build-up xG, xG chain | Top five leagues only (Understat; not comparable to SofaScore xG) |
Advanced passing & chance creation | Top five + Netherlands + Portugal — not Championship or European cups |
Player ratings, duels, dribbles, big chances, and 80+ other performance metrics | All 10 leagues |
Market value, contract end date, height, nationality | Domestic leagues — weakest for Champions League and Europa League |
Match-by-match stats (optional extra step when collecting data):
Kind of data | Where it’s available |
Last N games, form, ratings, shot locations, team xG for/against | All 10 leagues (after match data is collected) |
League tables ranked by xG (home / away / overall) | Top five leagues only |
Related MCP server: GoalGorithm MCP Server
Leagues covered
All leagues include three seasons: 2023-24, 2024-25, and 2025-26.
League | Season-level data | Match-by-match |
England Premier League | Full — xG, build-up, advanced passing, ratings, market value | Yes |
Spain La Liga | Full | Yes |
Germany Bundesliga | Full | Yes |
Italy Serie A | Full | Yes |
France Ligue 1 | Full | Yes |
Netherlands Eredivisie | Strong — xG, advanced passing, ratings, market value (no build-up xG) | Yes |
Portugal Primeira Liga | Strong | Yes |
England EFL Championship | Basic — ratings and core stats; lighter xG; market value often available | Yes |
UEFA Champions League | Basic — ratings and core stats; no market value | Yes |
UEFA Europa League | Basic — ratings and core stats; no market value | Yes |
Full = goals and minutes, full xG suite including build-up, advanced passing metrics, player ratings, and market value.
Strong = same as Full except build-up xG.
Basic = goals, minutes, player ratings, and xG-style metrics; limited advanced passing; European cups lack market value.
Market value and contract data are most complete for the eight main domestic leagues (all except Championship and the two European cups).
The 10 tools
Once connected, Claude can answer questions using 10 built-in tools (leaner responses; pass team with player names when names collide).
Season-level player data
Tool | What you can ask |
| "Show me Salah's season stats" (defaults to All Competitions row) |
| "What are Saka's EA FC pace and shooting ratings?" |
| "Top 10 forwards in the Bundesliga by goals" (use position codes F/M/D/GK) |
| "Compare Salah 2024-25 vs Haaland 2025-26" (per-player season in |
| "Arsenal's league table and average xG this season" (defaults to All Competitions) |
| "Compare Liverpool and Man City on standings and xG" (each team can use a different season) |
Match-by-match analytics
Requires match data to be collected first. Works across all 10 leagues. Resolve fixtures with home team + away team + season (optional league).
Tool | What you can ask |
| Lean overview: score, possession, xG, shots, big chances for one fixture |
| All players in one match — ratings, goals, xG per player |
| One player over a date range or matchdays — pass |
| Shot map for a match; add |
Setup
Everything runs on your computer: download the stats, then connect Claude Desktop or Cursor so it can answer questions using the 10 tools.
1. Install
pip install football-data-mcpThat installs two commands you can run from any folder:
collect-data— downloads and builds the datasetsoccer-mcp— starts the connection Claude and Cursor use
Working on the code? Clone this repo and run pip install -e . in the project folder instead.
2. Collect the data
First-time full download takes a while (some sites open a headless browser in the background).
Stats are collected from Understat, SofaScore, ClubElo, Transfermarkt, and Capology (see CHANGELOG.md for recent pipeline changes).
The unified player file also uses the REEP (Robust Entity Exchange Protocol) crosswalk (data/reference/reep_people.csv) to link player IDs across sources when names differ — for example matching Understat season rows to SofaScore dribble/passing stats, and SofaScore IDs to EA FC / SoFIFA attributes.
collect-dataUseful shortcuts:
# Only refresh one part of the data
collect-data --sofascore-only
collect-data --understat-only
collect-data --transfermarkt-only
# Extra: league xG tables, match shots, line-ups
collect-data --understat-tables-only
collect-data --understat-matches-only
# Rebuild the merged player file from files you already downloaded
collect-data --rebuild-only
collect-data --rebuild-only --export-csv # also write a spreadsheet copy3. Connect Claude Desktop or Cursor
Add the data connection to your app’s config. After pip install, soccer-mcp should be on your PATH (same program as python3 -m soccer_server).
Claude Desktop (macOS config file):
~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"soccer-data": {
"command": "soccer-mcp"
}
}
}Cursor — ~/.cursor/mcp.json or .cursor/mcp.json in a project:
{
"mcpServers": {
"soccer-data": {
"command": "soccer-mcp"
}
}
}If the app cannot find soccer-mcp, use the full path from which soccer-mcp as "command", or:
"command": "python3",
"args": ["-m", "soccer_server"]Quit and reopen Claude or Cursor after saving. You should see all 10 tools after step 2 has finished downloading data.
Contributing
This project builds on ScraperFC. Bug fixes to the underlying scrapers are contributed back upstream — if you find something broken in a scraper, consider opening an issue or PR there too.
For issues specific to the pipeline (collect_data package / collect-data / collect_data.py) or the MCP server (soccer_server package / soccer-mcp / python -m soccer_server), open an issue here.
Credits
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Appeared in Searches
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/kupsas/football-data-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server