Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
MOODLE_URLYesThe base URL of the Moodle web service endpoint, e.g. https://moodle.example.edu/webservice/rest/server.php
MOODLE_TOKENYesYour Moodle web service token, a bearer credential with your full rights

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}
prompts
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
whoamiA

Who the token belongs to, which Moodle it points at, and how many web-service functions that token is allowed to call. Run this first when something fails.

list_functionsA

Every web-service function this token may call, optionally filtered by a substring (e.g. "assign", "forum", "grade"). Use it to find out what this Moodle actually allows before assuming a tool is missing.

my_coursesA

The courses this account is enrolled in, with the id every other tool needs.

studentsA

Everyone enrolled in a course, with their role, email and last access. The userid returned here is what grade_submission expects.

course_contentsB

Sections of a course and the modules in each one: what the students see, in the order they see it. The 'cmid' identifies an activity.

assignmentsC

Assignments in a course: the assignid the submission tools need, the due date, the maximum grade and the brief as plain text.

submissionsC

Who handed in what for one assignment: the userid, the status ('submitted', 'new', 'draft'), when it arrived, the file names with download URLs and any online text.

submission_statusA

The full picture for one student on one assignment: submission state, whether it is locked, the current grade, any feedback already given and any extension.

missingA

Students enrolled in the course who have not submitted this assignment. The list to look at on the morning after a deadline.

gradebookB

Grade items for a course, for one student or for everyone the token can see. Shows what has a mark and what is still empty.

grade_submissionA

WRITES TO MOODLE, visible to the student. Put a mark and written feedback on one submission. The grade is on the assignment's own scale (see assignments); pass -1 to leave the mark unchanged and only update the feedback. This overwrites whatever mark and comment were there before, so confirm the numbers with the user first.

announceA

WRITES TO MOODLE and emails everyone enrolled. Post an announcement in the course's news forum. Check the wording with the user before calling this.

announcementsB

Recent announcements in the course's news forum, newest first.

attendance_sessionsA

The sessions of every attendance register in a course: date, duration, whether the register has been taken, and how many students were marked. The sessionid is what mark_attendance expects.

attendance_reportA

Presences and absences per student across every session already taken: a count for each status (present, late, excused, absent, as the register names them), the list of dates missed, and a flag for whoever has reached the absence limit. Sessions not yet taken are ignored. Excused absences are counted apart from unexcused ones.

mark_attendanceA

WRITES TO MOODLE, visible to the student in their attendance record. Set one student's status in one session (e.g. turn an absence into excused after a medical certificate). statusid comes from attendance_sessions. Confirm with the user first.

grades_checkA

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.

grades_csvA

Writes files, not Moodle. For each lecturer's file, a CSV ready for Moodle's gradebook import (Grades > Import > CSV file) into the right course: one row per ready student, identified by ID number, with the mark and — always next to it, since Moodle wipes a grade imported without it — the feedback. Blocked rows go to _to_check.csv with the reason, for the academic office to raise with the lecturer. Marks are written with a decimal point, exactly as the lecturer gave them.

grades_verifyA

The double check after the import, reads only: for every ready row in the lecturer's file(s), read what Moodle's gradebook now holds for that student on that item and compare, mark and feedback. Needs a token allowed to read the user grade report (the academic office; a lecturer's token usually is not).

timetableA

The lessons of one week across a campus, from Moodle: day, time, room, course, lecturers and number of students, plus room clashes, a lecturer in two places, lessons with no room yet, and the week as a WhatsApp message. The room is read from the attendance session description ('Aula: DREAM'). With page_path it also writes the week as a web page (per room, per lecturer, free rooms) to open in a browser.

late_registersB

Attendance registers not taken within the hours the rules allow (ESE: 24 hours from the end of the lesson), across every course that matches, grouped by lecturer: overdue (still not taken), taken late, and pending (lesson over, still in time). Needs the mod_attendance_* functions in the token's service.

students_at_riskA

One list per student across every course that matches: absences at or over the limit, assignments past their due date and not handed in, and failing marks (below the pass mark, on assignments and on gradebook items such as Final). A student with trouble in two or more courses, or of two kinds, ranks first. Each source says whether it could be read: a lecturer's token usually cannot read the gradebook, and attendance needs the mod_attendance_* functions.

Prompts

Interactive templates invoked by user choice

NameDescription
orario_settimanaLe lezioni della settimana con aule, docenti e studenti; conflitti; messaggio WhatsApp; pagina da aprire
carica_votiControlla la cartella di Excel dei professori e prepara i file da importare su Moodle
controllo_presenzeAssenze della settimana per ogni corso, registri non compilati, studenti che hanno raggiunto una soglia
registri_in_ritardoDocenti che non hanno fatto l'appello su Moodle entro 24 ore dalla lezione, con bozza di sollecito
studenti_a_rischioStudenti in difficoltà su più corsi: assenze, consegne mancanti, voti insufficienti

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.4/5.0

Scored across 22 tools

Disambiguation5/5

Each tool targets a distinct resource or action: attendance sessions, attendance reports, late registers, and marking are clearly separated; the grade-import tools (check/csv/verify) are also distinct. Even the most similar tools, submissions and submission_status, are disambiguated by their descriptions.

Naming Consistency3/5

All names use lowercase snake_case and are readable, but the convention is mixed: many read tools are bare nouns (students, assignments, announcements), while others use verb_noun (mark_attendance, list_functions) or noun_verb (grades_check, grades_verify). There is no consistent verb-first pattern across the set.

Tool Count3/5

At 22 tools, the set sits in the 'borderline heavy' range. Each tool appears purposeful and none feel redundant, but the count is high enough that an agent will need to navigate a large surface for what is mostly attendance, grading, and reporting workflows.

Completeness4/5

The core teacher workflows are well covered: attendance tracking and marking, assignment submissions and grading, grade-file import verification, announcements, and student risk summaries. Minor gaps exist—for example, no bulk attendance-taking tool or assignment creation/update—but they do not break the main intended workflows.

Maintenance

ActivityMaintained
ResponsivenessNo issues