io.github.chrischall/schoolpass-mcp

Registre officiel Productivité

SchoolPass for Claude — students, arrival/dismissal calendar, pickup changes, and school info

Installation

Ajoutez ceci à la configuration MCP de votre client (Claude Desktop : claude_desktop_config.json ; Cursor : .cursor/mcp.json ; VS Code et les autres utilisent la même forme « mcpServers »).

NPM package schoolpass-mcp
Claude Code
claude mcp add schoolpass-mcp -e 'SCHOOLPASS_EMAIL=<SCHOOLPASS_EMAIL>' -e 'SCHOOLPASS_PASSWORD=<your schoolpass_password>' -e 'SCHOOLPASS_SCHOOL_CODE=<SCHOOLPASS_SCHOOL_CODE>' -e 'SCHOOLPASS_API_HOST=<SCHOOLPASS_API_HOST>' -e 'SCHOOLPASS_TIMEZONE=<SCHOOLPASS_TIMEZONE>' -e 'SCHOOLPASS_SESSION_CACHE=<SCHOOLPASS_SESSION_CACHE>' -e 'SCHOOLPASS_SESSION_FILE=<SCHOOLPASS_SESSION_FILE>' -- npx -y schoolpass-mcp@1.0.10
Configuration JSON (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "schoolpass-mcp": {
            "command": "npx",
            "args": [
                "-y",
                "schoolpass-mcp@1.0.10"
            ],
            "env": {
                "SCHOOLPASS_EMAIL": "<SCHOOLPASS_EMAIL>",
                "SCHOOLPASS_PASSWORD": "<your schoolpass_password>",
                "SCHOOLPASS_SCHOOL_CODE": "<SCHOOLPASS_SCHOOL_CODE>",
                "SCHOOLPASS_API_HOST": "<SCHOOLPASS_API_HOST>",
                "SCHOOLPASS_TIMEZONE": "<SCHOOLPASS_TIMEZONE>",
                "SCHOOLPASS_SESSION_CACHE": "<SCHOOLPASS_SESSION_CACHE>",
                "SCHOOLPASS_SESSION_FILE": "<SCHOOLPASS_SESSION_FILE>"
            }
        }
    }
}

Variables d'environnement

  • SCHOOLPASS_EMAIL Your SchoolPass parent account email address.
  • SCHOOLPASS_PASSWORD secret Your SchoolPass parent account password.
  • SCHOOLPASS_SCHOOL_CODE The numeric school id (AppCode) SchoolPass uses to select your school.
  • SCHOOLPASS_API_HOST Optional regional API host override (default busapi-east16-ss.school-pass.net).
  • SCHOOLPASS_TIMEZONE The school's IANA timezone (e.g. America/New_York), used for the "today" default of the calendar and pickup-change reads. Defaults to the server's local zone; set it when the server runs elsewhere (a hosted server runs in UTC, so evening defaults would otherwise point at tomorrow).
  • SCHOOLPASS_SESSION_CACHE Set to false to disable the on-disk session cache and re-authenticate on every process start. Defaults to enabled.
  • SCHOOLPASS_SESSION_FILE Absolute path for the session cache file. Defaults to $MCP_DATA_DIR/.schoolpass-mcp/session.json.

Documentation

Tirée du README du projet sur GitHub, actualisée chaque semaine. Les liens ouvrent GitHub.

Sommaire
  1. schoolpass-mcp
  2. Tools
  3. Configuration
  4. Install
  5. Notes
  6. Without the server: curl
  7. Development
  8. License

schoolpass-mcp

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; include_carpool: true adds their carpools (other families' contact/vehicle fields dropped unless view: "full").
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: preview + single-use confirmToken).
schoolpass_cancel_dismissal_changeCancel a change, back to default (confirm-gated: preview + confirmToken).

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). Must be an https *.school-pass.net host — the password is sent there, so http:// or any other domain is refused.
SCHOOLPASS_TIMEZONEnoThe school's IANA timezone (e.g. America/New_York), used for the "today" default of the calendar and pickup-change reads. Defaults to the server's local zone; set it when the server runs elsewhere (a hosted server runs in UTC, so evening defaults would otherwise point at tomorrow).
MCP_CONFIRM_MODEnoHow the two writes confirm on a client that cannot show a prompt: ask-user (default — preview + token, the user approves in chat), auto (the model may use the token after reviewing the preview), or refuse.
MCP_CONFIRM_ELICITATIONnooff never shows a confirmation prompt, so every client gets the MCP_CONFIRM_MODE behaviour. Set it for a client that says it can show prompts but never does (the write hangs — opencode 2.0.x). Default on; any other value is treated as on, with a warning on stderr.
MCP_CONFIRM_TTL_SECONDSnoHow long a confirm token stays valid (default 600).
MCP_CONFIRM_SECRETnoHMAC key for confirm tokens; set only if tokens must survive a restart. On mcp-host the host supplies a stable per-child key (MCP_HOST_CONFIRM_SECRET) and spent tokens are recorded under MCP_DATA_DIR, so an approval survives an idle restart.

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. A password SchoolPass refuses (400/401) is tried once per process: later calls return the same error without contacting SchoolPass until the configured credentials change or the server restarts. A CDN/WAF block page (CloudFront, Cloudflare, …) is not a refusal: it is reported as an edge block, never latched, and never spends or discards the stored session.
  • 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

Questions fréquentes

Qu'est-ce que io.github.chrischall/schoolpass-mcp ?

SchoolPass for Claude — students, arrival/dismissal calendar, pickup changes, and school info

Comment installer io.github.chrischall/schoolpass-mcp ?

Il s'exécute sur votre machine. Dans Claude Code : claude mcp add schoolpass-mcp -e 'SCHOOLPASS_EMAIL=<SCHOOLPASS_EMAIL>' -e 'SCHOOLPASS_PASSWORD=<your schoolpass_password>' -e 'SCHOOLPASS_SCHOOL_CODE=<SCHOOLPASS_SCHOOL_CODE>' -e 'SCHOOLPASS_API_HOST=<SCHOOLPASS_API_HOST>' -e 'SCHOOLPASS_TIMEZONE=<SCHOOLPASS_TIMEZONE>' -e 'SCHOOLPASS_SESSION_CACHE=<SCHOOLPASS_SESSION_CACHE>' -e 'SCHOOLPASS_SESSION_FILE=<SCHOOLPASS_SESSION_FILE>' -- npx -y schoolpass-mcp@1.0.10. Pour les autres clients, collez la configuration JSON de cette page dans leurs réglages MCP.

Faut-il une clé API pour io.github.chrischall/schoolpass-mcp ?

Oui. Il attend SCHOOLPASS_PASSWORD, à renseigner dans sa configuration.

io.github.chrischall/schoolpass-mcp est-il open source ?

Oui. Son code est sur GitHub sous licence MIT.

Qui maintient io.github.chrischall/schoolpass-mcp ?

Il est publié par chrischall. AI.tn le référence sans le maintenir ni le recommander.

Issu du registre MCP officiel. Être listé n'est pas une recommandation : vérifiez le code et les permissions d'un serveur avant de lui donner accès à vos données.