alphaportal-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCP_CONFIRM_MODE | No | What a write does on a client that cannot show a confirmation prompt. Values: ask-user, auto, refuse. | ask-user |
| MCP_CONFIRM_SECRET | No | Signing key; set it only if tokens must survive a server restart. | |
| MCP_CONFIRM_TTL_SECONDS | No | How long a confirmation token stays valid. | 600 |
| ALPHAPORTAL_SESSION_FILE | No | Override the store path (default ~/.alphaportal-mcp/session.json). | ~/.alphaportal-mcp/session.json |
| ALPHAPORTAL_REFRESH_TOKEN | No | The refresh token. Optional if the fetchproxy bridge can read it from a signed-in tab; required for a headless/hosted deployment. | |
| ALPHAPORTAL_DISABLE_FETCHPROXY | No | Set to '1' to disable the browser-bridge fallback and require the env var. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| alphaportal_list_studentsA | List the students (children) on the signed-in account, with grade, school, and transportation flags. Start here to get each studentId. |
| alphaportal_get_studentB | Get a student's full transportation detail: assigned school plus morning and afternoon stops with times and calendars. |
| alphaportal_get_student_stopsA | Get a student's assigned bus stops — stop name, scheduled time, days of the week, and stop location (lat/lng) for each. |
| alphaportal_get_bus_locationA | Get the live GPS location of a student's bus for the selected run (AM or PM): latitude, longitude, speed, and the vehicle id. Returns the last known position; empty when the bus is not currently running. |
| alphaportal_get_report_linkA | Get a one-time PDF download link for a student's transportation report (stops, schedule). Returns a URL to open in a browser. |
| alphaportal_list_notificationsA | List the account's transportation notifications — arrival/departure alerts (e.g. "arrived at school") with title, body, the student, and timestamp. |
| alphaportal_get_profileA | Get the signed-in user profile (name, email, role, account). |
| alphaportal_get_accountA | Get the account (school district) info — name, timezone, date/phone formats — and the current server date. |
| alphaportal_get_settingsA | Get the portal feature/visibility settings (which notification types and features are enabled for this district). |
| alphaportal_list_schoolsA | List all schools in the district with names and coordinates (lat/lng). Useful for resolving a school by name. |
| alphaportal_list_gradesA | List the district grade levels (id + name). |
| alphaportal_list_requestsA | List the transportation requests submitted on this account, with tracking numbers and status. |
| alphaportal_edit_walk_radiusA | Set a student's walk-zone radius, in meters. This can affect transportation eligibility, so it asks the user to confirm first: a confirmation prompt where the client supports one; otherwise the first call returns a preview of the exact payload and a confirmToken, and only a repeat call with that token proceeds (see MCP_CONFIRM_MODE). Verified required fields: studentId, radius. |
| alphaportal_set_notificationA | Set a student's transportation notification preferences (push/email, per AM/PM run) across the categories the district enables: stopRadiusEntry, studentScan, backupBus, schoolArrival, stopServiced. Asks the user to confirm first: a confirmation prompt where the client supports one; otherwise the first call returns a preview of the exact payload and a confirmToken, and only a repeat call with that token proceeds (see MCP_CONFIRM_MODE). NOTE: the portal sends the whole preference set at once; categories you omit may be left unchanged or reset by the server — review the preview first. |
| alphaportal_session_statusA | Check whether the server can authenticate to AlphaPortal: it resolves the refresh token (from ALPHAPORTAL_REFRESH_TOKEN, the saved session, or a signed-in browser tab via the bridge) and tries to mint an access token. Returns no credentials. |
| alphaportal_healthcheckA | Resolves the credential the way real tools do, then makes one authenticated request to api.alpharoute.app. Reports which source supplied the credential, whether api.alpharoute.app accepted it, the round-trip time, and a plain-English hint distinguishing 'no credential' from 'credential rejected' from 'a api.alpharoute.app-side problem'. Read-only; never returns the credential itself. Call this when a real tool fails and you want to know which hop broke. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 16 tools
Most tools target distinct resources, but there is mild overlap: get_student returns transportation detail including stops while get_student_stops returns only stops, and session_status vs healthcheck both serve diagnostic/auth-check purposes. Descriptions do help differentiate these cases.
Consistent alphaportal_ prefix and verb_noun pattern (list_students, get_student, set_notification, edit_walk_radius) throughout. The lone deviation is healthcheck, a noun-only name, which is minor and still readable.
16 tools for a school transportation portal is slightly heavy but each appears to earn its place across students, schools, notifications, settings, and diagnostics. No redundant filler tools.
Strong read coverage of students, schools, grades, stops, bus location, reports, notifications, profile, account, and settings, plus write paths for notifications and walk radius. Minor gaps like no create/update for transportation requests (list only) are workable.