Skip to main content
Glama
infinitecampus-mcp
by chrischall

ic_list_assignments

Read-only

List a student's assignments—homework, tests, and projects—with due dates and missing flags. Filter by date range, course, or missing-only to find what needs attention.

Instructions

List a student's assignments (homework, tests and projects, with due dates and missing flags). Name the student with student (" ()") or with district + studentId. The IC endpoint returns the full term history (~hundreds of items); date and missing filters are applied client-side. For a single course, pass courseId (the sectionID from ic_get_schedule).

Input Schema

NameRequiredDescriptionDefault
viewNoResponse shape. "compact" (default) strips image/avatar URLs; "full" returns Infinite Campus's payload untouched; "brief" answers one text line per assignment: "<name> — due <dueDate or no date> — <missing|ok>".
sinceNoYYYY-MM-DD; filters dueDate >= since (client-side)
untilNoYYYY-MM-DD; filters dueDate <= until (client-side)
studentNoThe student as "<name> (<district>)" — an alternative to passing district and studentId.
courseIdNosectionID (optional, from ic_get_schedule). The endpoint supports server-side filtering by sectionID only.
districtNoDistrict name from ic_list_districts. Give with studentId, or give student instead.
studentIdNopersonID from ic_list_students. Give with district, or give student instead.
missingOnlyNoOnly return assignments flagged missing by the teacher

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changedv3.3.0
    • addedInput schema / properties / district / description
      Added value: +"District name from ic_list_districts. Give with studentId, or give student instead."
    • addedInput schema / properties / student
      Added value: +{
      +  "description": "The student as \"<name> (<district>)\" — an alternative to passing district and studentId.",
      +  "type": "string"
      +}
    • addedInput schema / properties / studentId / description
      Added value: +"personID from ic_list_students. Give with district, or give student instead."
    • changedInput schema / properties / view / description
      Previous value: -"Response shape: \"compact\" (default) drops fields the response already carries elsewhere; \"full\" returns every field this server understands. compact strips image/avatar URLs from the response; \"full\" returns Infinite Campus's payload untouched. No field projection: this server has no verified record of which Infinite Campus fields matter, and inventing one would risk dropping a field a caller needs."New value: +"Response shape. \"compact\" (default) strips image/avatar URLs; \"full\" returns Infinite Campus's payload untouched; \"brief\" answers one text line per assignment: \"<name> — due <dueDate or no date> — <missing|ok>\"."
    • changedInput schema / properties / view / enum
      Previous value: -[
      -  "compact",
      -  "full"
      -]New value: +[
      +  "compact",
      +  "full",
      +  "brief"
      +]
    • removedInput schema / required
      Removed value: -[
      -  "district",
      -  "studentId"
      -]
  2. Changed4 schema fields changedv3.2.1
    • addedInput schema / properties / since / format
      Added value: +"date"
    • addedInput schema / properties / since / pattern
      Added value: +"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
    • addedInput schema / properties / until / format
      Added value: +"date"
    • addedInput schema / properties / until / pattern
      Added value: +"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
  3. Changed1 schema field changedv3.0.0
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
  4. Addedv2.8.3

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare this as a safe read (readOnlyHint, openWorldHint), and the description adds genuinely useful behavior: the endpoint returns full term history of roughly hundreds of items, and date/missing filters are applied client-side while only sectionID is server-side. That volume and filtering-location detail cannot be inferred from annotations or schema.

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?

Four short sentences, each carrying distinct information: purpose and contents, student identification, data volume and filtering behavior, and per-course narrowing. It is front-loaded with the purpose and contains no filler.

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 and no required parameters, the description does the important work of clarifying that a student identifier is effectively needed and that filtering is client-side over a large payload. It stops short of describing response shape, though the schema's view parameter already covers that.

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 100%, so the baseline is 3; the description largely restates what the schema already documents for student, courseId, district, and studentId. It does tie the either/or identity options together and reiterates the client-side filtering, but adds little parameter meaning beyond the schema.

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 first sentence gives a specific verb and resource and enumerates the content returned (homework, tests, projects, due dates, missing flags), which is enough to separate it from sibling tools like ic_list_grades and ic_list_assessments. It also names the related tool ic_get_schedule for section IDs.

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 explains the two ways to identify a student (the 'student' string, or district + studentId) and the condition for narrowing to one course (pass courseId). It does not state when to prefer ic_list_grades or ic_list_assessments instead, so exclusions are absent, but the calling context is clear.

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