Skip to main content
Glama
shreeyachand

USC WebReg/Course Catalog MCP

by shreeyachand

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

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": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_termsA

List all USC academic terms available in the course catalog, each with season, year, term code, and status. Use this to find the termCode for a given semester (e.g. 20263 = Fall 2026).

get_termA

Get details for a single academic term by its numeric termCode (e.g. 20263 = Fall 2026). Returns season, year, status, and activation date.

list_schoolsA

List all USC schools/colleges offering classes in a term, each with its prefix (e.g. 'ENGV' = Viterbi, 'DRNS' = Dornsife) and the programs (departments) it contains. Useful for navigating the catalog structure.

list_programsA

List all USC programs (departments/majors) in a term, each with its prefix, name, and the school prefix(es) it belongs to. Use this to find the school+program pair needed for list_courses_by_program (e.g. Computer Science is program 'CSCI' under school 'ENGV').

get_programA

Get details for a single USC program in a term, including program-specific notes (e.g. enrollment or D-clearance instructions). Requires the program's school prefix (find via list_programs) and the program prefix.

list_course_prefixesA

List every USC subject prefix in the catalog (e.g. CSCI, MATH, AHIS) across all terms, with its name. Useful for discovering what subjects exist.

list_sessionsA

List USC enrollment sessions (e.g. regular session '001', summer sessions) with their term, session code, description, last drop date, and RNR session id. Useful for understanding session codes shown on sections.

check_course_existsA

Check whether a course code exists anywhere in the USC catalog (not limited to a single term). Accepts codes like 'CSCI-103'. Returns true/false.

get_syllabus_indexA

Get the SimpleSyllabus index URL for a term, which can be used to look up published syllabi for that term's sections. Individual sections also carry a 'syllabus' URL directly.

get_section_feesA

Get the fees for a single course section by its SIS section id (the 'sisSectionId' field on a section, e.g. '29934'). Returns any tuition/fee items attached to the section.

search_coursesA

Search the USC course catalog for a term by keyword. Matches course codes, titles, and descriptions (e.g. 'machine learning', 'CSCI', 'art history'). Returns matching courses with their sections, including schedule, instructor, and seat availability. Supports optional section filters (days, startAfter, startBefore, openOnly) applied client-side.

get_courseA

Get the full record for a single USC course in a term by its course code (e.g. 'CSCI-103'). Includes description, units, GE code, prerequisites, corequisites, restrictions, and all sections with schedule, instructor, seats, fees, and syllabus URL. Supports optional section filters (days, startAfter, startBefore, openOnly) applied client-side.

list_courses_by_programA

List all courses offered by a USC program (department) in a term. Requires the school prefix and program prefix, which can be discovered via list_programs. For example, Computer Science is school 'ENGV' and program 'CSCI'. Returns courses with their sections. Supports optional section filters (days, startAfter, startBefore, openOnly) applied client-side.

list_ge_requirementsA

List USC General Education (GE) requirements for a term. Returns the GE structure grouped by requirement era ('Fall2015OrLater' for current students, 'BeforeFall2015' for older catalogs). Each requirement has a prefix and categories with prefixes (e.g. GE B 'Humanistic Inquiry' is category prefix 'HINQ' under requirement 'ACORELIT'). Use the prefixes with list_courses_by_ge.

list_courses_by_geA

List all courses in a term that satisfy a General Education (GE) category, with their sections. Requires the GE requirement prefix and category prefix, which can be discovered via list_ge_requirements (e.g. GE B 'Humanistic Inquiry' = geRequirementPrefix 'ACORELIT', geCategoryPrefix 'HINQ'). Supports optional section filters (days, startAfter, startBefore, openOnly) applied client-side.

get_ge_category_detailsA

Get the name and details of a single General Education (GE) category within a requirement for a term. Useful to confirm what a GE category prefix means (e.g. what 'HINQ' covers).

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.2/5.0

Scored across 16 tools

Disambiguation4/5

Most tools cleanly separate listing, detail lookup, and course discovery, but a few overlaps exist: check_course_exists is similar to get_course/search_courses, and the multiple list_courses_* variants all return courses with sections. Descriptions are specific enough that an agent can usually pick correctly, though some boundary cases require close reading.

Naming Consistency5/5

Tool names follow a consistent verb_noun pattern: list_* for collections, get_* for single records, and search_courses/check_course_exists as clear special cases. All names are snake_case, and related tools are predictably grouped.

Tool Count4/5

16 tools is slightly above the ideal range but justifiable given the domain's breadth: terms, schools, programs, course prefixes, sessions, GE requirements, fees, and syllabi all need coverage. A couple of tools like check_course_exists or get_syllabus_index feel auxiliary, but they do not make the set bloated.

Completeness4/5

The catalog surface is well covered: term navigation, program/school structure, course search and detail, GE lookup, sections, fees, sessions, and syllabi are all represented. Minor gaps include lack of a direct single-section lookup, no search by instructor, and no registration/enrollment actions, but for a read-only catalog the core workflows are complete.

Maintenance

ActivityMaintained
ResponsivenessNo issues