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 密钥是可计费凭证,官方配置示例将其放在连接 URL 中,请勿写入共享配置。赔率与盘口变化属于市场信息,服务器自身说明要求不要计算投注金额、赔付或收益,也不要推荐下注。

安装

在 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 分