UofT Timetable Builder MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| UV_HTTP_TIMEOUT | No | Optional HTTP timeout in seconds for uv when downloading the package (e.g., "300"). |
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": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| save_timetableA | Store a serialized Timetable Builder state and return a public share URL. timetable must be the TTB state object with sessions, timetables, and plans. The wrapper posts the official ttb.utoronto.ca URL for that state and returns the upstream share id plus a https://ttb.utoronto.ca/#!/?t= link. This creates an anonymous share record only; it does not enroll students. |
| uoft_loginA | Start official UofT browser login, returning immediately while you complete Duo. service is degree_explorer, acorn, or both. Saved sessions are reused when valid. Newly verified browser sessions wait five seconds, recheck access, and save the latest session before continuing or closing. Status stays in_progress during the wait. remember=False starts a fresh memory-only session without deleting saved sessions. Never supply passwords or MFA codes through tools. Check uoft_auth_status for progress. |
| uoft_auth_statusA | Get connection and login progress without exposing credentials or student records. refresh=True checks both services using saved cookies; it never opens a login window. A saved cookie is not proof of a valid session. last_verified is historical, not expiry. |
| uoft_forget_sessionA | Cancel login and delete this MCP's local sessions and encryption key for both apps. This closes managed authentication resources. It is not university-wide logout. |
| uoft_discoverB | Find read operations locally; request schemas before calling unfamiliar operations. |
| uoft_readD | Batch discovered reads with optional selection. Snapshot handles last five minutes. |
| uoft_resultB | Select or page a snapshot without network access. Refetch when the handle expires. |
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 7 tools
Tools are mostly distinct: authentication flow (login, auth_status, forget_session), discovery (discover), read operations (read, result), and saving (save_timetable). Minor overlap between 'read' and 'result' as both handle retrieval, but result is specifically for snapshot paging, so it's acceptable.
Most tools follow a 'uoft_' prefix with verb or noun, but 'save_timetable' breaks the pattern. Verbs are inconsistent (login, discover, read, forget_session) vs nouns (auth_status, result). Still readable, but not a uniform convention.
7 tools is well within the ideal 3-15 range. Each tool serves a clear purpose: authentication management, discovery, reading, result handling, and saving. No redundancy or bloat.
The set covers authentication, discovery, reading, and saving timetable states, but lacks explicit tools for creating or modifying timetables (only saves a provided state). This may require agents to construct states themselves, a notable gap for a 'Timetable Builder' server.