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 |
|---|---|
| get_current_sessionsA | Get active academic sessions. Use non-header entries' values as session IDs. |
| get_reference_dataA | Get division, campus, delivery-mode, and sorting reference values. |
| get_divisionsA | List faculty/division codes; use returned values rather than campus abbreviations. |
| search_departmentsB | Search departments by keyword and division code (for example computer, ARTSC). |
| search_course_titlesB | Autocomplete a course code/title using a division code and a current session ID. Thresholds are upstream autocomplete tuning parameters, not pagination. |
| get_course_detailsA | Get a full course code's sections, meetings, rooms, and instructors. For example, course_code is CSC108H1. Optionally filter by F, S, or Y. This endpoint has no session parameter in the supplied API reference. Use the returned course id with generate_timetable. |
| search_coursesA | Search one page of courses using optional code/title and reference-code filters. Page numbering starts at one; page_size defaults to 20. Get session IDs from get_current_sessions and other filter codes from get_reference_data. Use an exact course_code from autocomplete; use course_title for keywords. Sorting defaults to asc. No automatic pagination is performed. |
| generate_timetableA | Ask UofT's solver for conflict-free lecture, tutorial, and practical sections. Each plan is one term. course_id values come from get_course_details. activity_types are the section types to fill, such as Lecture, Tutorial, or Practical. preference may be early, balanced, or late. Optional blocked_times use weekday names and 24-hour HH:MM clock times. This does not enroll students or write an ACORN timetable. |
| 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. |
| retrieve_timetableA | Load a previously saved Timetable Builder state by its public share id. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |