Skip to main content
Glama
NHL MCP Server

NHL MCP Server

by dylangroos

NHL API - Model Context Protocol

A TypeScript implementation of the NHL API using the Model-Context Protocol pattern. This MCP server provides access to NHL data including teams, players, standings, schedules, and statistics.

Overview

This library provides a clean interface to the NHL's official APIs using the Model-Context Protocol (MCP). It allows you to fetch data from the NHL's APIs and provides it in a structured, easy-to-use format through MCP tools.

Related MCP server: NHL MCP Server

📊 Current State

As of March 10, 2025, the platform provides the following functionality:

✅ Working Features

  1. Standings

    • League-wide standings with division breakdowns

    • Complete team record information

  2. Teams

    • Basic team identity information

    • Current roster information with player details

    • Team statistics (skaters and goalies)

    • Prospect tracking

  3. Players

    • Player biographical information

    • Current season and career statistics

    • Award recognition

  4. Schedules

    • Current team schedules

    • Date-specific league schedules

    • Upcoming game information

  5. Statistics

    • Current statistical leaders (skaters and goalies)

    • Team-specific statistical breakdowns

  6. Game Information

    • Live game scores and status

    • Game schedules

❌ Issues Identified

  1. Team Information Gaps

    • Team division and conference information missing in team lookup

    • Basic team data incomplete (city/location details absent)

  2. Game Details

    • Limited game state information for in-progress games

    • Play-by-play data implementation needs further testing

  3. Historical Data

    • Seasonal historical data access needs verification

    • Historical schedule retrieval requires additional testing

  4. UI Integration

    • No current UI components for data visualization

    • Raw data format requires transformation for frontend display

📝 TODO List

High Priority

  • Fix team information API to include complete team details (division, conference, location)

  • Implement more detailed game state tracking for live games

  • Create data transformation layers for UI integration

  • Complete testing of historical data endpoints

Medium Priority

  • Develop standard data visualization components

  • Add player image integration

  • Implement team logo/brand assets

  • Create search functionality across all data types

Low Priority

  • Build caching system for frequently accessed data

  • Add fantasy hockey integration points

  • Develop news/media integration

  • Add social media content connections

🚀 Getting Started

  1. Clone the repository:

    git clone https://github.com/yourusername/nhl-mcp.git
    cd nhl-mcp
  2. Install dependencies:

    npm install
  3. Configure API credentials:

    cp .env.example .env
    # Edit .env with your API keys
  4. Start the development server:

    npm run dev

🔧 API Reference

The NHL-MCP platform provides the following core API endpoints:

Teams

  • get-team: Retrieve basic team information

  • get-team-roster: Get current team roster

  • get-team-stats: Get team statistics

  • get-team-prospects: Get team prospect information

Players

  • get-player-landing: Get detailed player information

Standings

  • get-current-standings: Get current NHL standings

Schedule

  • get-schedule: Get general schedule information

  • get-current-schedule: Get a team's upcoming schedule

  • get-date-schedule: Get schedule for a specific date

Statistics

  • get-current-stat-leaders: Get current statistical leaders

  • get-current-goalie-leaders: Get current goalie statistical leaders

Games

  • get-scores-now: Get current scores and game states

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository

  2. Create your feature branch (git checkout -b feature/amazing-feature)

  3. Commit your changes (git commit -m 'Add some amazing feature')

  4. Push to the branch (git push origin feature/amazing-feature)

  5. Open a Pull Request

📞 Contact

Project Maintainer: Dylan Groos


Note: This README documents the current state of the NHL-MCP project based on testing conducted on March 10, 2025. The platform accesses NHL data which is subject to terms and conditions set by the National Hockey League.

Available Tools

25 tools
get-current-goalie-leadersC

Get current NHL goalie stats leaders

Inputs: category (required), limit.

get-current-scheduleC

Get the current NHL schedule for a specific team

Inputs: teamAbbrev (required), limit.

get-current-standingsB

Get current NHL standings

Inputs: no named parameters.

get-current-stat-leadersC

Get current NHL skater stats leaders

Inputs: category (required), limit.

get-current-team-statsC

Get current statistics for an NHL team

Inputs: teamAbbrev (required).

get-date-range-scheduleC

Get the NHL schedule for a date range

Inputs: startDate (required), endDate (required).

get-date-scheduleC

Get the NHL schedule for a specific date

Inputs: date (required).

get-game-play-by-playB

Get play-by-play data for a specific NHL game

Inputs: gameId (required), maxEvents, filterByType.

get-month-scheduleC

Get the NHL schedule for a specific team for a given month

Inputs: teamAbbrev (required), year (required), month (required).

get-player-landingC

Get information about an NHL player

Inputs: playerId (required).

get-roster-by-seasonC

Get an NHL team's roster for a specific season

Inputs: teamAbbrev (required), season (required).

get-scheduleC

Get NHL game schedule

Inputs: teamAbbrev, date.

get-scores-by-dateB

Get NHL scores for a specific date

Inputs: date (required), includeCompleted, includeUpcoming.

get-scores-nowC

Get current NHL scores

Inputs: includeCompleted, includeUpcoming.

get-season-goalie-leadersC

Get NHL goalie stats leaders for a specific season and game type

Inputs: category (required), season (required), gameType, limit.

get-season-scheduleC

Get the full season schedule for a specific team

Inputs: teamAbbrev (required), season (required), gameType.

get-season-stat-leadersC

Get NHL skater stats leaders for a specific season and game type

Inputs: category (required), season (required), gameType, limit.

get-skater-leadersC

Get NHL statistical leaders for skaters

Inputs: category (required), limit.

get-teamC

Get information about an NHL team

Inputs: teamAbbrev (required).

get-team-prospectsC

Get prospects for an NHL team

Inputs: teamAbbrev (required).

get-team-rosterB

Get information about an NHL team's current roster

Inputs: teamAbbrev (required), seasonAbbrev (required).

get-team-statsC

Get statistics for an NHL team

Inputs: teamAbbrev (required).

get-team-stats-by-seasonC

Get statistics for an NHL team for a specific season and game type

Inputs: teamAbbrev (required), season (required), gameType.

get-team-stats-seasonsC

Get available seasons with statistics for an NHL team

Inputs: teamAbbrev (required).

get-week-scheduleC

Get the NHL schedule for a specific team for a given week

Inputs: teamAbbrev (required), date (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3/5.0

    Scored across 25 tools

    Disambiguation3/5

    The tools have clear purposes within the NHL domain, but there is significant overlap that could cause confusion. For example, 'get-current-team-stats', 'get-team-stats', and 'get-team-stats-by-season' all retrieve team statistics with subtle distinctions, and multiple schedule tools (e.g., 'get-current-schedule', 'get-date-schedule', 'get-month-schedule') target similar data with different filters. Descriptions help differentiate, but agents might misselect due to these overlaps.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern with 'get-' as the prefix, using snake_case throughout. This predictability makes it easy for agents to parse and understand the tool purposes, such as 'get-player-landing' or 'get-season-goalie-leaders'. There are no deviations in naming conventions across the set.

    Tool Count2/5

    With 25 tools, the count feels excessive for an NHL data server, leading to redundancy and potential bloat. Many tools could be consolidated into more flexible ones with parameters (e.g., a single schedule tool with date/team filters). This high number may overwhelm agents and complicate tool selection without adding proportional value.

    Completeness4/5

    The tool set covers a broad range of NHL data needs, including schedules, scores, standings, player and team statistics, rosters, and prospects. However, there are minor gaps, such as lack of tools for historical game data beyond play-by-play or detailed player career stats. Overall, it supports core workflows but could be more comprehensive for advanced queries.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      B
      quality
      D
      maintenance
      Provides Formula One data and statistics through a Model Context Protocol interface, allowing users to access race calendars, session results, driver statistics, telemetry data, and championship standings.
      8
      11
      MIT
    • A
      license
      A
      quality
      D
      maintenance
      Provides access to live NHL game data, player and team statistics, standings, schedules, playoff brackets, and historical comparisons through natural language queries using the official NHL API.
      11
      MIT
    • F
      license
      Not graded
      quality
      D
      maintenance
      Provides access to live NHL data including player statistics, team standings, game scores, schedules, and playoff information through 40+ NHL API endpoints.
      3
      -
    • A
      license
      Not graded
      quality
      D
      maintenance
      Provides real-time access to football (soccer) data including fixtures, standings, teams, players, transfers, and injuries through the API-Football service via the Model Context Protocol.
      4
      ISC