Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
MaxPreps MCP — high school schedules, scores, records, rosters and stat leaders
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
MAXPREPS_USER_AGENT, MAXPREPS_CACHE_TTL, MAXPREPS_MIN_INTERVAL_MSYou need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"maxpreps": {
"command": "npx",
"args": [
"-y",
"maxpreps-mcp"
],
"env": {
"MAXPREPS_USER_AGENT": "your-value",
"MAXPREPS_CACHE_TTL": "your-value",
"MAXPREPS_MIN_INTERVAL_MS": "your-value"
}
}
}
}Run this in your terminal
claude mcp add maxpreps --env MAXPREPS_USER_AGENT=your-value --env MAXPREPS_CACHE_TTL=your-value --env MAXPREPS_MIN_INTERVAL_MS=your-value -- npx -y maxpreps-mcpFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"maxpreps": {
"command": "npx",
"args": [
"-y",
"maxpreps-mcp"
],
"env": {
"MAXPREPS_USER_AGENT": "your-value",
"MAXPREPS_CACHE_TTL": "your-value",
"MAXPREPS_MIN_INTERVAL_MS": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"maxpreps": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"maxpreps-mcp"
],
"env": {
"MAXPREPS_USER_AGENT": "your-value",
"MAXPREPS_CACHE_TTL": "your-value",
"MAXPREPS_MIN_INTERVAL_MS": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
MAXPREPS_USER_AGENT envMAXPREPS_CACHE_TTL envMAXPREPS_MIN_INTERVAL_MS envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026
The registry name was verified with the GitHub account chrischall, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (1.2.0) reached the registry 3 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.
In the same category: Spec Driven Development, Remote Desktop Commander, First Sale Scout
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Playbooks and a 14-day checklist for founders winning their first paying customers.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
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.
npx maxpreps-mcp
Or add it to an MCP host:
{
"mcpServers": { "maxpreps": { "command": "npx", "args": ["-y", "maxpreps-mcp"] } } }
All fifteen are read-only; this server has no write path.
| Tool | What it does |
|---|---|
maxpreps_search | Find a school or athlete by name — start here |
maxpreps_list_teams | Every team path a school publishes, with sport/gender/level |
maxpreps_get_school | School profile, identifiers, association, nearby schools |
maxpreps_get_team | Season record, standings, rankings, and available seasons |
maxpreps_get_schedule | Games with results and scores, plus a computed record |
maxpreps_get_roster | Players with jersey, class, positions, height, weight |
maxpreps_get_stat_leaders | Statistical leaders with qualifying minimums |
maxpreps_get_rankings | Ranked leaderboard for a sport, national or by state |
maxpreps_get_team_rankings | Where one team ranks nationally, by state, division, metro |
maxpreps_get_standings | Conference table with every team's record |
maxpreps_list_stat_categories | Which stat leaderboards exist, and their paths |
maxpreps_get_stat_leaderboard | Ranked athletes for one stat, statewide or national |
maxpreps_get_athlete | One athlete's career page |
maxpreps_healthcheck | Connectivity plus site build-id resolution |
maxpreps_get_page | Raw page data for anything the above doesn't cover (roster rows are projected to public fields) |
Paths are not guessable, so resolve before you fetch:
maxpreps_search "myers park" → the school's canonicalUrlmaxpreps_list_teams on that path → real team pathsmaxpreps_get_schedule / _roster / _stat_leaders / _standings on a team pathTo 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.
Everything is optional — the server works with no configuration at all.
| Variable | Default | Purpose |
|---|---|---|
MAXPREPS_USER_AGENT | built-in | Override the User-Agent sent to MaxPreps |
MAXPREPS_CACHE_TTL | 300 | Seconds to reuse a fetched page; 0 disables |
MAXPREPS_MIN_INTERVAL_MS | 250 | Minimum spacing between requests |
MAXPREPS_TIMEOUT_MS | 20000 | Per-request timeout |
These are properties of MaxPreps' data, and each one has bitten a naive reading:
"L 20-13" even when the team scored 13. The teamScore / opponentScore fields this server returns are always oriented team-vs-opponent."myers park" finds the school; "myers park high" finds nothing. Drop qualifiers before concluding a school is absent./ / /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.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.
npm install
npm run build npm 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.
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.
MIT