Skip to main content
Glama
Dathis

ZHAW Moodle MCP Server

by Dathis

moodle_list_resources

Read-onlyIdempotent

Find all learning materials in a Moodle course by listing files, folders, external links, and pages with their sections. Optionally expand folders to see contained files.

Instructions

List learning materials of a course: files (pdf, powerpoint, word, excel, zip, ...), folders, external links and Moodle pages, with their section.

    Args:
        course_id: course id from moodle_list_courses
        include_folder_contents: also list the individual files inside folders
            (one extra request per folder)
    

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
course_idYes
include_folder_contentsNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
course_idYes
resourcesYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.3.0

TDQS

A4/5.0
Behavior3/5

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

Annotations indicate readOnlyHint, openWorldHint, and idempotentHint, so the agent knows the tool is safe and non-mutating. The description adds that listing folder contents requires an extra request per folder, which is useful but doesn't deeply describe other behaviors like performance or error handling. Given annotations cover safety, the description does not need to repeat it, but could add more on side effects.

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 succinct and front-loaded with the core purpose. The parameter details are listed in a clear, bullet-like format without redundancy. Every sentence serves a purpose, making it efficient and easy to scan.

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 tool is relatively simple with just two parameters and an output schema present, so the description doesn't need to explain return values. It covers the main functionality and parameter semantics. The only missing piece is explicit guidance on when to use this vs. alternatives, but that's a minor gap given the clear purpose.

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?

The schema has 0% description coverage, so parameters are only defined by their types and names. The description clarifies that course_id should come from moodle_list_courses, adding value beyond the schema. For include_folder_contents, it explains the meaning and the cost of an extra request per folder. This is helpful but could be even more detailed on the outcome of setting it to false.

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 purpose: listing learning materials (files, folders, links, pages) with their section. It specifies the resource types and the context (course). This distinguishes it from siblings like moodle_get_content and moodle_download_resource, which are for retrieval and download, not listing.

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 implies usage: call this when you need an overview of a course's materials, and mentions the optional flag to include folder contents. However, it does not explicitly state when not to use it or name alternatives like moodle_get_content for specific content retrieval, or moodle_download_resource for downloading. The context is clear but not exhaustive.

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