Validated EuroLeague & EuroCup Analytics for AI Models
Not an API wrapper. A precision derived layer reconstructing exact possessions, four factors, five-man lineup on/off splits, and court shot charts from public play-by-play event streams.
Verified Ground Truth
Every metric is mechanically proven against official EuroLeague box scores and explicit mathematical invariants.
The Derived Analytics Layer
Moving beyond box-score approximations to exact play-by-play event reconstruction.
Exact Possession Accounting
Traditional box score formulas (like FGA - ORB + TO + 0.44*FTA) are crude estimates. Possessions are counted directly from the event stream across five verified possession-ending criteria, preserving offensive rebound continuations and dead-ball technical free throws.
5-Man Lineup Reconstruction
Tracks substitution batches dynamically to maintain exactly five players on court at all times. Reconstructs matchup stints, lineup offensive/defensive ratings, net ratings, and on/off player impact splits.
Court Shot Coordinates
Merges coordinate sources with play-by-play event attempts, allowing models to filter shot locations by lineup unit, clutch time remaining, and game margin.
Dynamic Clutch Filters
Clutch is stored as margin_at_start and seconds_remaining_at_start on each possession rather than a hard-coded table. Query any clutch definition (e.g. final 2 minutes ±3 points or final 5 minutes ±5 points) on the fly.
Honest Data Integrity
When source data contains unresolvable clock anomalies or recording errors, games are explicitly quarantined (e.g. possession_gate) and disclosed in every response, never smoothed over with synthetic data.
Fast, Read-Only MCP Server
Exposes 11 specialized, read-only tools designed specifically for LLMs. Optimized database views serve complex four-factor and on/off splits in milliseconds.
11 Specialized MCP Tools
Read-only tools providing focused answers and strict pagination to preserve LLM context windows.
Quickstart Setup
Add EuroLeague Analytics to Claude Desktop or any MCP-compatible environment in seconds.
1. Local Setup via stdio (Developers)
Clone the repository and add the local server configuration to your claude_desktop_config.json:
{
"mcpServers": {
"euroleague": {
"command": "python",
"args": ["/path/to/euroleague-analytics/scripts/mcp_server.py"],
"env": {
"DATABASE_URL": "postgresql://postgres:[PASSWORD]@...pooler.supabase.com:5432/postgres"
}
}
}
}
2. Hosted Endpoint via HTTP/SSE
Connect directly to our hosted endpoint for authenticated read-only access:
{
"mcpServers": {
"euroleague-cloud": {
"url": "https://euroleague-analytics-mcp.fly.dev/mcp"
}
}
}
For more client setups, troubleshooting tips, and authentication details, see the Support Guide.
Sponsorship & Collaboration
Help unlock 23 seasons of European basketball history.
The Opportunity: Complete Historical Queryability
The public server currently operates within Supabase's free tier, maintaining a high-performance hot window of E2024, E2025, and live E2026.
The remaining 21 historical seasons (E2003–E2023, 5,200+ games) are archived in immutable cold storage (~118 MB). Sponsoring a dedicated Supabase Pro database (~$25–35/month) enables full PostgreSQL indexing and queryability for the entire 23-season archive.
Read the complete Sponsor One-Pager or get in touch at [email protected].