{
  "markdown": "# myersparkathleticzone-mcp\n\nMCP server for [Myers Park High School](https://www.myersparkathleticzone.com) (Mustangs) athletics — schedules, teams, rosters, coaches, news and game broadcast links.\n\n**No credentials.** Everything this server reads is public. There is no login, no API key, no browser extension and nothing to configure before it works.\n\n> Developed and maintained by AI. Use at your own discretion.\n\n## Install\n\n```bash\nnpx myersparkathleticzone-mcp\n```\n\nOr in an MCP host's config:\n\n```json\n{\n  \"mcpServers\": {\n    \"myersparkathleticzone\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"myersparkathleticzone-mcp\"]\n    }\n  }\n}\n```\n\n## Tools\n\n| Tool | What it does |\n|---|---|\n| `mpaz_list_teams` | The school's teams for a year, with the ids the other tools need |\n| `mpaz_resolve_team` | Loose name (\"varsity football\") → team id |\n| `mpaz_get_schedule` | Upcoming events across every team |\n| `mpaz_get_team_schedule` | One team's full season |\n| `mpaz_get_scores` | One team's results, with win/loss/tie from the school's point of view |\n| `mpaz_get_roster` | A team's coaching staff and players |\n| `mpaz_list_news` | Recent news posts |\n| `mpaz_list_videos` | Games with an NFHS Network broadcast link |\n| `mpaz_list_photo_galleries` | Published photo galleries |\n| `mpaz_healthcheck` | Verify the site is reachable and parseable |\n\nEvery tool is read-only; the server performs no writes.\n\nTeam-scoped tools need a **numeric team id and a sport slug**, and **team ids differ per school year**. Resolve them with `mpaz_resolve_team` rather than guessing — a stale id makes the site serve a `Team … Not Found` page (with HTTP 200), which the client detects and reports.\n\n## Configuration\n\nBoth optional:\n\n| Variable | Default | Purpose |\n|---|---|---|\n| `MPAZ_SITE_URL` | `https://www.myersparkathleticzone.com` | Point at another Athletic Zone school site |\n| `MPAZ_SCHOOL_ID` | `10150` | GoFan/PlayOn school id, used to tell your teams from opponents |\n\nThe site is one tenant of the PlayOn Sports / SportsEngine \"Athletic Zone\" platform, so setting both points the server at another school on it. Verified against Ballantyne Ridge (`https://www.ballantyneridgeathleticzone.com`, school id `21785`) as well as Myers Park.\n\n## Known limits\n\nThese are properties of the upstream site, not bugs, and the tools say so in their output rather than guessing:\n\n- **A missing score is unknown, never zero.** Each side's score is stored independently upstream, so half-entered games (`3-null`, `null-4`) are common. `result` is derived only when both sides are present.\n- **Myers Park records few scores.** Every completed game of theirs observed so far has null scores, so a season may return fixtures with no results at all — that is the school's data entry, not a fault.\n- **Past-season coverage is partial and calendar-dependent.** Myers Park's `/schedule` is empty for past years even though the per-team pages still serve them, so `mpaz_list_teams` falls back to the sport pages' cross-year team selector. That selector is keyed by *team*, not by sport slug, so it can only be reached through a team that is in season **now** — meaning off-season sports are unreachable for past years, and which ones are reachable changes through the year. The result carries a `coverage` note listing what was searched; an empty list there is not evidence the school fielded no teams.\n- **Most teams publish coaches but not players**, so an empty roster is normal.\n- **The all-school schedule is a window of upcoming events**, not a full season — use `mpaz_get_team_schedule` for that.\n- **Broadcast links are NFHS Network links, not hosted clips** — durations are always `0`.\n\n## How it works\n\nThe site is a fully server-rendered Next.js app whose own `/api/*` routes are server-only and reject outside requests. The data ships inside the page's React Server Components flight payload, so this server requests pages with the `RSC: 1` header and harvests the entities embedded in them.\n\n`docs/ATHLETIC-ZONE-API.md` pins the captured request/response shapes, the routes, the failure modes, and what was ruled out.\n\n## Development\n\n```bash\nnpm install\nnpm run build\nnpm test\n```\n\n## License\n\nMIT\n",
  "bytes": 4199,
  "sha": "a2a84f0134e7f1753c15588dad5553500c4084537cc9e9c98a91d214fe3d66e5",
  "repo_slug": "chrischall/myersparkathleticzone-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_chrischall_myersparkathleticzo_8b702573/readme"
}