Skip to main content
Glama

How fast a class fills up

enrollment_history
Read-onlyIdempotent

Review past course enrollment, waitlist size, and daily fill rates to assess your chances of getting into a class and whether the waitlist clears.

Instructions

Historical enrollment for a course: final enrollment vs capacity, waitlist size, and (for recent terms) the day-by-day fill curve. Use this to judge registration risk — 'will I get in?', 'do I need to enroll at 7am?', 'does the waitlist clear?'.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
yearNoRestrict to a year, e.g. "2025".
quarterNoRestrict to a quarter.
courseIdNoCourse, e.g. "COMPSCI 161".
showCurveNoShow the day-by-day fill curve for the most recent term (default false).
departmentNoAlternative to courseId.
instructorNoRestrict to one instructor.
sectionTypeNoRestrict to a section type, e.g. Lec.
courseNumberNoAlternative to courseId.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the description does not repeat these. It adds useful behavioral context: the data covers final enrollment, capacity, waitlist, and a fill curve for recent terms, plus the note that the fill curve is day-by-day. No contradiction with annotations.

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

Conciseness5/5

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

Two sentences with zero redundancy. The first sentence front-loads the data contents; the second sentence gives usage context with three crisp example questions. Every word earns its place, and the structure is immediately scannable.

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

Completeness4/5

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

With no output schema, the description compensates by naming the key return elements (final enrollment, capacity, waitlist, fill curve). It also explains the temporal scope ('for recent terms') and the intended use case. For an 8-parameter read-only tool, this is complete enough for an agent to decide whether to call it and interpret basic results.

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?

The input schema has 100% description coverage, with each parameter (year, quarter, courseId, etc.) already explained. The description adds no parameter-specific detail beyond the general 'for a course', which is sufficient given the schema's thoroughness. Baseline of 3 is appropriate.

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

Purpose5/5

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

The description states a specific verb-resource pair ('Historical enrollment for a course') and lists the exact data returned (final enrollment vs capacity, waitlist size, day-by-day fill curve). It distinguishes itself from siblings like course_grades and find_sections by focusing on enrollment trends and registration risk, making the tool's scope unmistakable.

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?

The description explicitly explains when to use it: 'Use this to judge registration risk' and provides concrete example questions ('will I get in?', 'do I need to enroll at 7am?', 'does the waitlist clear?'). It does not name specific alternative tools or state when not to use it, but the context is clear enough that an agent can infer the appropriate scenario.

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