Skip to main content
Glama
NCCU-AI-SYSTEM

NCCU Moodle MCP

List assignments

list_assignments

List assignments with due dates and submission status for your Moodle courses. Filter by course, semester, or due/open dates to find what's due or opened in a specific period.

Instructions

List assignments (with due dates and submission status) for the student's courses.

Scope, in priority order:

  • course_ids: if given, list assignments for exactly those Moodle course ids (from list_courses); sem is ignored.

  • sem: otherwise filter all enrolled courses by NCCU term code. Default (neither given) = latest semester; "1142" = that term; "all" = every course.

Filter by date (ISO dates in Taipei time, e.g. "2026-09-08"): due_from/due_to bound the DUE date, opens_from/opens_to bound the OPEN (submissions-from) date. Give any subset; compute ranges from today for 'due this week', 'opened last week', etc. This is the best way to answer 'what's due/opened in some period', since it also carries submission status.

By default only courses where you are a STUDENT are included (your own homework); set include_all_role true to also include courses where you are a teacher/TA.

Each assignment: {id, course_id, course, role, name, due, opens, cutoff, status, url}, where role is the user's role in that course (student/teacher/…) and status is 'graded' / 'submitted' / 'not submitted'. Times are Taipei time 'YYYY-MM-DD HH:MM'; null means unset. Sorted by due date.

Credentials come from the MCP settings headers, not from you.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
semNoNCCU term code, e.g. "1142". Omit for the latest semester; "all" for every semester.
due_toNoOnly assignments due on/before this ISO date (Taipei tz).
due_fromNoOnly assignments due on/after this ISO date (Taipei tz).
opens_toNoOnly assignments opening on/before this ISO date (Taipei tz).
course_idsNoSpecific Moodle course ids (from list_courses). When given, overrides `sem`.
opens_fromNoOnly assignments opening on/after this ISO date (Taipei tz).
include_all_roleNoInclude courses where you are not a student (teacher/TA). Default false = only your student courses.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and discloses substantial behavior: scope precedence rules, defaults (latest semester, student-only), the semantic distinction between DUE and OPEN dates, Taipei timezone handling, exact return fields with status values, sort order, null semantics, and that credentials come from MCP headers. Only pagination/limits and error behavior are unmentioned, which is minor for a read-only list tool.

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?

The description is longer than average but every block earns its place: summary line, scope precedence, date semantics, role filtering, output shape, and credential source are all scannable sections. It is front-loaded with the core purpose and would only be trimmed by removing minor redundancy with the schema's own descriptions of sem.

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?

Given 7 parameters with no annotations and no output schema, the description is well-near complete: it defines every parameter's semantics, the return shape, timezone and date format, defaults, sort order, and credential source. The notable gap is no mention of result limits or pagination, and no explicit contrast with upcoming_deadlines, but for a list-query tool the coverage is strong.

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 coverage is 100%, so the baseline is 3, but the description adds real meaning beyond the schema: it explains the due-vs-open semantic split, gives use-case guidance ('compute ranges from today for 'due this week''), clarifies that course_ids come from list_courses and override sem, and explains the rationale behind include_all_role. This elevates it above baseline.

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 opening line names a specific verb and resource ('List assignments') and immediately adds the distinguishing payload: due dates and submission status. It differentiates from siblings by scope ('student's courses'), data carried (status), and the closing claim that it is the best way to answer period-based 'due/opened' questions, which separates it from upcoming_deadlines.

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 gives explicit when-to-use context: scope precedence for course_ids vs sem, a clear 'best way to answer' date-range questions claim, and default student-only behavior with an override flag. It does not explicitly name sibling tools to use instead for other cases, so it falls short of a 5, but the guidance is concrete and actionable.

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