Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
MOODLE_URLNoThe URL of your Moodle site. Defaults to https://uv.ulb.ac.be (ULB).https://uv.ulb.ac.be
MOODLE_TOKENNoYour Moodle token. Can be provided via this environment variable instead of storing it in ~/.config/moodle-mcp/config.json.

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": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_coursesA

List the courses the user is enrolled in (id, code, name). Past courses are hidden unless include_past.

get_course_outlineA

Sections, activities, links and files of a course, with the file refs used by read_file/download_files.

Modules with many files are truncated; pass module_id to list every file of one module.
get_deadlinesC

Upcoming deadlines and actions to do (assignments, quizzes...), including overdue ones from the last 2 weeks.

get_announcementsA

Recent forum discussions (announcements and other course forums), newest first, with attachment refs.

Messages are shortened; use read_discussion for a full thread.
read_discussionB

Every post of a forum discussion (ids come from get_announcements).

check_updatesA

What is new, changed or removed on Moodle since the courses were last marked as seen.

The first call for a course records a baseline (everything currently there counts as seen).

mark_updates_seenA

Record the current Moodle content as seen, so check_updates stops reporting it. Only touches local state.

read_fileA

Text content of a course file (PDF, Word, PowerPoint, HTML, code, plain text).

`file` is a ref from get_course_outline/get_announcements (or a Moodle pluginfile URL).
`pages` selects PDF pages or PowerPoint slides, e.g. "1-5" or "2,7-9".
download_filesA

Download course files into a local folder. Existing files are never overwritten.

- files: refs from get_course_outline / get_announcements / check_updates (or Moodle pluginfile URLs).
- dest_dir: absolute local folder (or ~/...), created if needed.
- save_as: optional {ref: "relative/path/name.pdf"} to choose where each file goes inside dest_dir;
  by default a file keeps its Moodle name (and its sub-folder, for files inside folder modules).
- on_conflict: "skip" (default) leaves an existing file alone; "rename" saves the new one as "name (2).ext".
mirror_courseA

Download every file of a course into dest_dir, mirroring Moodle's structure. Never overwrites.

Layout: `<NN section>/<file>` for single-file resources, `<NN section>/<activity>/<file>` otherwise
(folders, multi-file resources, assignment statements), `Forum: <name>/<discussion>/` for attachments.
Use dry_run=True first on large courses to see what would be downloaded and how much.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.7/5.0

Scored across 10 tools

Disambiguation4/5

Tools are mostly distinct, but get_announcements and check_updates both surface new course content, and download_files and mirror_course both download files; descriptions clarify boundaries, but an agent could occasionally misselect.

Naming Consistency5/5

All tool names use a consistent snake_case verb_noun pattern (get_, list_, read_, check_, mark_, download_, mirror_), making the set predictable and easy to scan.

Tool Count5/5

10 tools is well-scoped for a Moodle course-access client, with no redundant or trivial tools; each covers a distinct capability.

Completeness4/5

The surface covers core read workflows (courses, outline, deadlines, announcements, discussions, files, updates, mirroring), but lacks search, grades, or assignment interaction, which are minor gaps for a read-only client.

Maintenance

ActivityMaintained
ResponsivenessNo issues