Skip to main content
Glama
SleepyPandas

UofT Timetable Builder MCP

by SleepyPandas

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
UV_HTTP_TIMEOUTNoOptional 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

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
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

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources