Skip to main content
Glama
egemeny13

EuroLeague Analytics MCP

by egemeny13

EuroLeague Analytics

A validated data warehouse for EuroLeague and EuroCup basketball, built from the public play-by-play API and exposed to language models through an MCP server.

This is not an API wrapper. Thin wrappers already exist. The value is in the derived layer: possessions counted exactly from the event stream, four factors, and lineup-level on/off metrics reconstructed play by play.

Status: pre-release. The data has been explored and validated, the schema is settled, and the first code has just landed. No warehouse is loaded yet. The roadmap is in ROADMAP.md.


Why the documents matter more than the code right now

Most of this repository is currently prose, and that is deliberate. The hard part of this project is not writing a parser; it is knowing which parts of the source data lie, and proving it rather than assuming it.

Document

What it holds

CLAUDE.md

The rules. Event ordering, data handling, correctness requirements.

DECISIONS.md

Sixteen settled decisions with the measurement behind each.

ROADMAP.md

Phase sequence and the gate that opens each phase.

exploration/FINDINGS.md

Single-game API reconnaissance.

exploration/SEASON_SWEEP.md

Full-season validation across 330 games and 176,483 events.

exploration/SCHEMA_PROPOSAL.md

The schema, with what it makes hard as well as easy.

exploration/OPEN_ITEMS.md

Storage and re-ingest measurements, with their estimate boundaries stated.

Related MCP server: League of Legends MCP Server

Some things measurement established

  • The event arrays are the only trustworthy ordering. NUMBEROFPLAY looks like a sequence but is out of order in all 330 games, 2,169 times. The clock has one-second resolution, collides, and occasionally runs backwards. Sorting by either corrupts lineups silently, with no error and a plausible result.

  • A rule in this repository was wrong from the day it was written. It inferred offensive fouls from a foul and a turnover sharing a clock reading, generalised from a single game. Measured across the season it fires 1,525 times and is wrong 340 of them. It would have invented 340 turnovers a season. It was caught by measurement, not by review, and the correction is recorded rather than quietly edited away.

  • Clamping the backwards clock makes things worse, not better. It breaks 183 of 330 games and 959 player-rows, because the official box score is computed from the same flawed timestamps. The data is consumed unmodified.

  • Lineup reconstruction reproduces official minutes to the exact second for 99.54% of player-games. The remainder is quarantined rather than repaired.

Layout

src/euroleague/     the package
tests/              tests, and the committed fixture games
tests/fixtures/     nine games, each carrying one known defect
scripts/            fixture builder
exploration/        reconnaissance, kept as the record of how the findings were produced

The nine fixture games are selected by which defect each one carries — the only double-overtime game, the only game with overlapping substitution batches, the two that cannot be reconciled and stay quarantined — not because they were convenient. Each is committed with a checksum, so a fixture cannot drift from the archived response without a test failing.

Development

python -m venv .venv
.venv/Scripts/pip install -r requirements-dev.txt   # Linux/macOS: .venv/bin/pip
.venv/Scripts/pip install -e .
.venv/Scripts/pytest

The response cache is not committed — one season is 53 MB. Tests run against the fixtures and need no network and no database.

Licence

MIT. Note that euroleague_api (giasemidis) is deliberately not a dependency: it is GPLv3 and would bind this project's licence.

A
license - permissive license
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    MCP server for NBA live data and stats, providing read-only tools to query live scores, box scores, player info, standings, and more from NBA.com.
    15
    13
    1
    MIT
  • A
    license
    -
    quality
    B
    maintenance
    A read-only MCP server that provides access to the public Basketball Vlaanderen (VBL) API, enabling users to query clubs, teams, matches, standings, and more.
    MIT
  • A
    license
    -
    quality
    C
    maintenance
    Public read-only MCP server exposing today's free sports-betting projections, track record, methodology, engine versions, and per-game model reads from the Olympus Bets Analytics platform.
    MIT

View all related MCP servers

Related MCP Connectors

  • API-Football MCP — comprehensive soccer/football data

  • MLB Stats API MCP — official MLB statistics (keyless).

  • Football-Data.org MCP — soccer competitions, matches, standings

View all MCP Connectors

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/egemeny13/euroleague-analytics'

If you have feedback or need assistance with the MCP directory API, please join our Discord server