ESPN MCP Server avatar

ESPN MCP Server

Pricing

$0.01 / 1,000 sports data

Go to Apify Store
ESPN MCP Server

ESPN MCP Server

Get ESPN scoreboards, schedules, standings, teams, rosters, athlete data, news, rankings, odds, and game details. Save structured sports data for AI research or export it from an Actor run.

Pricing

$0.01 / 1,000 sports data

Rating

0.0

(0)

Developer

Maxime Dupré

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

3 days ago

Last modified

Share

🏟️ ESPN sports research for AI and data teams

ESPN MCP Server helps sports analysts, app builders, and AI teams get structured ESPN sports data. Find scores, schedules, standings, teams, athletes, news, rankings, odds, and game details without copying pages by hand.

📦 Returned data

Each sports entry is one dataset row. Rows can hold game IDs, dates, scores, teams, standings, athletes, news, rankings, odds, and ESPN links. ESPN does not provide every field for every sport or league. Missing values are not guessed.

🚀 Running the Actor

  1. Open the Actor input.
  2. Choose one target.
  3. Fill in the options for that target. Options for other targets are ignored.
  4. For a league target, choose a sport and add ESPN league slugs.
  5. Run the Actor and open Sports results.

🎛️ Input

FieldTypeWhat it does
targetstringRequired. Chooses scoreboards, schedules, standings, teams, roster, gameAnalysis, odds, athlete, news, rankings, or search.
scoreboardDatestringGets games on this date. Leave it empty for the current scoreboard.
scheduleTeamIdstringLimits a schedule to one ESPN team ID. Leave it empty for the full league schedule.
scheduleStartDatestringGets schedule rows on or after this date.
scheduleEndDatestringGets schedule rows on or before this date.
rosterTeamIdstringSets the ESPN team ID for a roster.
gameIdstringSets the ESPN game ID for game analysis.
oddsGameIdstringSets the ESPN game ID for available odds and win chance.
athleteQuerystringFinds an athlete by name or gets details by ESPN athlete ID.
newsKeywordsstring[]Narrows ESPN news. Leave it empty for recent league news.
rankingTypestringChooses a supported college, MMA, boxing, or tennis ranking.
searchQuerystringSearches ESPN for a player, team, or league.
sportstringSets the sport for league-based targets.
leaguesstring[]Sets one or more ESPN league slugs for a league-based target.

Successful default-input QA run:

{
"target": "scoreboards",
"sport": "football",
"leagues": [
"nfl",
"college-football"
],
"scoreboardDate": "2025-11-29"
}

📤 Output

The dataset uses the shape for the chosen target. Optional fields appear only when ESPN provides them.

Scoreboard row

FieldTypeWhat it does
resultTypestringIs scoreboard.
eventIdstringESPN game ID.
sportstringSport slug.
leaguestringLeague slug.
namestringGame name.
datestringGame date and time.
statusstringGame status.
competitorsobject[]Teams in the game.
competitors.teamIdstringESPN team ID.
competitors.namestringTeam name.
competitors.abbreviationstringTeam short name.
competitors.homeAwaystringHome or away side.
competitors.scorestringTeam score.
competitors.winnerbooleanWhether the team won.
venueobjectGame venue.
venue.namestringVenue name.
venue.citystringVenue city.
venue.statestringVenue state.
venue.countrystringVenue country.
sourceUrlstringESPN game link.
{
"resultType": "scoreboard",
"eventId": "401752921",
"sport": "football",
"league": "college-football",
"name": "Ohio State Buckeyes at Michigan Wolverines",
"date": "2025-11-29T17:00Z",
"status": "Final",
"competitors": [
{
"teamId": "130",
"name": "Michigan Wolverines",
"abbreviation": "MICH",
"homeAway": "home",
"score": "9",
"winner": false
},
{
"teamId": "194",
"name": "Ohio State Buckeyes",
"abbreviation": "OSU",
"homeAway": "away",
"score": "27",
"winner": true
}
],
"venue": {
"name": "Michigan Stadium",
"city": "Ann Arbor",
"state": "MI",
"country": "USA"
},
"sourceUrl": "https://www.espn.com/college-football/game/_/gameId/401752921/ohio-state-michigan"
}

Schedule row

FieldTypeWhat it does
resultTypestringIs schedule.
eventIdstringESPN game ID.
sportstringSport slug.
leaguestringLeague slug.
teamIdstringTeam filter ID, when used.
namestringGame name.
datestringGame date and time.
statusstringGame status.
competitorsobject[]Teams in the game.
competitors.teamIdstringESPN team ID.
competitors.namestringTeam name.
competitors.abbreviationstringTeam short name.
competitors.homeAwaystringHome or away side.
competitors.scorestringTeam score.
competitors.winnerbooleanWhether the team won.
venueobjectGame venue.
venue.namestringVenue name.
venue.citystringVenue city.
venue.statestringVenue state.
venue.countrystringVenue country.
sourceUrlstringESPN game link.
{
"resultType": "schedule",
"eventId": "401772891",
"sport": "football",
"league": "nfl",
"name": "Green Bay Packers at Detroit Lions",
"date": "2025-11-27T18:00Z",
"status": "Final",
"competitors": [
{
"teamId": "8",
"name": "Detroit Lions",
"abbreviation": "DET",
"homeAway": "home",
"score": "24",
"winner": false
},
{
"teamId": "9",
"name": "Green Bay Packers",
"abbreviation": "GB",
"homeAway": "away",
"score": "31",
"winner": true
}
],
"venue": {
"name": "Ford Field",
"city": "Detroit",
"state": "MI",
"country": "USA"
},
"sourceUrl": "https://www.espn.com/nfl/game/_/gameId/401772891/packers-lions"
}

Standing row

FieldTypeWhat it does
resultTypestringIs standing.
sportstringSport slug.
leaguestringLeague slug.
groupstringConference or other group.
positionnumberTeam place in the group.
teamIdstringESPN team ID.
teamNamestringTeam name.
teamAbbreviationstringTeam short name.
recordstringWin-loss record.
statsobjectLeague-specific standing facts.
sourceUrlstringESPN team link.
{
"resultType": "standing",
"sport": "football",
"league": "nfl",
"group": "American Football Conference",
"position": 1,
"teamId": "2",
"teamName": "Buffalo Bills",
"teamAbbreviation": "BUF",
"record": "0-0",
"stats": {
"differential": 0,
"gamesBehind": 0,
"losses": 0,
"playoffSeed": 0,
"pointDifferential": 0,
"pointsAgainst": 0,
"pointsFor": 0,
"streak": 0,
"ties": 0,
"winPercent": 0,
"wins": 0,
"divisionLosses": 0,
"divisionRecord": 0,
"divisionTies": 0,
"divisionWins": 0,
"overall": "0-0",
"Home": "0-0",
"Road": "0-0",
"vs. Div.": "0-0",
"vs. Conf.": "0-0"
},
"sourceUrl": "https://www.espn.com/nfl/team/_/name/buf/buffalo-bills"
}

Team row

FieldTypeWhat it does
resultTypestringIs team.
sportstringSport slug.
leaguestringLeague slug.
teamIdstringESPN team ID.
teamNamestringTeam name.
abbreviationstringTeam short name.
locationstringTeam place.
colorstringTeam color code.
logoUrlstringTeam logo link.
sourceUrlstringESPN team link.
{
"resultType": "team",
"sport": "hockey",
"league": "nhl",
"teamId": "25",
"teamName": "Anaheim Ducks",
"abbreviation": "ANA",
"location": "Anaheim",
"color": "fc4c02",
"logoUrl": "https://a.espncdn.com/i/teamlogos/nhl/500/ana.png",
"sourceUrl": "https://www.espn.com/nhl/team/_/name/ana/anaheim-ducks"
}

Roster row

FieldTypeWhat it does
resultTypestringIs roster.
sportstringSport slug.
leaguestringLeague slug.
teamIdstringESPN team ID.
teamNamestringTeam name.
athleteIdstringESPN athlete ID.
athleteNamestringAthlete name.
positionstringPlaying position.
jerseystringJersey number.
headshotUrlstringHeadshot link.
sourceUrlstringESPN athlete link.
{
"resultType": "roster",
"sport": "basketball",
"league": "nba",
"teamId": "13",
"teamName": "Los Angeles Lakers",
"athleteId": "5113969",
"athleteName": "Cameron Carr",
"position": "Guard",
"headshotUrl": "https://a.espncdn.com/i/headshots/nba/players/full/5113969.png",
"sourceUrl": "https://www.espn.com/nba/player/_/id/5113969/cameron-carr"
}

Game analysis row

FieldTypeWhat it does
resultTypestringIs gameAnalysis.
eventIdstringESPN game ID.
sportstringSport slug.
leaguestringLeague slug.
namestringGame name.
datestringGame date and time.
statusstringGame status.
venueobjectVenue with name, city, state, and country.
attendanceintegerReported crowd size.
officialsstring[]Game officials.
competitorsobject[]Teams and box-score facts.
competitors.teamIdstringESPN team ID.
competitors.namestringTeam name.
competitors.scorestringTeam score.
competitors.winnerbooleanWhether the team won.
competitors.statisticsobjectTeam statistics.
leadersobject[]Leaders with category, athleteId, name, and value.
playerStatisticsobject[]Player rows with athleteId, athleteName, teamName, and statistics.
scoringPlaysobject[]Plays with period, clock, text, and score.
sourceUrlstringESPN game link.
{
"resultType": "gameAnalysis",
"eventId": "401810171",
"sport": "football",
"league": "nfl",
"name": "Game",
"officials": [],
"competitors": [],
"leaders": [],
"playerStatistics": [],
"scoringPlays": []
}

Odds row

FieldTypeWhat it does
resultTypestringIs odds.
eventIdstringESPN game ID.
sportstringSport slug.
leaguestringLeague slug.
providerstringOdds provider.
detailsstringOdds text.
spreadnumberPoint spread.
overUndernumberTotal line.
homeMoneylinenumberHome moneyline.
awayMoneylinenumberAway moneyline.
homeWinProbabilitynumberHome win chance from 0 to 1.
awayWinProbabilitynumberAway win chance from 0 to 1.
sourceUrlstringESPN game link.
{
"resultType": "odds",
"eventId": "401810171",
"sport": "football",
"league": "nfl"
}

Athlete row

FieldTypeWhat it does
resultTypestringIs athlete.
athleteIdstringESPN athlete ID.
athleteNamestringAthlete name.
sportstringSport slug.
leaguestringLeague slug.
teamIdstringESPN team ID.
teamNamestringTeam name.
positionstringPlaying position.
jerseystringJersey number.
headshotUrlstringHeadshot link.
profileobjectProfile facts.
profile.displayNamestringDisplay name.
profile.ageintegerAge.
profile.heightstringHeight.
profile.weightstringWeight.
profile.birthPlacestringBirthplace.
profile.statusstringAthlete status.
seasonStatisticsobject[]Season facts with name, value, and displayValue.
careerStatisticsobject[]Career facts with name, value, and displayValue.
gameLogobject[]Games with eventId, date, opponent, and statistics.
splitsobject[]Splits with name and statistics.
sourceUrlstringESPN athlete link.
{
"resultType": "athlete",
"athleteId": "1966",
"athleteName": "LeBron James",
"sport": "basketball",
"league": "nba",
"profile": {
"displayName": "LeBron James"
},
"sourceUrl": "https://www.espn.com/nba/player/_/id/1966/lebron-james"
}

News row

FieldTypeWhat it does
resultTypestringIs news.
sportstringSport slug.
leaguestringLeague slug.
headlinestringStory headline.
descriptionstringStory summary.
publishedAtstringPublish date and time.
bylinestringWriter or desk.
imageUrlstringStory image link.
sourceUrlstringESPN story link.
keywordstringFirst keyword that found the saved story.
{
"resultType": "news",
"sport": "baseball",
"league": "mlb",
"headline": "Fantasy baseball lineup advice for Saturday: Brewers' Gasser offers upside",
"description": "Everything you need to know to set your fantasy baseball lineups for Saturday's MLB action.",
"publishedAt": "2026-07-24T19:40:20Z",
"byline": "ESPN Fantasy",
"imageUrl": "https://a.espncdn.com/photo/2026/0724/r1693310_608x342_16-9.jpg"
}

Ranking row

FieldTypeWhat it does
resultTypestringIs ranking.
rankingTypestringRanking family.
ranknumberCurrent rank.
previousRanknumberPrior rank.
namestringRanked name.
entityIdstringESPN entity ID.
recordstringTeam record.
pointsnumberRanking points.
sourceUrlstringESPN link.
{
"resultType": "ranking",
"rankingType": "collegeFootball",
"rank": 1,
"previousRank": 1,
"name": "Hoosiers",
"entityId": "84",
"record": "16-0",
"points": 1650,
"sourceUrl": "https://www.espn.com/college-football/team/_/id/84/indiana-hoosiers"
}

Search row

FieldTypeWhat it does
resultTypestringIs search.
entityTypestringAthlete, team, or league.
entityIdstringESPN entity ID.
namestringEntity name.
sportstringSport slug.
leaguestringLeague slug.
descriptionstringEntity details.
imageUrlstringEntity image link.
sourceUrlstringESPN link.
{
"resultType": "search",
"entityType": "team",
"entityId": "2",
"name": "Boston Celtics",
"sport": "basketball",
"league": "nba",
"sourceUrl": "https://www.espn.com/nba/team/_/name/bos/boston-celtics"
}

💳 Pricing

This Actor uses pay-per-event pricing. You pay for each ESPN sports row saved to the dataset. A run with no saved sports rows does not create this charge. Cost depends on how many rows the chosen target returns.

🔌 Integrations

Use the dataset with the Apify API, downloads, schedules, webhooks, and supported Apify integrations. This guide shows how to connect an Actor to other tools:

❓ FAQ

Do I need an ESPN account or API key?

No ESPN account or ESPN API key is needed for this public sports research.

Can it place bets or give betting advice?

No. It only returns ESPN odds data when available. It does not place bets, make picks, or promise an outcome.

Why are some fields missing?

ESPN data differs by sport, league, game, and date. The Actor keeps available data and does not make up missing values.

Can I request several unrelated targets in one run?

No. Choose one target for each run. You can add several league slugs of the same sport to supported league targets.

Can I use the output outside an MCP client?

Yes. A regular Actor run saves structured rows to an Apify dataset for viewing and export.

📝 Changelog

0.0: Initial release

🆘 Support

For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡

Made with ❤️ by Maxime Dupré