Skip to main content
Glama

solve_semester_schedule

Generate conflict-free semester schedules from course codes and term. Optimizes for time, days off, and campus preferences, returning up to 3 options with penalty scores.

Instructions

Given a list of course_strings and a term, return up to k (default 3) conflict-free section schedules using CP-SAT optimization. preferences may include earliest_start (minutes from midnight, e.g. 600=10am), latest_end, days_off (list of day strings like ['F']), campus_preference (e.g. 'BUSCH'). Returns schedules with section assignments, a human-readable summary, and penalty_score (lower=better). Always surface caveats[] to the user. Use get_sections first to confirm sections exist for the term.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
kNo
termYes
preferencesNo
course_stringsYes
Behavior3/5

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

With no annotations, the description carries full burden. It discloses the use of CP-SAT optimization, return of penalty_score, and that caveats are always surfaced. However, it does not detail failure modes, side effects, auth needs, or performance impacts, leaving gaps in transparency.

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?

The description is a single paragraph of four sentences, front-loaded with the main purpose, then detailing preferences and output, and ending with a usage note. Every sentence adds value with no redundancy or fluff.

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?

Given the complexity of an optimization tool with 4 parameters (2 required) and no output schema, the description covers the primary use case and mentions get_sections as a prerequisite. However, it lacks details on error handling, preference interaction, and output format specifics, making it moderately complete for an agent.

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

Parameters4/5

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

Schema description coverage is 0%, so the description adds significant value by explaining k's default, that preferences may include earliest_start, latest_end, days_off, campus_preference, and that course_strings is a list. This compensates for the bare schema, though preferences structure remains loosely defined.

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 clearly states the tool's function: given course strings and a term, return conflict-free schedules using CP-SAT optimization. It specifies output includes schedules, summary, penalty_score, and caveats, distinguishing it from sibling tools like solve_degree_plan by focusing on semester scheduling.

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 instructs to use get_sections first to confirm sections exist, providing a clear prerequisite. It implies the tool is for generating conflict-free schedules with preferences, but does not explicitly state when not to use or list alternatives beyond get_sections.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/heetshah15/scarletplan'

If you have feedback or need assistance with the MCP directory API, please join our Discord server