Skip to main content
Glama
SleepyPandas

UofT Timetable Builder MCP

by SleepyPandas

search_courses

Read-onlyIdempotent

Find courses by code or title, filter by campus, session, division, and delivery mode, and page through results.

Instructions

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.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pageNo
campusesNo
sessionsNo
directionNoasc
divisionsNo
page_sizeNo
course_codeNo
course_titleNo
delivery_modesNo
course_section_codeNo
search_course_descriptionNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.0

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish read-only, idempotent, non-destructive behavior, so the description is free to add operational context — and it does: page numbering starts at one, page_size defaults to 20, sort direction defaults to asc, and critically that no automatic pagination is performed. That last point materially changes how an agent must loop, which is real value beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Tight and front-loaded: the primary action leads, then pagination mechanics, then data-source pointers, then parameter usage notes. Every sentence carries information, with only minor redundancy in the paging statements.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 11-parameter tool with zero schema documentation and no output schema, the description covers pagination and the two text filters well but leaves most reference-code filters opaque. Pointing to get_reference_data mitigates but does not close the gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across 11 parameters, so the description must compensate. It documents page, page_size, course_code, course_title, and the sort default, and points to get_reference_data for filter codes, but campuses, sessions, divisions, delivery_modes, course_section_code, and search_course_description are never explained in either place.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Search one page of courses') and immediately scopes the result set with the filter types (code/title and reference-code). The 'one page' framing plus filter list differentiates it from content-oriented siblings like search_course_titles and get_course_details, though it never explicitly names a sibling to contrast against.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete routing guidance: session IDs come from get_current_sessions and other filter codes from get_reference_data, and it distinguishes exact course_code from keyword course_title. It lacks explicit when-not-to-use guidance, but the prerequisite sourcing is unusually actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.