npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

espn-mcp

v0.1.0

Published

MCP server giving Claude access to ESPN sports data

Readme

espn-mcp

An MCP server that gives Claude access to live ESPN sports data — scores, stats, rosters, standings, and more across 21 leagues.

Installation

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "espn": {
      "command": "npx",
      "args": ["-y", "espn-mcp"]
    }
  }
}

Claude Code

claude mcp add espn -- npx -y espn-mcp

Tools

| Tool | Description | Key Parameters | |------|-------------|----------------| | lookup | Resolve a team name, player, or league to ESPN identifiers | query | | get_scores | Live and recent scores across leagues | league, team, date | | get_team_info | Team details: roster, schedule, injuries, depth chart, transactions, history | league, team, aspect | | get_player_info | Player details: stats, game log, splits, bio | league, player, aspect | | get_game | Game deep dive: box score, play-by-play, odds, win probability | gameId, detail | | get_standings | League standings or poll rankings | league, type | | get_leaders | Statistical leaders by category | league, category | | get_news | Latest headlines filtered by sport, league, or team | league, team |

sport is always optional — it's inferred from league automatically.

Supported Sports

Full Depth

NFL, NBA, MLB, NHL — box scores, play-by-play, player stats, odds, win probability, injuries, transactions

Strong

College Football, College Basketball, College Baseball, WNBA, UFL, College Hockey — game summaries, plays, odds, athletes

Good

Soccer (250 leagues including EPL, La Liga, MLS, Champions League), PLL, NLL, AFL — scores, teams, standings; top soccer leagues have odds and commentary

Basic

Golf (PGA), F1, NASCAR, IndyCar, UFC/MMA, Tennis, Rugby, CFL — scores, teams, standings, news

Example Queries

Once installed, ask Claude things like:

  • "What are today's NBA scores?"
  • "Show me the Chiefs roster"
  • "How is Patrick Mahomes doing this season?"
  • "What are the NFL standings?"
  • "Give me the box score from last night's Lakers game"
  • "Who leads the NBA in assists?"
  • "What's the latest NFL news?"
  • "What were the odds for the Super Bowl?"
  • "Show me the AP Top 25 college football rankings"
  • "Compare LeBron and Steph Curry's stats this season"

How It Works

The server sits between Claude and ESPN's public API:

  1. Smart resolution — "Niners" resolves to San Francisco 49ers (ESPN ID 25) via a built-in registry of 1,200+ teams with aliases
  2. Response trimming — ESPN responses can be 500KB+. The server extracts only what's relevant (a box score trims down to ~5KB)
  3. Caching — In-memory TTL cache prevents redundant API calls (30s for live scores, 1hr for rosters, etc.)
  4. Concurrency limiting — Max 2 simultaneous ESPN requests to avoid rate limiting

Development

git clone https://github.com/ebrodymoore/espn-mcp.git
cd espn-mcp
npm install
npm test          # Run tests
npm run build     # Compile TypeScript
npm run dev       # Run server in dev mode

Regenerate Team Registry

The team registry ships as a static JSON file. To refresh it with current ESPN data:

npm run generate-registry

License

MIT