Authentication & delegation
Connecting an MCP transport does not by itself grant access to private Gapwise data. Private requests cross two separate boundaries:
- OAuth authorization: the client proves that it may call the protected MCP resource.
- Gapwise delegation: the signed-in student explicitly chooses which Gapwise capabilities and data categories the integration may exercise.
The canonical protected resource is:
https://ai.gapwise.ca/api/mcpIts discovery metadata is published at:
https://ai.gapwise.ca/.well-known/oauth-protected-resourceCompatible clients should follow that metadata and the browser authorization flow rather than constructing authorization URLs themselves.
OAuth does not equal timetable permission
Section titled “OAuth does not equal timetable permission”Gapwise AI’s protected resource requires a valid third-party OAuth credential for the canonical MCP audience. The minimal advertised OAuth identity scope is email, but that scope is not a timetable or write permission.
Fine-grained authority lives in the student’s explicit Gapwise AI delegation. A client can therefore be correctly OAuth-authenticated and still be refused a schedule read or write that the student did not delegate.
Read and write authority
Section titled “Read and write authority”Read and write access are separate. A read grant does not imply write access. The current bounded writes cover supported personal items and gap preferences; imported academic timetable meetings remain read-only.
See Permissions & writes for the expectedRevision, queueing, and stale-write contract.
Discovery without private data
Section titled “Discovery without private data”The MCP transport allows unauthenticated initialization and tool discovery so a compatible client can discover the service and its authentication requirement without receiving timetable content. Protected tool execution remains fail-closed until the caller is verified and the relevant delegation is active.
Revocation and reauthorization
Section titled “Revocation and reauthorization”Revoking delegation removes the student’s delegated snapshot/actions and later private access fails closed. A previously authorized client cannot treat its old authority as still valid for Gapwise private data.
Reauthorization is a fresh decision. The student reviews permissions again, and the integration must use the newly issued authority and current state. Old queued intent must not be silently replayed under the new grant.
The gapwise-ai authentication documentation contains deeper resource-server and token-validation details for maintainers and security review.