gapwise-ai is the OAuth/MCP trust boundary of the six-repository Gapwise ecosystem. It exposes stateless public campus intelligence plus explicitly delegated, minimized student context and bounded actions to compatible AI clients. It does not replace deterministic Gapwise product logic, the public campus API, or the public SDKs.
All six canonical repositories are owned by the Gapwise for UTM GitHub organization (Gapwise-for-UTM). Andrew Muratov remains the creator and primary maintainer.
- GitHub organization:
https://github.com/Gapwise-for-UTM - Core product/API/SDK source:
Gapwise-for-UTM/gapwise - Public API:
https://api.gapwise.ca/v1 - OpenAPI:
https://api.gapwise.ca/openapi.json - Data/provenance:
https://data.gapwise.ca - Developer docs:
https://docs.gapwise.ca - AI/MCP endpoint:
https://ai.gapwise.ca/api/mcp - Operational status:
https://status.gapwise.ca - Native mobile client:
Gapwise-for-UTM/gapwise-mobile
Public campus developers use equal first-party SDKs owned by the core repository:
- TypeScript
@gapwise/sdk: version0.1.1is published on both npm and JSR through provenance-backed GitHub Actions publishing. Node, Bun, and Deno are runtime targets for one portable TypeScript implementation, not separate SDKs. - Python
gapwise==0.1.0: published on PyPI through Trusted Publishing.
These SDKs intentionally expose public campus intelligence only. They do not grant access to private student schedules, delegation state, queued actions, or AI authorization.
- Deterministic timetable, gap, routing, campus, and leave-by calculations remain owned by
gapwise. - AI consumes explicit delegated representations of canonical state rather than recomputing authoritative student facts from prose.
- Imported/source-backed academic meetings remain read-only to AI.
- Personal-item and preference mutations remain typed, scoped, permission-checked, revision-bound, and bounded by the core product model.
- Raw ACORN files, friend data, precise/live location, credentials, primary private-data encryption keys, and unrelated browser state remain outside the delegated surface unless an explicit future design and security review says otherwise.
- Named AI-client compatibility is only advertised after end-to-end OAuth/read/write/revoke and negative-path evidence exists.
- Public SDK/runtime/registry changes must not blur the private OAuth/MCP boundary.
When an MCP resource/tool/schema changes, check whether it requires updates to:
- canonical
gapwisestate or deterministic calculations; - mobile AI surfaces and permission UX;
gapwise-docsAI/OAuth/MCP documentation;gapwise-dataif new campus facts/provenance are surfaced;gapwise-statushealth probes or incident wording;- public SDK docs only when the public campus contract itself changes.
AI is integrated with the ecosystem through explicit contracts and permissions, not through hidden duplication of product logic.