feat: implement MCP server and dashboard for football data platform

Add complete Nike football data platform with:
- FastMCP server exposing football data tools over HTTP
- RapidAPI client for free-api-live-football-data integration
- Bootstrap web dashboard with live match/standings views
- REST API endpoints for dashboard consumption
- Docker support with multi-stage build
- Comprehensive README with architecture docs
- Minimal .gitignore replacing verbose Python template
This commit is contained in:
2026-03-21 18:19:42 +00:00
parent b8689d530a
commit ee8436d5b8
81 changed files with 50251 additions and 176 deletions

View File

@@ -0,0 +1,347 @@
{
"status": "success",
"response": {
"standing": [
{
"name": "Arsenal",
"shortName": "Arsenal",
"id": 9825,
"pageUrl": "/teams/9825/overview/arsenal",
"deduction": null,
"ongoing": null,
"played": 30,
"wins": 20,
"draws": 7,
"losses": 3,
"scoresStr": "59-22",
"goalConDiff": 37,
"pts": 67,
"idx": 1,
"qualColor": "#2AD572"
},
{
"name": "Manchester City",
"shortName": "Man City",
"id": 8456,
"pageUrl": "/teams/8456/overview/manchester-city",
"deduction": null,
"ongoing": null,
"played": 29,
"wins": 18,
"draws": 6,
"losses": 5,
"scoresStr": "59-27",
"goalConDiff": 32,
"pts": 60,
"idx": 2,
"qualColor": "#2AD572"
},
{
"name": "Manchester United",
"shortName": "Man United",
"id": 10260,
"pageUrl": "/teams/10260/overview/manchester-united",
"deduction": null,
"ongoing": null,
"played": 29,
"wins": 14,
"draws": 9,
"losses": 6,
"scoresStr": "51-40",
"goalConDiff": 11,
"pts": 51,
"idx": 3,
"qualColor": "#2AD572"
},
{
"name": "Aston Villa",
"shortName": "Aston Villa",
"id": 10252,
"pageUrl": "/teams/10252/overview/aston-villa",
"deduction": null,
"ongoing": null,
"played": 29,
"wins": 15,
"draws": 6,
"losses": 8,
"scoresStr": "39-34",
"goalConDiff": 5,
"pts": 51,
"idx": 4,
"qualColor": "#2AD572"
},
{
"name": "Chelsea",
"shortName": "Chelsea",
"id": 8455,
"pageUrl": "/teams/8455/overview/chelsea",
"deduction": null,
"ongoing": null,
"played": 29,
"wins": 13,
"draws": 9,
"losses": 7,
"scoresStr": "53-34",
"goalConDiff": 19,
"pts": 48,
"idx": 5,
"qualColor": "#0046A7"
},
{
"name": "Liverpool",
"shortName": "Liverpool",
"id": 8650,
"pageUrl": "/teams/8650/overview/liverpool",
"deduction": null,
"ongoing": null,
"played": 29,
"wins": 14,
"draws": 6,
"losses": 9,
"scoresStr": "48-39",
"goalConDiff": 9,
"pts": 48,
"idx": 6,
"qualColor": null
},
{
"name": "Brentford",
"shortName": "Brentford",
"id": 9937,
"pageUrl": "/teams/9937/overview/brentford",
"deduction": null,
"ongoing": null,
"played": 29,
"wins": 13,
"draws": 5,
"losses": 11,
"scoresStr": "44-40",
"goalConDiff": 4,
"pts": 44,
"idx": 7,
"qualColor": null
},
{
"name": "Everton",
"shortName": "Everton",
"id": 8668,
"pageUrl": "/teams/8668/overview/everton",
"deduction": null,
"ongoing": null,
"played": 29,
"wins": 12,
"draws": 7,
"losses": 10,
"scoresStr": "34-33",
"goalConDiff": 1,
"pts": 43,
"idx": 8,
"qualColor": null
},
{
"name": "AFC Bournemouth",
"shortName": "Bournemouth",
"id": 8678,
"pageUrl": "/teams/8678/overview/afc-bournemouth",
"deduction": null,
"ongoing": null,
"played": 29,
"wins": 9,
"draws": 13,
"losses": 7,
"scoresStr": "44-46",
"goalConDiff": -2,
"pts": 40,
"idx": 9,
"qualColor": null
},
{
"name": "Fulham",
"shortName": "Fulham",
"id": 9879,
"pageUrl": "/teams/9879/overview/fulham",
"deduction": null,
"ongoing": null,
"played": 29,
"wins": 12,
"draws": 4,
"losses": 13,
"scoresStr": "40-43",
"goalConDiff": -3,
"pts": 40,
"idx": 10,
"qualColor": null
},
{
"name": "Sunderland",
"shortName": "Sunderland",
"id": 8472,
"pageUrl": "/teams/8472/overview/sunderland",
"deduction": null,
"ongoing": null,
"played": 29,
"wins": 10,
"draws": 10,
"losses": 9,
"scoresStr": "30-34",
"goalConDiff": -4,
"pts": 40,
"idx": 11,
"qualColor": null
},
{
"name": "Newcastle United",
"shortName": "Newcastle",
"id": 10261,
"pageUrl": "/teams/10261/overview/newcastle-united",
"deduction": null,
"ongoing": null,
"played": 29,
"wins": 11,
"draws": 6,
"losses": 12,
"scoresStr": "42-43",
"goalConDiff": -1,
"pts": 39,
"idx": 12,
"qualColor": null
},
{
"name": "Crystal Palace",
"shortName": "Crystal Palace",
"id": 9826,
"pageUrl": "/teams/9826/overview/crystal-palace",
"deduction": null,
"ongoing": null,
"played": 29,
"wins": 10,
"draws": 8,
"losses": 11,
"scoresStr": "33-35",
"goalConDiff": -2,
"pts": 38,
"idx": 13,
"qualColor": null
},
{
"name": "Brighton & Hove Albion",
"shortName": "Brighton",
"id": 10204,
"pageUrl": "/teams/10204/overview/brighton-hove-albion",
"deduction": null,
"ongoing": null,
"played": 29,
"wins": 9,
"draws": 10,
"losses": 10,
"scoresStr": "38-36",
"goalConDiff": 2,
"pts": 37,
"idx": 14,
"qualColor": null
},
{
"name": "Leeds United",
"shortName": "Leeds",
"id": 8463,
"pageUrl": "/teams/8463/overview/leeds-united",
"deduction": null,
"ongoing": null,
"played": 29,
"wins": 7,
"draws": 10,
"losses": 12,
"scoresStr": "37-48",
"goalConDiff": -11,
"pts": 31,
"idx": 15,
"qualColor": null
},
{
"name": "Tottenham Hotspur",
"shortName": "Tottenham",
"id": 8586,
"pageUrl": "/teams/8586/overview/tottenham-hotspur",
"deduction": null,
"ongoing": null,
"played": 29,
"wins": 7,
"draws": 8,
"losses": 14,
"scoresStr": "39-46",
"goalConDiff": -7,
"pts": 29,
"idx": 16,
"qualColor": null
},
{
"name": "Nottingham Forest",
"shortName": "Nottm Forest",
"id": 10203,
"pageUrl": "/teams/10203/overview/nottingham-forest",
"deduction": null,
"ongoing": null,
"played": 29,
"wins": 7,
"draws": 7,
"losses": 15,
"scoresStr": "28-43",
"goalConDiff": -15,
"pts": 28,
"idx": 17,
"qualColor": null
},
{
"name": "West Ham United",
"shortName": "West Ham",
"id": 8654,
"pageUrl": "/teams/8654/overview/west-ham-united",
"deduction": null,
"ongoing": null,
"played": 29,
"wins": 7,
"draws": 7,
"losses": 15,
"scoresStr": "35-54",
"goalConDiff": -19,
"pts": 28,
"idx": 18,
"qualColor": "#FF4646"
},
{
"name": "Burnley",
"shortName": "Burnley",
"id": 8191,
"pageUrl": "/teams/8191/overview/burnley",
"deduction": null,
"ongoing": null,
"played": 29,
"wins": 4,
"draws": 7,
"losses": 18,
"scoresStr": "32-58",
"goalConDiff": -26,
"pts": 19,
"idx": 19,
"qualColor": "#FF4646"
},
{
"name": "Wolverhampton Wanderers",
"shortName": "Wolves",
"id": 8602,
"pageUrl": "/teams/8602/overview/wolverhampton-wanderers",
"deduction": null,
"ongoing": null,
"played": 30,
"wins": 3,
"draws": 7,
"losses": 20,
"scoresStr": "22-52",
"goalConDiff": -30,
"pts": 16,
"idx": 20,
"qualColor": "#FF4646"
}
]
}
}