schoolpass-mcp

MCP serverProductivity

Your AI can handle everyday school logistics for you, from checking dismissal times to arranging pickup changes. Once added, it can see your students, follow the arrival and dismissal calendar, make pickup changes, and look up school information.

Unavailable. This server has no hosted endpoint yet, so ahel can't serve it.

After adding it, ask your AI about your students or today's dismissal schedule to see your SchoolPass information.

What your AI can do with it

  • Look up your students
  • Check the arrival and dismissal calendar
  • Make pickup changes
  • Answer questions about school information

From the project's README

As published by chrischall/schoolpass-mcp in README.md.

MCP server for SchoolPass — read AND change your child's school arrival & dismissal from a parent account. Talks to the SchoolPass REST API used by the SchoolPass web and mobile apps, authenticating server-side with your own parent email and password (no browser, no extension).

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

Parent-scoped: read tools plus a confirm-gated dismissal-change write/cancel.

Tools

ToolWhat it does
schoolpass_healthcheckReachability + authentication, reported separately.
schoolpass_whoamiThe parent identity the server signed in as.
schoolpass_list_studentsYour linked students — name, grade, home dismissal location, aftercare.
schoolpass_get_profileThe parent account profile.
schoolpass_list_driversAuthorized pickup drivers, with their carpools.
schoolpass_get_calendarA student's arrival/dismissal calendar over a date range.
schoolpass_list_pickup_changesPickup/dismissal changes for a student on a date.
schoolpass_list_dismissal_locationsThe school's dismissal locations, with ids.
schoolpass_get_school_infoBasic school info and per-school config.
schoolpass_submit_dismissal_changeSubmit a dismissal/arrival change (confirm-gated, dry-run preview).
schoolpass_cancel_dismissal_changeCancel a change, back to default (confirm-gated).

Configuration

Env varRequiredNotes
SCHOOLPASS_EMAILyesYour SchoolPass parent account email.
SCHOOLPASS_PASSWORDyesYour SchoolPass password.
SCHOOLPASS_SCHOOL_CODEyesThe numeric school id (the AppCode / appCode value; e.g. 1183).
SCHOOLPASS_API_HOSTnoRegional API host override (default busapi-east16-ss.school-pass.net).

Finding your school id and region host: sign into your school's <school>.school-pass.net portal, open the new SchoolPass app, and read appCode (the id) and apiUrl (the host) from its browser localStorage.

Install

{
  "mcpServers": {
    "schoolpass": {
      "command": "npx",
      "args": ["-y", "schoolpass-mcp"],
      "env": {
        "SCHOOLPASS_EMAIL": "you@example.com",
        "SCHOOLPASS_PASSWORD": "your-password",
        "SCHOOLPASS_SCHOOL_CODE": "1183"
      }
    }
  }
}

Notes

  • Parent scope only. A parent token cannot reach admin routes (visitor management, carline operations, reports, bus routing); those return 403.
  • Never retry a rejected login. SchoolPass fronts its login with reCAPTCHA; repeated failures can get the account challenged.
  • No credentials, still boots. The server starts without configuration and answers tools/list; the config error surfaces on the first tool call.

Without the server: curl

The SchoolPass API is reachable server-side, so a one-off shell read needs no MCP process — see the bundled schoolpass-curl skill (skills/schoolpass-curl/) for a curl + jq recipe set.

Development

npm install
npm test            # tsc typecheck + unit + boot tests
npm run build       # tsc + esbuild bundle
node --env-file=.env scripts/live-check.mjs   # live read-only check (needs .env)

License

MIT

Signals

Last commit
Sep 2026
Weekly downloads
304
Advanced
Delivery
schoolpass-mcp MCP server → your ahel gateway (mcp.ahel.ai) → every connected AI client.
Catalog kind
mcp-server
Gateway key
io-github-chrischall-schoolpass-mcp
Source
github.com/chrischall/schoolpass-mcp