Skip to main content
Glama
Dathis

ZHAW Moodle MCP Server

by Dathis

moodle_list_assignments

Read-onlyIdempotent

List assignments with opening dates, deadlines, submission and grading status. Filter by course ID to narrow results to a single course.

Instructions

Assignments with opening date, deadline, submission and grading status and description. Without course_id all current courses are included (one request per assignment).

    Args:
        course_id: restrict to one course
    

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
course_idNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
failedNoAssignments that could not be read
assignmentsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.3.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, openWorldHint, and idempotentHint, covering safety and result variability. The description adds a useful behavioral detail: 'one request per assignment' when course_id is omitted, which informs the agent about potential multiple API calls. It does not contradict the annotations and provides additional context beyond them.

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 concise, with two main sentences and a separate Args line. The first sentence front-loads the purpose, and the second explains default behavior. The structure is slightly fragmented but not overly verbose; every sentence contributes meaning.

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?

The description covers the key behavior (listing assignments, scope control via course_id, and the multi-request implication). An output schema exists, so return structure need not be described. No critical missing information for a tool of this complexity, though it does not mention error handling or edge cases (e.g., invalid course_id), which are minor.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must fully explain the parameter. It does: 'course_id: restrict to one course' clearly conveys the meaning and effect. For a single optional parameter, this is sufficient and adds value 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 description explicitly states the tool lists assignments with specific fields (opening date, deadline, submission, grading status, description). The verb 'list' and resource 'assignments' are clear and distinguish it from siblings like moodle_list_courses or moodle_list_resources.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains the default behavior when course_id is omitted ('all current courses are included') and the effect of providing course_id ('restrict to one course'), giving context for usage. However, it does not explicitly mention when to prefer this tool over alternatives like moodle_get_deadlines or moodle_get_course, so usage guidance is implied rather than explicit.

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