A Moodle MCP server for interacting with Moodle LMS via AI assistants
Moodler MCP has solid naming conventions (verb_noun pattern, clear action verbs) and comprehensive descriptions for most tools. However, schema documentation is incomplete, input schemas are visible but output schemas are not documented in the provided code. Parameter descriptions are present but some lack detail on constraints and formats. Error handling exists but recovery guidance is minimal. The server demonstrates good composition (single-responsibility tools) and proper parameter typing, placing it in the 'Fair' range with noticeable gaps.
Clear cached Moodle data. Use this when you know cached data is stale — for example, after a new assignment has been posted, grades were just released, or course enrollments changed.
Your submission status, grade and teacher feedback for one assignment.
Teacher view: participants of an assignment with submission flags.
Every calendar event in a month across your courses, including non-deadline events such as lectures and exams.
Upcoming calendar events, optionally for one course (course_id 1 means all).
Which activities you have completed in a course, and whether the course is complete.
Output schemas not documented. Tools return data but LLMs cannot see expected response structure, field names, or types. This forces LLMs to guess at downstream field availability and risks failed tool chaining.
Parameter constraints not fully specified. 'limit' in get_upcoming_deadlines states 'max 50' but no minimum or default. 'year' and 'month' in get_calendar lack validation ranges. LLMs may pass invalid values (month=13, year=999).
Error handling lacks recovery guidance. Tools report 'not signed in' but descriptions do not consistently explain what the LLM should do next (call login_to_moodle). Recovery paths are implicit, not explicit.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | 2025-06-18+ | v2 |
Assignment, quiz and other action deadlines for one course.
Teacher view: submission and grading counts for an assignment.
Teacher view: one row per participant with submission status and grade.
Upcoming deadlines across all your courses, soonest first.
Sign in to Moodle once. Opens a browser window for single sign-on, then stores a web service token locally so every other tool works without a browser. Call this only when another tool reports that you are not signed in, or when the user asks to sign in again. Takes up to three minutes while the user completes SSO.
Pagination not visible in schema. Tools like get_upcoming_deadlines accept 'limit' but no offset/cursor or total_count documented. Large result sets may exceed context window without pagination support.
Tool annotations (readOnlyHint, destructiveHint, idempotentHint) not present. LLMs cannot infer which tools are safe to retry or which modify state without reading descriptions carefully.