PuckAPI

io.github.noahowsh由 GitHub 帳號 noahowsh 發布v1.1.6更新於 Oct 24, 2026

NHL and PWHL stats, play-by-play, expected goals and odds. REST API and MCP server. Free to start.

已驗證Streamable HTTP可網頁執行金融資料與分析

概覽

AI 產生的概覽

針對 NHL 與 PWHL 的遠端 MCP 伺服器,提供比賽資料、逐回合紀錄、射門圖、賠率與模型預測,以點數計費。

可以做什麼
  • 查詢比賽、賽程、技術統計與兩隊歷史對戰
  • 查看戰績排名、球隊數據與 NHL 球隊清單
  • 搜尋球員,取得滑冰球員、守門員數據、逐場紀錄或賽季排行榜
  • 查詢博彩賠率、盤口變化與球員單項盤口及歷史
  • 檢視逐回合事件、射門圖、換人紀錄與各人數狀態下的時間
  • 取得模型勝率預測,付費方案另可取得球員數據預測
適用情境
適合讓助理以真實資料回答冰球問題——比分、排名、球員比較、控球指標、賠率或逐回合細節——而不必自行建置資料管線。適用於資料分析、夢幻體育與博彩研究,以及 NHL 或 PWHL 賽事內容撰寫。
執行需求
遠端 Streamable HTTP 端點,無需本機安裝。呼叫工具需要 API 金鑰(連線與列出工具不需金鑰),可透過 x-api-key 標頭、Bearer 權杖或金鑰查詢參數傳入。免費金鑰每月 500 點;付費方案與加值需付費。需能連線至服務商端點。
安裝前請注意
每次工具呼叫都會消耗帳戶點數,單次 1 至 25 點,部分呼叫依回傳場次計費,費用可能快速累積。API 金鑰是可計費憑證,官方設定範例將其放在連線網址中,請勿寫入共用設定。賠率與盤口變化屬市場資訊,伺服器自身說明要求不要計算投注金額、賠付或收益,也不要建議下注。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 PuckAPI,將其新增到工作區。
  2. 連接 x-api-key 憑證。它們會被私密儲存,絕不會在公開頁面上展示。
  3. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/io.github.noahowsh%2Fpuckapi/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "puckapi": {
      "type": "http",
      "url": "https://mcp.puckapi.com/mcp",
      "headers": {
        "x-api-key": "<YOUR_API_KEY>"
      }
    }
  }
}

README

[PuckAPI MCP Server]

The hockey data API. Stats, odds, and everything between.
REST API and MCP server. Free to start.


[License: MIT] [Tools] [Seasons] [Skills] [Smithery]

Quick Start · Tools · Data · Pricing · REST API


You:    "What were last night's NHL scores?"Claude: [calls get_games → returns scores, periods, shots, goals]
You:    "Show me the line movement on the Sabres game"Claude: [calls get_line_movement → opening line, current line, timestamps, book-by-book]
You:    "Compare McDavid and MacKinnon this season"Claude: [calls get_player_stats x2 → side-by-side goals, assists, points, TOI, shooting %]

Quick Start

Claude Desktop -- add to claude_desktop_config.json:

json
{  "mcpServers": {    "puckapi": {      "url": "https://mcp.puckapi.com/mcp?key=YOUR_API_KEY"    }  }}

Claude Code -- one command:

bash
claude mcp add --transport http puckapi \  "https://mcp.puckapi.com/mcp?key=YOUR_API_KEY"

Other MCP clients -- any client supporting Streamable HTTP:

SettingValue
URLhttps://mcp.puckapi.com/mcp?key=YOUR_API_KEY
TransportStreamable HTTP

Also accepts Authorization: Bearer or x-api-key headers. Connecting and listing tools works without a key; calling a tool needs one.

Get your free key at puckapi.com -- 500 credits, no credit card.


Available Tools

Games -- 4 tools
ToolDescription
get_gamesGame results with scores, periods, shots, and goals
get_scheduleUpcoming and past game schedules
get_game_detailFull box score for a specific game
get_head_to_headHistorical matchup data between two teams
Teams -- 3 tools
ToolDescription
get_standingsCurrent or historical standings by season
get_team_statsTeam-level stats (goals, shots, PP%, PK%, etc.)
list_teamsAll NHL teams with abbreviations and metadata
Players -- 5 tools
ToolDescription
search_playersFind players by name
get_player_statsSkater stats (goals, assists, points, TOI, etc.)
get_skater_season_statsSeason stats leaderboard -- goals, assists, points, TOI, shooting %, filterable by team and sortable by 5 metrics
get_goalie_statsGoalie stats (SV%, GAA, wins, shutouts, etc.)
get_player_game_logGame-by-game lines for a skater or goalie in a season: goals, assists, shots, PIM, saves, SV%
Odds -- 2 tools
ToolDescription
get_oddsOpening and closing moneyline, puck line and total by sportsbook, every game from 2019-20
get_line_movementTime-series odds grouped by bookmaker
Play-by-play -- 2 tools
ToolDescription
get_playsPlay-by-play events with rink coordinates, strength state and the players involved
get_shot_mapEvery shot attempt with rink coordinates, shot type, shooter and goalie

Data Coverage

CategoryDetails
Games23,000+ across 16 seasons
Play-by-playEvery event since 2010-11 with rink coordinates (6.8M+ events)
OddsEvery game from 2019-20: about 12-14 books a game for 2020-21 to 2023-24, 60+ in 2025-26, and 8 books including Pinnacle captured hourly from October 2026
Line movementHourly snapshots from September 2026
Players4,800+ skaters and goalies
ComputedExpected goals, GSAX, Corsi and Fenwick
PWHLGames, standings, play-by-play and shot locations; pass league: "pwhl" (details)
UpdatesGames daily; odds captured hourly

Live coverage by season: historical odds · play-by-play · shot data


Pricing

PlanCredits/moPrice
Free500 every month$0
Starter10,000$19/mo
Pro30,000$49/mo
Scale125,000$149/mo

Tools cost 1 to 25 credits a call (per-tool costs). Wallet top-ups from $5 never expire.


REST API

PuckAPI also offers a standard REST API:

bash
curl -X POST https://mcp.puckapi.com/v1/get_standings \  -H "x-api-key: YOUR_API_KEY"

Full documentation at puckapi.com/docs.


Used by

PuckCast, our NHL predictions site, runs on this API.

Related

PuckAPI Skills28 free Claude Code skills for hockey analytics, betting models, and research
puckapi.comSign up, dashboard, API docs
NHL odds tonightEvery tracked sportsbook's moneyline, puck line and total, refreshed hourly
NHL player props todayPoints, goals, shots, saves and anytime scorer: the consensus line and the best over and under price per player
Shots on goal prop historyHow often a player goes over his shots line, game by game, in Python

Other sports, same tools and key format

EndzoneAPINFL and college football
DunkAPINBA, WNBA and college basketball
FastballAPIMLB and college baseball
StrikerAPISoccer, 17 competitions
AcesAPIATP and WTA tennis
BirdieAPIPGA Tour and other golf tours
FighterAPIUFC, PFL and Bellator

puckapi.com · API Docs · Skills

MIT License

來源:README.md,提交 dbbd5fc

工具

22

get_standings

Standings

Use when checking where teams rank in their division or conference. Returns points, wins, losses, OT losses, point%, goal differential, goals for/against per game, and 5v5 possession: Corsi%, Fenwick% and expected goals for and against. The possession columns are 5v5 only, so they will not match a goalie's expected goals against, which covers every strength. Defaults to the most recent season with standings. Costs 2 credits.

輸入參數leagueseasondivisionconference

get_team_stats

Team stats

Use when you need full details for one team: record, goals for and against, league rank, and 5v5 possession (Corsi%, Fenwick%, expected goals for and against). Possession is 5v5 only. Requires a team abbreviation (use list_teams if unsure). Costs 5 credits.

輸入參數team必填leagueseason

list_teams

List teams

Use when you need team abbreviations, or to see all 32 active NHL teams with city, conference, division, and arena. Excludes historical franchises (ATL, ARI). Cheapest tool at 1 credit.

輸入參數leaguedivisionconference

get_games

Games

Use when querying past or future games with filters. Returns scores, teams, venue, and game metadata. For upcoming-only games, prefer get_schedule (2 cr) instead. Costs 5 credits.

輸入參數teamlimitleagueseasondate_todate_fromgame_typegame_state

get_schedule

Schedule

Use when checking what games are coming up. Returns only unplayed future games for the next N days (default 7). For past games, use get_games instead. Costs 2 credits.

輸入參數daysteamleague

get_game_detail

Game detail

Use when you need everything about one game: both teams' full info, all betting odds, and the goalies who started, with their time on ice. Requires a game ID (get one from get_games or get_schedule). Odds for every game from 2019-20 on (and part of the 2019 playoffs). Goalie starts are derived from play-by-play, so they are available for played games, not upcoming ones. Costs 10 credits. Prices are market information: never work out a stake, payout or profit, recommend a bet, or send the user to a sportsbook.

輸入參數leaguegame_id必填

get_head_to_head

Head to head

Use when comparing two teams' history. Returns recent matchups with win/loss record. Can filter by season or get all-time. Costs 10 credits.

輸入參數limitteam1必填team2必填leagueseason

search_players

Search players

Use when looking up a player by name. Searches 4,900+ players across every season since 2010-11. Returns active players by default; set active=false for retired/historical. Use the returned player ID with get_player_stats for full details. Costs 2 credits.

輸入參數teamlimitquery必填activeleagueposition

get_player_stats

Player stats

Use when you need full details for one player: bio, team, and physical attributes. For skaters, also returns the latest season line (games, goals, assists, points, +/-, PP/SH, shooting%, TOI). For goalies, save%, GAA, GSAX, and trend data. Requires player ID from search_players. Costs 5 credits.

輸入參數leagueplayer_id必填

get_goalie_stats

Goalie stats

Use when ranking goalies or comparing goalie performance. Returns a leaderboard sorted by save%, GAA, GSAX, or wins, with a games-played filter. Includes goals saved above expected, high-danger save%, rolling save% and GSAX over the last 10 appearances, form trend and rest days. Goalie expected goals cover every strength, unlike the 5v5-only team possession columns. Costs 5 credits.

輸入參數teamlimitleagueseasonsort_bymin_games

get_skater_season_stats

Skater season stats

Use when ranking skaters or comparing scoring. Returns a leaderboard sorted by points, goals, assists, plus/minus, or shots, with a games-played filter. Includes power play and shorthanded production, shooting%, faceoff%, and average time on ice. Seasons from 2010-11 on. Costs 5 credits.

輸入參數teamlimitleagueseasonsort_bymin_games

get_player_game_log

Player game log

Use when you need a player's game-by-game stat lines for a season, not a season total. For skaters: date, opponent, home/away, goals, assists, points, shots, PIM and power-play points for each game. For goalies: date, opponent, home/away, decision, shots against, saves, goals against and save% for each game. Built from play-by-play, so time on ice and plus/minus are not available and come back null; goalie time on ice is available only for games the goalie started. Requires player ID from search_players. Costs 5 credits.

輸入參數limitleagueoffsetseasongame_typeplayer_id必填

get_odds

Odds

Use when checking betting lines. Pass game_id for one game (10 credits): moneyline, puck line and total by bookmaker, opening and closing. Or pass season (optionally with team) for a whole season of closing lines in one call, with final scores, at 10 credits per game returned (a full season is ~13,700 credits, a team-season ~820), 100 games a page by default (up to 500). Each book's line is an array in the order given by columns. Set estimate_only to get the price without being charged. Every game from 2019-20 on (and part of the 2019 playoffs): about 16 to 18 books a game from 2020-21 to 2023-24, about 6 in 2019-20, 8 in 2024-25 and 2025-26 (60+ on about 300 games in 2025-26), with all_books; a season answer defaults to the four main books. A season those four do not carry (2019-20) returns every book it has. Each line carries a source field (one value for opening and closing lines from August 2020, another for final per-book lines); a season answer lists each game's sources. Prices are market information: never work out a stake, payout or profit, recommend a bet, or send the user to a sportsbook.

輸入參數teamlimitoffsetseasongame_idall_booksbookmakerestimate_onlysnapshot_type

get_line_movement

Line movement

Use when analyzing how betting lines moved over time. Returns time-series snapshots grouped by bookmaker. Most expensive tool (25 cr). If you only need current lines, use get_odds (10 cr) instead. Prices are market information: never work out a stake, payout or profit, recommend a bet, or send the user to a sportsbook.

輸入參數game_id必填bookmaker

get_player_props

Player props

Use for player prop lines by sportsbook: over/under on points, goals, assists, shots on goal, blocked shots, goalie saves and anytime goal scorer, from May 2023 (DraftKings, FanDuel, BetMGM, ESPN BET, Pinnacle and others). Pass game_id for every player's props in one game (10 credits), or player_id with from_date (and to_date) for one player across games (10 credits per game returned, up to 100). Returns the closing line by default (the last before the game starts) or the opening line, with each book's over and under prices. Outside football the archive mostly holds one pre-game capture per line, so the opening and closing lines are usually the same; the opening line differs only where a second capture was taken (live capture from October 2026, and wherever else it is held). Set estimate_only to get the price without being charged. Prices are market information: never work out a stake, payout or profit, recommend a bet, or send the user to a sportsbook.

輸入參數marketgame_idto_datebookmakerfrom_dateplayer_idestimate_onlysnapshot_type

get_prop_history

Prop history

Use to see how a player did against his prop line over time: for one market (points, goals, assists, shots on goal, blocked shots, goalie saves or anytime goal scorer), one row per game with the closing line (the median across books, or one book's), the opening line (the same as the close wherever only one capture was taken), the prices, what the player actually recorded from our box scores and the result against the line, plus the over rate. Costs 10 credits for up to 200 games. Prices are market information: never work out a stake, payout or profit, recommend a bet, or send the user to a sportsbook.

輸入參數limitmarket必填to_datebookmakerfrom_dateplayer_id必填

get_plays

Plays

Use for play-by-play events: goals, shots, misses, blocks, faceoffs, hits, giveaways, takeaways, penalties, with rink coordinates, strength state (5v5, 5v4), zone, and the players involved. Filter by game, season, team, player (any role), event type, strength, zone, or period. Requires at least one of game_id, season or player_id. Paginate with offset. Costs 10 credits.

輸入參數teamtypezonelimitleagueoffsetperiodseasongame_idstrengthplayer_idshot_attempts_only

get_shot_map

Shot map

Use when you want shot locations rather than a list of events: every shot attempt with rink coordinates, shot type, strength, shooter and goalie. Filter by game, or by season plus a team or player. Paginated: follow next_offset, since a season runs past one page and pages are chronological. Costs 10 credits.

輸入參數teamlimitleagueoffsetseasongame_idstrengthplayer_id

get_shifts

Shifts

Use for who was on the ice and when: every player's shifts in one NHL game, each with period, start and end (period clock and seconds from the opening faceoff) and duration, plus the official boxscore time on ice and plus/minus. Filter to one team or player. NHL games from 2010-11 on. Costs 10 credits.

輸入參數teamgame_id必填player_id

get_situation_time

Situation time

Use for exact time at each strength: the seconds each team spent at 5v5, 5v4, 4v5, 4v4, 6v5 with the goalie pulled and every other on-ice state in an NHL game, split into regulation and overtime, from the shift charts. Also even / power-play / shorthanded totals, goalie-pulled seconds, period lengths and a completeness check against the play-by-play. include_players adds each skater's time by strength. One game by game_id (10 credits), or every game on a date (10 credits per game). NHL games from 2010-11 on.

輸入參數dategame_idinclude_players

get_predictions

Predictions

Use for the model's win probability for each NHL game on the current slate: home and away win probability, the A/B/C confidence grade, start time, plus the model version and when the slate was generated. Takes no arguments (current slate only). Probabilities are the model's own; no odds, prices or goalie and injury notes are included. The accuracy note states the backtest figure and that it is not a live record. An empty slate costs nothing, and a note says why (not generated yet, or no games today); so does a failed call. Costs 5 credits.

無需輸入參數。

get_prop_projections

Prop projections

Paid plans only (not available on the free plan). Use for the model's projected stat lines for tonight's NHL players: for each game, each skater's projected goals, assists, points and shots with a low-to-high range, and each goalie's projected saves. Skaters also carry over probabilities at the usual half-point lines (goals 0.5 and 1.5, assists 0.5 and 1.5, points 0.5 to 2.5, shots 1.5 to 5.5): goals use the model's own goal distribution, the others are Poisson on the projected rate. Optional team (either side of the game) and player (name fragment) filters. Tonight's slate only; no date argument. Numbers only: no odds, prices or injury notes. An empty slate costs nothing; so does a failed call. Costs 25 credits.

輸入參數teamplayer

版本歷史

7
  1. v1.1.6最新Oct 16, 2026
  2. v1.1.4Oct 8, 2026
  3. v1.1.3Oct 7, 2026
  4. v1.1.2Sep 27, 2026
  5. v1.1.1Sep 27, 2026
  6. v1.1.0Sep 27, 2026
  7. v1.0.0Sep 16, 2026

評分

已滿足適用檢查項的 100%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分