Maxpreps Mcp

io.github.chrischall由 GitHub 帳號 chrischall 發布v1.2.0更新於 Nov 7, 2026

MaxPreps MCP — high school schedules, scores, records, rosters and stat leaders

概覽

AI 產生的概覽

唯讀的 MCP 伺服器,讓助理查詢 MaxPreps 上美國高中體育的賽程、比分、戰績、名單、排名與統計領先者。

可以做什麼
  • 依名稱搜尋學校與運動員,取得其他工具所需的路径
  • 讀取學校檔案、隊伍清單、賽季戰績、聯盟排名與名次
  • 取得含結果與比分的比賽賽程,以及含球員資訊的隊伍名單
  • 取得統計領先者與依州或全國排名的統計榜單
  • 讀取運動員生涯頁面,以及任一公開 MaxPreps 頁面的原始資料
適用情境
適合讓助理回答關於美國高中隊伍與運動員的問題,例如戰績、比分、名單、排名或統計領先者,不必開啟瀏覽器。適用於體育資料查詢、比較與逐賽季檢索。
執行需求
以 npm 套件形式透過 npx 在本機執行,需要 Node.js。不需帳號、API 金鑰或瀏覽器擴充功能;它透過 HTTPS 讀取 MaxPreps 的公開 JSON 路由,因此需要網路存取。選用環境變數 MAXPREPS_USER_AGENT、MAXPREPS_CACHE_TTL、MAXPREPS_MIN_INTERVAL_MS 與 MAXPREPS_TIMEOUT_MS 可調整行為。
安裝前請注意
全部十五個工具皆為唯讀,沒有寫入路徑。它讀取第三方網站未公開的介面,資料結構可能變動;預設會限制請求頻率並快取回應,README 請使用者維持這項設定。README 說明本專案由 AI 開發維護,請自行斟酌使用。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Maxpreps Mcp,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

maxpreps-mcp

MCP server for MaxPreps — read any US high school's team schedules, scores, records, rosters, stat leaders and athlete careers.

Developed and maintained by AI (Claude Code). Use at your own discretion.

No account, no API key, no browser extension. MaxPreps serves its pages with Next.js, and every public page has a companion JSON route carrying the same data the page was rendered from. This server reads those routes directly over plain HTTPS, so it works anywhere Node runs.

Install

bash
npx maxpreps-mcp

Or add it to an MCP host:

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

Tools

All fifteen are read-only; this server has no write path.

ToolWhat it does
maxpreps_searchFind a school or athlete by name — start here
maxpreps_list_teamsEvery team path a school publishes, with sport/gender/level
maxpreps_get_schoolSchool profile, identifiers, association, nearby schools
maxpreps_get_teamSeason record, standings, rankings, and available seasons
maxpreps_get_scheduleGames with results and scores, plus a computed record
maxpreps_get_rosterPlayers with jersey, class, positions, height, weight
maxpreps_get_stat_leadersStatistical leaders with qualifying minimums
maxpreps_get_rankingsRanked leaderboard for a sport, national or by state
maxpreps_get_team_rankingsWhere one team ranks nationally, by state, division, metro
maxpreps_get_standingsConference table with every team's record
maxpreps_list_stat_categoriesWhich stat leaderboards exist, and their paths
maxpreps_get_stat_leaderboardRanked athletes for one stat, statewide or national
maxpreps_get_athleteOne athlete's career page
maxpreps_healthcheckConnectivity plus site build-id resolution
maxpreps_get_pageRaw page data for anything the above doesn't cover (roster rows are projected to public fields)

Typical flow

Paths are not guessable, so resolve before you fetch:

  1. maxpreps_search "myers park" → the school's canonicalUrl
  2. maxpreps_list_teams on that path → real team paths
  3. maxpreps_get_schedule / _roster / _stat_leaders / _standings on a team path

To go the other way — discovering teams and athletes rather than looking one up — maxpreps_get_rankings and maxpreps_get_stat_leaderboard return ranked lists whose entries each carry a teamPath you can feed straight back in. Stat leaderboard paths are not guessable either, so list the categories first.

Prior seasons are a season argument ("25-26"); roughly 20 years are available.

Configuration

Everything is optional — the server works with no configuration at all.

VariableDefaultPurpose
MAXPREPS_USER_AGENTbuilt-inOverride the User-Agent sent to MaxPreps
MAXPREPS_CACHE_TTL300Seconds to reuse a fetched page; 0 disables
MAXPREPS_MIN_INTERVAL_MS250Minimum spacing between requests
MAXPREPS_TIMEOUT_MS20000Per-request timeout

Things worth knowing

These are properties of MaxPreps' data, and each one has bitten a naive reading:

  • Scores are winner-first in the raw data. MaxPreps renders a loss as "L 20-13" even when the team scored 13. The teamScore / opponentScore fields this server returns are always oriented team-vs-opponent.
  • Rosters and schedules carry hidden rows. A meaningful minority are flagged deleted and the site does not render them — the 2025-26 Myers Park football roster has 87 entries behind 63 visible players. They are excluded by default.
  • An out-of-season team is not a broken one. Before opening day the current season legitimately has an empty roster and no results; ask for a prior season.
  • Search is literal. "myers park" finds the school; "myers park high" finds nothing. Drop qualifiers before concluding a school is absent.
  • Statewide scoreboards aren't available. /<st>/<sport>/scores/ renders its game list client-side from a route that has no server-rendered payload. Per-team schedules are the supported way to get scores; maxpreps_get_rankings is the way to see a whole state's teams at once.

Shell-only alternative

The repo also ships a maxpreps skill (skills/maxpreps/) that reaches the same data through curl + a small decoder, with no server to run. If you only ever use Claude Code on one machine, the skill alone may be all you need; the MCP server is what makes this reachable from claude.ai, a phone, or any other client.

Development

bash
npm installnpm run buildnpm test

docs/MAXPREPS-API.md pins the captured request/response shapes, the positional key maps, and how to re-derive them if MaxPreps changes its bundle.

Etiquette

This reads an undocumented surface on someone else's site on behalf of one user. Requests are spaced and responses cached by default. Please keep it that way.

License

MIT

來源:README.md,提交 57c50ea

工具

15

maxpreps_get_school

Get a MaxPreps school profile

School profile: identifiers, location, state athletic association, partner flags, plus nearby schools and recent articles/videos. Take the path from maxpreps_search. Read-only.

輸入參數school必填includeNearby

maxpreps_list_teams

List a school’s teams

Every team path a school publishes, with sport, gender and level. Call this before any team tool — the sport path segments are not guessable (the default gender varies by sport, so girls golf is "golf/girls" while boys golf is "golf/spring", and field hockey has no gender segment at all). Passing a team path instead of a school path returns that team’s seasons. Read-only.

輸入參數levelsportschool必填

maxpreps_get_team

Get a MaxPreps team season

Team overview for one season: sport/level/season identifiers, the win-loss record and points for/against, conference standing, rankings, and the full list of seasons this team has on MaxPreps (roughly 20 years). Use it to confirm a record without summing a schedule. Read-only.

輸入參數team必填seasonincludeSeasons

maxpreps_get_schedule

Get a MaxPreps team schedule and scores

Every game for a team season, with the result and both scores. Scores are oriented team-vs-opponent (`teamScore`/`opponentScore`); the raw `resultString` MaxPreps renders is winner-first, so a loss reads "L 20-13" even when the team scored 13. Soft-deleted contests are hidden by default, matching the site. Before opening day a current season legitimately has no results — check a prior season. Also returns any playoff or championship tournaments the season fed into. Read-only.

輸入參數team必填playedseasonincludeDeletedincludeTournaments

maxpreps_get_roster

Get a MaxPreps team roster

Players on a team for one season: jersey, name, class year, positions, height and weight. Soft-deleted entries (duplicates and departed players the site hides) are excluded by default — a roster payload often carries substantially more rows than the page shows. Height and weight are null when the school did not publish them. Read-only.

輸入參數team必填seasonpositionincludeDeleted

maxpreps_get_stat_leaders

Get MaxPreps team stat leaders

Statistical leaders for a team season — each entry names the athlete, the stat, its value and the athlete's career URL. Also returns the qualifying minimums and the stat refresh time. Coverage varies by sport and by how diligently the school reports; an empty result is normal, not an error. Read-only.

輸入參數team必填season

maxpreps_get_athlete

Get a MaxPreps athlete career

One athlete’s career page: season history, sports played, and available data. Pass the `careerCanonicalUrl` from maxpreps_search verbatim — it carries the required `careerid` parameter, without which the page cannot be addressed. Read-only.

輸入參數athlete必填careerId

maxpreps_get_rankings

Get MaxPreps team rankings

Ranked leaderboard of teams for a sport — nationally, or within one state. Each entry carries the rank, rating, overall record, movement, and a `teamPath` ready to pass to the other team tools, so this is the way to discover teams rather than look one up. Results are paginated 25 at a time. Omitting `season` uses the current one, which is empty before that sport is under way. Read-only.

輸入參數sport必填stateseasonpageNumber

maxpreps_get_team_rankings

Get one team’s rankings

Where a single team sits in each ranking MaxPreps publishes for it — typically national, state, state division/class, and metro area — along with the teams ranked immediately around it. Use this for "how good is this team"; use maxpreps_get_rankings to browse a whole leaderboard. Read-only.

輸入參數team必填season

maxpreps_get_standings

Get conference standings

The standings table a team sits in — every team in the conference with its conference and overall records and placement, not just this team's own line (maxpreps_get_team gives that). Also returns the ranked statistical leaders MaxPreps highlights for the season. Read-only.

輸入參數team必填season

maxpreps_list_stat_categories

List MaxPreps stat leaderboard categories

Which statistical leaderboards exist for a sport, with the path to each one plus the national and in-scope averages and the games-played minimum. **Call this before maxpreps_get_stat_leaderboard** — the leaf path is not derivable from the stat name (Total TDs lives at `touchdowns/tot-tds`, Sacks at `sacks/tot-sacks`), so the path must come from here. Read-only.

輸入參數sport必填stateseason

maxpreps_get_stat_leaderboard

Get a MaxPreps stat leaderboard

The ranked athletes for one statistical category across a state or nationally — up to 200 per board, each with their full stat line, school, and a `teamPath` for the other team tools. Take `path` from maxpreps_list_stat_categories rather than constructing it. If MaxPreps changes the row shape the rows are returned undecoded with a warning rather than mislabelled. Read-only.

輸入參數path必填limit

maxpreps_healthcheck

Check MaxPreps connectivity

Verify MaxPreps is reachable and that the site build id — which every data route embeds and which changes on each deploy — resolves. Also probes a real data route, so a pass means tools will work. Reports a failure rather than throwing. No credentials are required by this server. Read-only.

無需輸入參數。

maxpreps_get_page

Get raw MaxPreps page data

Escape hatch: return the raw server-rendered data for any public MaxPreps page, undecoded. Use when a dedicated tool does not cover what you need (playoff brackets, conference standings, article listings). Note that positional payloads — team rosters and schedules — arrive as bare arrays here with no field names; use maxpreps_get_roster / maxpreps_get_schedule for those. Roster rows (athleteData) are always projected to public roster fields (name, jersey, positions, class, height, weight). Read-only.

輸入參數path必填keysOnly

版本歷史

13
  1. v1.2.0最新Nov 4, 2026
  2. v1.1.9Oct 16, 2026
  3. v1.1.8Oct 10, 2026
  4. v1.1.7Oct 7, 2026
  5. v1.1.6Oct 5, 2026
  6. v1.1.5Oct 3, 2026
  7. v1.1.4Sep 30, 2026
  8. v1.1.3Sep 25, 2026
  9. v1.1.2Sep 23, 2026
  10. v1.1.1Sep 23, 2026
  11. v1.1.0Sep 20, 2026
  12. v1.0.0Sep 19, 2026
  13. v0.3.1Sep 16, 2026

評分

已滿足適用檢查項的 90%

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

  • 近 30 天內可連通25 分
  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分