Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
MOODLE_URLNoYour school's Moodle base URL (e.g. https://moodle.yourschool.edu). Defaults to moodle.trincoll.edu. Can be used in place of `moodle auth --url`.https://moodle.trincoll.edu
MOODLE_TOKENNoYour Moodle personal token from the Moodle mobile web service. Can be used in place of running `moodle auth`, which otherwise saves the token to ~/.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
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
moodle_whoamiA

Check the connection: site name, Moodle version, and the logged-in user.

moodle_coursesA

List enrolled courses with their ids. which: inprogress (default) | future | past | all.

moodle_course_contentsB

Every section of a course with its activities/resources (cmid, type, name, dates, files, links) and the section text (where teachers often put weekly readings and 'for next class' notes).

moodle_searchB

Find activities, files and section text mentioning query across current courses (or the given ones).

moodle_deadlinesA

Unfinished assignment/quiz deadlines from the Moodle timeline. days_back > 0 also returns overdue items. Dates here can lag edits teachers make; confirm critical ones with moodle_assignment.

moodle_assignmentsB

All assignments in current courses (or the given ones), sorted by due date, with submission status (new/draft/submitted/nosubmission) and grade when include_status is true.

moodle_assignmentA

One assignment in full: instructions, attachment files, dates, time remaining, accepted submission types, what's already submitted, grade and feedback. Pass assign_id or cmid.

moodle_gradesA

Grade items for one course (grade, max, %, weight, feedback). Without course_id: course totals for all courses.

moodle_readA

Open any activity/resource by cmid and return its readable content: page text, file list for resources/folders, link target for URLs, assignment detail, forum discussions, quiz dates/attempts.

moodle_file_textA

Text of a Moodle file (PDF, DOCX, PPTX, XLSX strings, HTML, plain text) from a fileurl returned by another tool. Long files come back in slices: call again with offset to continue.

moodle_downloadB

Save a Moodle file to disk (default ~/Downloads/Moodle) and return the local path.

moodle_announcementsB

Latest posts in each course's Announcements forum, newest first.

moodle_discussionA

All posts in one forum discussion (ids come from moodle_announcements / moodle_read on a forum).

moodle_notificationsC

The bell-icon notifications: new grades, feedback, forum posts, due-date reminders.

moodle_submit_assignmentA

Save the user's submission for an assignment: online text (HTML) and/or local files. This REPLACES the current submission's text/files. Leaves it as a draft unless submit_for_grading=true, which finalises it (and accepts the submission statement). Only call after the user has approved the exact content.

moodle_functionsA

Names of the Moodle web-service functions this token can call (filter with match, e.g. 'calendar'). Use it to find a function for moodle_call when no dedicated tool fits.

moodle_callA

Escape hatch: call any Moodle web-service function the token allows, e.g. wsfunction='mod_quiz_get_quizzes_by_courses', params={'courseids': [123]}. Nested params are fine. Treat any function that writes (save/submit/update/delete/send) like a submission: confirm first.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.4/5.0

Scored across 17 tools

Disambiguation3/5

Most tools target distinct resources, but moodle_read is a broad catch-all that overlaps with moodle_assignment, moodle_course_contents, moodle_discussion, and moodle_file_text. The three deadline/assignment tools (moodle_assignment, moodle_assignments, moodle_deadlines) also share territory, though descriptions mostly disambiguate them.

Naming Consistency4/5

All tools share a clean moodle_ prefix and snake_case, which makes them easy to scan. There is a minor mix of noun phrases (moodle_courses, moodle_grades) and verbs (moodle_read, moodle_search, moodle_submit_assignment), but the pattern stays predictable.

Tool Count4/5

17 tools is slightly heavy but justified for an LMS surface spanning courses, assignments, grades, files, forums, and notifications. Each tool covers a meaningful slice of the domain rather than redundant trivia.

Completeness4/5

Read/lifecycle coverage is strong (courses, contents, assignments, grades, files, forums, announcements, notifications) plus submission. Write operations beyond submit are thin, but moodle_functions and moodle_call provide an escape hatch for any missing web-service function.

Maintenance

ActivityMaintained
ResponsivenessNo issues