o
�Rh
1 � @ s� d Z ddlmZ ddlmZmZmZmZ ddlZddl m
Z
eddd�Ze
� Zej
d ed
ededeeef fd
d��Zej
d edeeef fdd��Zej
d edeeef fdd��Zej
deeef fdd��Zej
dhdee dee deeef fdd��Zej
dhd
ededee dee deeef f
dd��Zej
dhdee dee deeef fdd��Zej
dhd
ededee dee deeef f
dd��Zej
deeef fdd ��Zej
d!edeeef fd"d#��Zej
deeef fd$d%��Zej
d&edeeef fd'd(��Zej
d&edeeef fd)d*��Zej
d&ed
ededeeef fd+d,��Zej
d&edeeef fd-d.��Zej
did&ed
ee deeef fd/d0��Zej
did&ed
ee deeef fd1d2��Z ej
deeef fd3d4��Z!ej
d!edeeef fd5d6��Z"ej
deeef fd7d8��Z#ej
d!edeeef fd9d:��Z$ej
deeef fd;d<��Z%ej
d!edeeef fd=d>��Z&ej
deeef fd?d@��Z'ej
didAee deeef fdBdC��Z(ej
dDedeeef fdEdF��Z)ej
dDedeeef fdGdH��Z*ej
dDedeeef fdIdJ��Z+ej
dDedeeef fdKdL��Z,ej
d!edeeef fdMdN��Z-ej
deeef fdOdP��Z.ej
deeef fdQdR��Z/ej
did
ee deeef fdSdT��Z0ej
did
ee deeef fdUdV��Z1ej
deeef fdWdX��Z2ej
didYee deeef fdZd[��Z3ej
deeef fd\d]��Z4ej
d^edeeef fd_d`��Z5ej
did!ee deeef fdadb��Z6ej
dee fdcdd��Z7ej
deeef fdedf��Z8e9dgk�r�e�:� dS dS )jz�
NHL MCP Server
A Model Context Protocol server for the NHL API using FastMCP.
Provides access to all NHL API endpoints through MCP tools.
� )�FastMCP)�Dict�Any�Optional�ListN)�NHLAPIClientzNHL-API-Servera
This server provides comprehensive access to the NHL API endpoints.
Available functionality includes:
- Player information and statistics
- Team standings, stats, rosters, and schedules
- Game information including scores, play-by-play, and boxscores
- League schedules and TV information
- Playoff brackets and information
- Draft and season information
Use the appropriate tools to access specific NHL data.
All data is returned in JSON format from the official NHL API.
)�name�instructions� player_id�season� game_type�returnc C � t �| ||�S )z�
Get game log for a specific player, season, and game type.
Args:
player_id: Player ID (e.g., 8478402)
season: Season in YYYYYYYY format (e.g., 20232024)
game_type: Game type (2 for regular season, 3 for playoffs)
)�
nhl_client�get_player_game_log)r
r r � r �6/home/rjodouin/Documents/git/nhl-mcp/nhl_mcp_server.pyr $ �
r c C �
t �| �S )zu
Get detailed information for a specific player.
Args:
player_id: Player ID (e.g., 8478402)
)r �get_player_info�r
r r r r 0 �
r c C r )zx
Get current season game log for a specific player.
Args:
player_id: Player ID (e.g., 8478402)
)r �get_player_game_log_nowr r r r r : r r c C � t �� S )z'Get players currently in the spotlight.)r �get_player_spotlightr r r r r D � r �
categories�limitc C � t �| |�S )z�
Get current skater stats leaders.
Args:
categories: Optional categories filter (e.g., 'goals', 'assists', 'points')
limit: Optional limit (-1 for all results, default varies)
)r � get_current_skater_stats_leaders�r r r r r r K � r c C � t �| |||�S )a\
Get skater stats leaders for a specific season and game type.
Args:
season: Season in YYYYYYYY format (e.g., 20232024)
game_type: Game type (2 for regular season, 3 for playoffs)
categories: Optional categories filter (e.g., 'goals', 'assists', 'points')
limit: Optional limit (-1 for all results)
)r �get_skater_stats_leaders�r r r r r r r r# V � r# c C r )z�
Get current goalie stats leaders.
Args:
categories: Optional categories filter (e.g., 'wins', 'saves', 'shutouts')
limit: Optional limit (-1 for all results)
)r � get_current_goalie_stats_leadersr r r r r&