Skip to main content
Glama

grades_check

Check lecturer grade files for import readiness: match columns to Moodle grade items, identify blocked rows with reasons, and list missing student enrolments.

Instructions

Reads only. For each lecturer's grade file (or every file in a folder): which Moodle course its name points at, which gradebook item each mark column goes to (Final, resit, ...) and where the feedback goes (Evaluation / Feedback ...), and for every student whether the row is ready or blocked, with the reason (not a number, student not enrolled in that course, duplicate row...). Also lists enrolled students missing from the file. Marks written 57,5 or 57.5 are both read as 57.5.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pathYesA lecturer's .xlsx/.csv, or a folder of them (the Drive folder, downloaded and unzipped)
itemsNoOnly when a column cannot be matched to a grade item: {"midterm": "Midterm"}
courseidNoOnly for a single file whose name does not identify one course

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.4.0

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description carries the burden. It discloses read-only behavior, handling of decimal separators (57,5 vs 57.5), and the logic for matching columns. It also mentions reporting on blocked rows with reasons and missing students, which is behaviorally transparent. It doesn't mention authentication or rate limits, but those may not be relevant for a local file read.

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 detailed but concise, covering all key aspects in a single paragraph. It's front-loaded with the read-only nature and then lists what it maps. The sentence about decimal formats is a useful detail. No fluff, but the structure could be improved with bullet points for readability.

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 the tool's complexity (handling files, folders, multiple mappings, edge cases), the description covers most essentials: input types, mapping logic, student status, missing students, and format nuances. It doesn't describe the exact output structure, but no output schema exists, so that's a gap. However, the described outputs are sufficiently detailed for an agent to understand the tool's 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?

Schema coverage is 100%, so parameters are well described in the schema itself. The description adds context on how 'path' can be a file or folder and how 'items' and 'courseid' are used for ambiguous cases, but these are also in the schema. The description doesn't add significant extra meaning beyond what's already in the schema.

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 clearly states the tool's purpose: to read grade files and report on mapping to Moodle courses, grade items, feedback locations, and student readiness. It distinguishes itself from similar tools like grades_csv and grades_verify by focusing on validation/mapping rather than extraction or submission, though it doesn't explicitly name those siblings.

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: it's for checking readiness of grade files before submission, listing missing students, and handling various formats. It doesn't explicitly state when not to use it or alternatives, but the context of 'reads only' and the detailed outputs suggest it's for verification, which is clear enough.

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