maxpreps-mcp
Read MaxPreps.com high school sports data — find a school, then get team schedules, scores, records, rosters, stat leaders, rankings, and athlete careers for any US high school. Skill: maxpreps-mcp Owner: chrischall Summary: Read MaxPreps.com high school sports data — find a school, then get team schedules, scores, records, rosters, stat leaders, rankings, and athlete careers for any US high school. Tags: latest:1.1.8 Version history: v1.1.8 | 2026-10-09T23:25:57.242Z | auto maxpreps-mcp v1.1.8 - Removed skill-card.md, consolidating documentation into SKILL.md. - No changes to functionality;
Rank
62
Safety
84
Downloads
1.1k
Updated
Oct 11, 2026
Version
1.1.8
Source
CLAWHUB
About
What it does, and when to use it.
Capability contract not published. No trust telemetry is available yet. 1.1K downloads reported by the source. Last updated 10/11/2026.
Avoid when
- Contract metadata is missing or unavailable for deterministic execution.
Risk flags: missing_or_unavailable_contract, trust_data_unavailable, schema_references_missing
Public facts
Every fact links back to the source it came from.
- Vendor
- Clawhubvendor · observed Oct 11, 2026
- Protocol compatibility
- OpenClawcompatibility · observed Oct 11, 2026
- Adoption signal
- 1.1K downloadsadoption · observed Oct 11, 2026
- Latest release
- 1.1.8release · observed Oct 9, 2026
- Handshake status
- UNKNOWNsecurity
Install and run
Setup complexity: low.
clawhub skill install s17cjx1a349nz5apaqp02vgz4h85728z:maxpreps-mcp- Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.
- Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.
Contract: missing
curl -s "https://www.xpersona.co/api/v1/agents/clawhub-chrischall-maxpreps-mcp/snapshot"
Documentation
CLAWHUB
146,371 characters of source documentation, loaded on request.
Extracted files
4 files captured from the source.
SKILL.md
--- name: maxpreps description: "Read MaxPreps.com high school sports data — find a school, then get team schedules, scores, records, rosters, stat leaders, rankings, and athlete careers for any US high school." --- # MaxPreps National high-school sports database (CBS Sports). **No auth, no API key, no browser bridge** — plain `curl` from anywhere, no signed-in tab. Pages are Next.js SSR: every public page has a companion JSON route at `/_next/data/<buildId>/<path>.json`. `scripts/mpx.mjs` resolves the `buildId`, fetches, and decodes. ```bash # scripts/mpx.mjs sits next to this SKILL.md — point M at it. # Standalone install: M=~/.claude/skills/maxpreps/scripts/mpx.mjs # Shipped with maxpreps-mcp: M=<plugin-root>/skills/maxpreps/scripts/mpx.mjs M=~/.claude/skills/maxpreps/scripts/mpx.mjs node "$M" search "myers park" node "$M" schedule nc/charlotte/myers-park-mustangs/football/25-26/schedule ``` `mpx.mjs <kind> [path]` — `path` is the site path without leading/trailing slashes. With no path it decodes a payload on stdin. Kinds: - `search "<query>"` — schools + athletes (**start here**) - `teams <school-or-team-path>` — every team path the school publishes - `schedule` — games with scores, result, home/away (decodes the positional array) - `roster` — players with jersey, position, height, class (decodes the positional array) - `stats` — team stat leaders · `team` — season info, record, standings, rankings - `rankings` — ranked leaderboard for a sport (see path note below) - `teamrankings` / `standings` — one team's ranks; its conference table - `statcats` / `statleaders` — stat leaderboard index; one board's ranked athletes - `school` — school profile + nearby schools · `athlete` — one athlete's career - `raw` — undecoded `pageProps`, for anything without a dedicated kind - `buildid` — print the cached build id Flags: `--all` keep `isDeleted` rows · `--raw` emit undecoded `pageProps` · `--fresh` (buildid) bypass cache. ## Resolve before you fetch Don't guess paths — two lookups, both cheap: ```bash # 1. school -> canonicalUrl node "$M" search "mater dei" | jq -r '.schools[] | "\(.name) (\(.city), \(.state)) \(.canonicalUrl)"' # 2. school path -> real team paths node "$M" teams ca/santa-ana/mater-dei-monarchs | jq -r '.[] | "\(.path) [\(.gender) \(.sport) \(.level)]"' ``` Team path grammar is `<sport>[/girls][/jv|/freshman][/<yy-yy>]/<tab>`, but the segments are **not predictable** — the default gender varies by sport (`golf/girls` + `golf/spring`, `field-hockey` is Girls with no gender segment). Always take paths from `teams`. Tabs: `schedule`, `roster`, `stats`, `rankings`, `standings`. Omit the tab for the team home page. Leaderboards live on their own path: `[<st>/]<sport>[/<season>]/rankings/<page>` — the trailing page number is **required** (omitting it 404s) and each page holds 25 teams. ## Seasons Current season = no year segment. Prior seasons insert `<yy-yy>` **before** the tab: `.../football/25-26/schedule`. Roughly 20
_meta.json
{
"ownerId": "kn700jq4sjtf2anb0rk3ft4p7n856872",
"slug": "maxpreps-mcp",
"version": "1.1.8",
"publishedAt": 1791588357242
}references/recipes.md
# MaxPreps recipes
`M=~/.claude/skills/maxpreps/scripts/mpx.mjs`
## Find things
```bash
# schools
node "$M" search "mater dei" | jq -r '.schools[] | "\(.name) (\(.city), \(.state)) \(.canonicalUrl)"'
# athletes — careerCanonicalUrl already carries the ?careerid= the athlete page needs
node "$M" search "brody keefe" | jq -r '.athletes[] | "\(.fullName) \(.schoolFormattedName) \(.sports|join(",")) \(.careerCanonicalUrl)"'
# a school's teams, varsity only
node "$M" teams nc/charlotte/myers-park-mustangs \
| jq -r '.[] | select(.level=="Varsity") | "\(.path) [\(.gender) \(.sport)]"'
# every season of one team, newest first
node "$M" team nc/charlotte/myers-park-mustangs/football \
| jq -r '.seasons[] | select(.level=="Varsity") | "\(.year) \(.canonicalUrl)"'
```
## Schedule and scores
```bash
S=nc/charlotte/myers-park-mustangs/football/25-26/schedule
# one line per game
node "$M" schedule $S | jq -r '.[] | "\(.date[0:10]) \(.homeAway) \(.result // "—") \(.teamScore)-\(.opponentScore) \(.opponent)"'
# record + point differential computed from games
node "$M" schedule $S | jq '{
W: [.[]|select(.result=="W")]|length,
L: [.[]|select(.result=="L")]|length,
pf: [.[].teamScore]|add, pa: [.[].opponentScore]|add }'
# upcoming only
node "$M" schedule $S | jq '[.[] | select(.hasResult|not)]'
```
Cross-check against the site's own totals — they must agree:
```bash
node "$M" team nc/charlotte/myers-park-mustangs/football/25-26 | jq '.standings.overallStanding'
# { overallWinLossTies: "9-3", points: 412, pointsAgainst: 141, homeWinLossTies: "4-1", ... }
```
`.standings.leagueStanding` adds `leagueName`, `conferenceWinLossTies`, `conferenceStandingPlacement`.
## Roster
```bash
R=nc/charlotte/myers-park-mustangs/football/25-26/roster
node "$M" roster $R | jq -r '.[] | "#\(.jersey) \(.name) \(.classYearLabel) \(.positions) \(.height // "—") \(.weight // "—") lbs"'
node "$M" roster $R | jq 'group_by(.classYearLabel) | map({class: .[0].classYearLabel, n: length})'
node "$M" roster $R | jq '[.[] | select(.hasStats)] | length' # who has stats pages
```
## Stat leaders
```bash
node "$M" stats nc/charlotte/myers-park-mustangs/football/25-26/stats \
| jq -r '.leaders[] | "\(.athleteFirstName) \(.athleteLastName) \(.stat.displayName): \(.stat.value)"'
```
`.minimums` lists the qualifying thresholds; `.lastUpdated` is the stat refresh time.
## Athlete career
```bash
node "$M" athlete "nc/charlotte/myers-park-mustangs/athletes/brody-keefe?careerid=c35dcsgih39sc" \
| jq '{name, availability}'
```
`.history` is an array of season entries; `.cards` holds the rendered career highlights.
## Rankings and standings
```bash
# leaderboard: [<st>/]<sport>[/<season>]/rankings/<page> — page number required, 25 per page
node "$M" rankings nc/football/25-26/rankings/1 \
| jq -r '"\(.totalCount) teams, updated \(.lastUpdated)", (.teams[] | "\(.rank) \(.schoolFormattedName) \(.overall) \(.rating) \(.teamPath)")'
# national instskill-card.md
## Description: Read public MaxPreps high school sports data to find schools and explore team schedules, scores, rosters, statistics, rankings, and athlete careers in the United States. This skill is ready for commercial/non-commercial use. ## Publisher: [chrischall](https://clawhub.ai/user/chrischall) ### License/Terms of Use: MIT-0 ## Use Case: Agents serving sports researchers, journalists, and other users can look up public US high school team results, rosters, rankings, and athlete career information from MaxPreps. ### Deployment Geography for Use: Global ## Known Risks and Mitigations: Risk: The helper makes network requests to MaxPreps and retrieves public roster and athlete information. Mitigation: Run it only when those read-only requests are acceptable, and handle retrieved athlete information with care. ## Reference(s): - [ClawHub maxpreps-mcp release](https://clawhub.ai/chrischall/skills/maxpreps-mcp) - [MaxPreps](https://www.maxpreps.com) - [Usage recipes](references/recipes.md) ## Skill Output: **Output Type(s):** [Text, Markdown, Shell commands, Guidance] **Output Format:** [Text or Markdown with sports data and optional shell examples] **Output Parameters:** [1D] **Other Properties Related to Output:** [The included helper returns structured JSON for requested public MaxPreps data.] ## Skill Version(s): 1.1.8 (source: server-resolved ClawHub release) ## Ethical Considerations: Users should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.
AionUi
Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!
activepieces
AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents
cherry-studio
AI productivity studio with smart chat, autonomous agents, and 300+ assistants.
CopilotKit
The Frontend for Agents & Generative UI. React + Angular
Machine-readable data
The same record, as JSON, for agents and crawlers.
{
"facts": [
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Clawhub",
"href": "https://clawhub.ai/chrischall/skills/maxpreps-mcp",
"sourceUrl": "https://clawhub.ai/chrischall/skills/maxpreps-mcp",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-11T11:29:15.681Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "OpenClaw",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-chrischall-maxpreps-mcp/contract",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-chrischall-maxpreps-mcp/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-10-11T11:29:15.681Z",
"isPublic": true
},
{
"factKey": "traction",
"category": "adoption",
"label": "Adoption signal",
"value": "1.1K downloads",
"href": "https://clawhub.ai/chrischall/maxpreps-mcp",
"sourceUrl": "https://clawhub.ai/chrischall/maxpreps-mcp",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-11T11:29:15.681Z",
"isPublic": true
},
{
"factKey": "latest_release",
"category": "release",
"label": "Latest release",
"value": "1.1.8",
"href": "https://clawhub.ai/chrischall/maxpreps-mcp",
"sourceUrl": "https://clawhub.ai/chrischall/maxpreps-mcp",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-10-09T23:25:57.242Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-chrischall-maxpreps-mcp/trust",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-chrischall-maxpreps-mcp/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
],
"events": [
{
"eventType": "release",
"title": "Release 1.1.8",
"description": "maxpreps-mcp v1.1.8 - Removed skill-card.md, consolidating documentation into SKILL.md. - No changes to functionality; CLI usage and data output remain unchanged. - Clean-up and simplification of files provided with the skill.",
"href": "https://clawhub.ai/chrischall/maxpreps-mcp",
"sourceUrl": "https://clawhub.ai/chrischall/maxpreps-mcp",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-10-09T23:25:57.242Z",
"isPublic": true
}
]
}Record generated Oct 11, 2026.
