# io.github.chrischall/alphaportal-mcp (npm · alphaportal-mcp)

AlphaPortal school-bus transportation for Claude — students, stops, live bus location, notifications

- Trust score: 93/100 (high trust)
- Change this week: +4
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-09-21

## Components

- npm · `alphaportal-mcp`: 93/100 (this document), [markdown](https://verifymcp.io/servers/chrischall-alphaportal-mcp/alphaportal-mcp.md), [page](https://verifymcp.io/servers/chrischall-alphaportal-mcp/alphaportal-mcp)

## Channel facts

- Registry: `npm`
- Package: `alphaportal-mcp`
- Version: `1.0.0`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-09-21.

- **Supply Chain Security**: 100/100
  - No malware found by supply-chain analysis.
  - No known CVEs affecting this package version or its production dependencies.
  - No install/post-install scripts declared.
  - 0 of 9 dependencies flagged as unhealthy.
- **Provenance & Transparency**: 97/100
  - Source repository is publicly reachable at the declared URL.
  - Cryptographically verified build provenance (signed, bound to chrischall/alphaportal-mcp).
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 0 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 80/100
  - AI-judged instruction clarity (excellent).
  - Tool/resource definitions use about 864 tokens (~57/item across 15 items; 15 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 80/100
  - Stability observed for 24 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 15 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 15 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).

## Install

### How do I install the io.github.chrischall/alphaportal-mcp server?

io.github.chrischall/alphaportal-mcp runs locally as an npm package, launched with npx -y alphaportal-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add chrischall-alphaportal-mcp -- npx -y alphaportal-mcp
```

### Cursor

```json
{
  "mcpServers": {
    "chrischall-alphaportal-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "alphaportal-mcp"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "chrischall-alphaportal-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "alphaportal-mcp"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add chrischall-alphaportal-mcp -- npx -y alphaportal-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "chrischall-alphaportal-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "alphaportal-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add chrischall-alphaportal-mcp --command npx --arg -y --arg alphaportal-mcp
```

### Hermes

```yaml
mcp_servers:
  chrischall-alphaportal-mcp:
    command: "npx"
    args: ["-y", "alphaportal-mcp"]
```

### Netclaw

```json
{
  "McpServers": {
    "chrischall-alphaportal-mcp": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "alphaportal-mcp"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add chrischall-alphaportal-mcp -t stdio -c npx -a -y alphaportal-mcp
```

### Other

```json
{
  "mcpServers": {
    "chrischall-alphaportal-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "alphaportal-mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-09-21 (score 93, +12)

- [security improvement] Known CVEs: unverified → pass
- [functional improvement] Dependency health: unverified → 1.00

### 2026-09-20 (score 81, −11)

- [security regression] Known CVEs: pass → unverified
- [functional regression] Dependency health: 1.00 → unverified
- [functional] MCP protocol: Implements a current MCP spec version (2026-07-28).
- [functional] Package version: 0.4.0 → 1.0.0

### 2026-09-18 (score 92, +1)

- [security regression] Tool safety: pass → unverified
- [security regression] Stability: 0.67 → unverified
- [functional regression] Capabilities: pass → unverified
- [functional regression] Tool coverage: 100 → unverified
- [functional improvement] Dependency health: 0.87 → 1.00
- [functional] First check of Schema quality: unverified
- [functional] Package version: 0.3.2 → 0.4.0

### 2026-09-17 (score 91, +1)

No change was recorded against any check on this day. Stability & Change Management went from 63 to 67. That category is still filling its 30-day observation window: 19 days of observed history at the previous scan, 20 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-16 (score 90, +15)

- [security improvement] Malware scan: unverified → pass

### 2026-09-15 (score 75, −14)

- [security regression] Malware scan: pass → unverified
- [functional] Package version: 0.3.1 → 0.3.2

### 2026-09-13 (score 89, +1)

No change was recorded against any check on this day. Stability & Change Management went from 50 to 53. That category is still filling its 30-day observation window: 15 days of observed history at the previous scan, 16 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-12 (score 88, +15)

- [security improvement] Malware scan: unverified → pass

## MCP tools (15)

### `alphaportal_list_students` (~40 tokens)

List the students (children) on the signed-in account, with grade, school, and transportation flags. Start here to get each studentId.

### `alphaportal_get_student` (~49 tokens)

Get a student's full transportation detail: assigned school plus morning and afternoon stops with times and calendars.

Input parameters:

- `studentId` (integer, required): The numeric studentId (from alphaportal_list_students).

### `alphaportal_get_student_stops` (~61 tokens)

Get a student's assigned bus stops — stop name, scheduled time, days of the week, and stop location (lat/lng) for each.

Input parameters:

- `studentId` (integer, required): The numeric studentId (from alphaportal_list_students).

### `alphaportal_get_bus_location` (~96 tokens)

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.

Input parameters:

- `shift` (string, required): Which run to track: AM (to school) or PM (home).
- `studentId` (integer, required): The numeric studentId (from alphaportal_list_students).

### `alphaportal_get_report_link` (~58 tokens)

Get a one-time PDF download link for a student's transportation report (stops, schedule). Returns a URL to open in a browser.

Input parameters:

- `studentId` (integer, required): The numeric studentId (from alphaportal_list_students).

### `alphaportal_list_notifications` (~44 tokens)

List the account's transportation notifications — arrival/departure alerts (e.g. "arrived at school") with title, body, the student, and timestamp.

### `alphaportal_get_profile` (~26 tokens)

Get the signed-in user profile (name, email, role, account).

### `alphaportal_get_account` (~35 tokens)

Get the account (school district) info — name, timezone, date/phone formats — and the current server date.

### `alphaportal_get_settings` (~30 tokens)

Get the portal feature/visibility settings (which notification types and features are enabled for this district).

### `alphaportal_list_schools` (~36 tokens)

List all schools in the district with names and coordinates (lat/lng). Useful for resolving a school by name.

### `alphaportal_list_grades` (~22 tokens)

List the district grade levels (id + name).

### `alphaportal_list_requests` (~26 tokens)

List the transportation requests submitted on this account, with tracking numbers and status.

### `alphaportal_edit_walk_radius` (~111 tokens)

Set a student's walk-zone radius, in meters. This can affect transportation eligibility, so it is confirm-gated: without confirm:true it returns a dry-run of the exact payload. Verified required fields: studentId, radius.

Input parameters:

- `confirm` (boolean): Must be true to proceed. Without this, the tool returns a preview.
- `radiusMeters` (integer, required): Walk-zone radius in meters (the API stores the base-unit distance).
- `studentId` (integer, required): The numeric studentId.

### `alphaportal_set_notification` (~168 tokens)

Set a student's transportation notification preferences (push/email, per AM/PM run) across the categories the district enables: stopRadiusEntry, studentScan, backupBus, schoolArrival, stopServiced. Confirm-gated: without confirm:true it returns a dry-run of the exact payload. NOTE: the portal sends the whole preference set at once; categories you omit may be left unchanged or reset by the server — review the dry-run first.

Input parameters:

- `confirm` (boolean): Must be true to proceed. Without this, the tool returns a preview.
- `preferences` (object, required): Per-category push/email toggles.
- `studentId` (integer, required): The numeric studentId.
- `studentOriginalId` (string): The student's originalId (from alphaportal_list_students), if known.

### `alphaportal_session_status` (~62 tokens)

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.

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/chrischall-alphaportal-mcp/alphaportal-mcp#diagnostics

## Score history

- 2026-09-21: 93
- 2026-09-20: 81
- 2026-09-19: 92
- 2026-09-18: 92
- 2026-09-17: 91
- 2026-09-16: 90
- 2026-09-15: 75
- 2026-09-14: 89
- 2026-09-13: 89
- 2026-09-12: 88
- 2026-09-11: 73
- 2026-09-10: 72
- 2026-09-09: 87
- 2026-09-08: 86
- 2026-09-07: 86
- 2026-09-06: 85
- 2026-09-05: 85
- 2026-09-04: 84
- 2026-09-03: 84
- 2026-09-02: 84
- 2026-09-01: 83
- 2026-08-31: 83
- 2026-08-30: 82
- 2026-08-29: 67
- 2026-08-28: 81

## Common questions

### What is the io.github.chrischall/alphaportal-mcp server?

io.github.chrischall/alphaportal-mcp is listed in the public MCP registry as io.github.chrischall/alphaportal-mcp. AlphaPortal school-bus transportation for Claude, students, stops, live bus location, notifications. This page covers its npm package (alphaportal-mcp).

### Is the io.github.chrischall/alphaportal-mcp server safe to use?

io.github.chrischall/alphaportal-mcp scores 93 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 21 September 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the io.github.chrischall/alphaportal-mcp server expose?

io.github.chrischall/alphaportal-mcp exposes 15 tools: alphaportal_list_students, alphaportal_get_student, alphaportal_get_student_stops, alphaportal_get_bus_location, alphaportal_get_report_link, and 10 more. Their descriptions and schemas cost roughly 864 tokens of context every time the server is loaded.

### Is the io.github.chrischall/alphaportal-mcp server still maintained?

io.github.chrischall/alphaportal-mcp is still listed as active in the MCP registry. We last reached this channel on 21 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What licence is the io.github.chrischall/alphaportal-mcp server under?

io.github.chrischall/alphaportal-mcp declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

## Links

- npm package: https://www.npmjs.com/package/alphaportal-mcp
- Socket report: https://socket.dev/npm/package/alphaportal-mcp
- Repository: https://github.com/chrischall/alphaportal-mcp
- Changelog RSS feed: https://verifymcp.io/servers/chrischall-alphaportal-mcp/alphaportal-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/chrischall-alphaportal-mcp/alphaportal-mcp.json
- HTML version of this page: https://verifymcp.io/servers/chrischall-alphaportal-mcp/alphaportal-mcp
