Skip to main content
Glama

Get Course Assignments

get-course-assignments
Read-only

List a course's assignments with deadlines and hand-in deposit status. Cross-check the syllabus because teachers may not post all homework here.

Instructions

List the assignments of a course with their deadline and what is in the hand-in deposit. A file in the deposit means something was uploaded, not that the work is finished. Incomplete by nature: many teachers never post assignments here, so an empty list does not mean there is no homework. Cross-check the course syllabus from get-course-documents.

Input Schema

NameRequiredDescriptionDefault
term_idNoAcademic term ID in YYYYN format (e.g. '20263').
course_idYesFull course ID including group number (e.g. '2433C5EM.1012'). Always required, even for document and assignment downloads where the item ID alone looks sufficient.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv3.7.0

TDQS

A4/5.0
Behavior4/5

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

Beyond the readOnly/destructive annotations, the description discloses real behavioral traits: deposit presence means an upload occurred, not completion, and the source is known to be sparsely populated. This is meaningful caveat context an agent could not infer. Minor gap: no mention of ordering, pagination, or depth of the deposit listing.

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?

Four short sentences, each carrying distinct information, with the core action stated first. Slightly dense in phrasing ('what is in the hand-in deposit') but no filler.

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

Completeness5/5

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

For a two-parameter read-only list tool with a fully documented schema and safety annotations, the description covers purpose, output content, known data-quality limitations, and a fallback source. An agent has everything needed to call it and interpret an empty response correctly.

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 coverage is 100% and both parameters are fully documented in the schema, including the term format and the note that course_id is always required. The description adds no parameter-level detail beyond this, so the baseline 3 applies.

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?

The description uses a specific verb and resource ('List the assignments of a course') and names the concrete fields returned (deadline, hand-in deposit contents). It does not, however, differentiate itself from the closely related siblings get-assignment-detail and get-assignments-summary, so it falls short of a 5.

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?

It gives clear situational guidance: the list is 'incomplete by nature' and an empty result does not mean no homework, and it routes the agent to get-course-documents for the authoritative syllabus. It stops short of saying when to prefer this over get-assignment-detail or get-assignments-summary.

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