Moodle-MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MOODLE_URL | Yes | URL to your Moodle web service endpoint (e.g., https://your-moodle-url/webservice/rest/server.php) | |
| MOODLE_TOKEN | Yes | Your Moodle API token |
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
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_upcoming_eventsB | Get upcoming events from moodle |
| get_my_coursesA | Get all courses the current user is enrolled in |
| get_course_contentA | Get sections and modules for a specific course by its ID |
| get_assignmentsA | Get assignments for courses. Optionally filter by course IDs. Returns all enrolled courses' assignments if no course IDs are provided. |
| get_assignment_statusB | Get submission and grading status for a specific assignment by its ID |
| get_upcoming_deadlinesA | Get upcoming assignment deadlines across all courses, sorted by due date |
| get_gradesA | Get grade overview for all courses, or detailed grades for a specific course if courseid is provided |
| search_course_materialsC | Search across all course materials by query string |
| semester_dashboardA | Get an aggregated overview combining courses, upcoming deadlines, and grades |
| get_actionable_tasksB | Returns prioritized list of tasks needing action, sorted by urgency (overdue first) |
| get_overdue_assignmentsA | Returns assignments past due date that are unsubmitted, sorted by most overdue first |
| get_recent_activityB | Returns recent activity/updates across courses. Optionally specify 'since' as Unix timestamp (defaults to 7 days ago) |
| get_course_announcementsA | Gets announcements from course news forums. Optionally filter by course ID |
| get_course_healthB | Overall health check for a course: progress, grades, unsubmitted/overdue counts |
| get_course_progressB | Progress/completion for courses. Optionally specify a course ID, or get all courses |
| get_study_loadB | Study load analysis showing assignment distribution by week, identifying heavy weeks |
| daily_briefingA | Aggregated daily summary: overdue count, today's deadlines, recent grades, upcoming events, actionable tasks |
| weekly_reviewB | Aggregated weekly summary: submitted/graded counts, upcoming deadlines, overdue count, progress |
| ask_moodleB | Ask a natural language question about your Moodle data. Routes to the right data sources based on your question |
| analyze_assignmentA | Comprehensive analysis of an assignment: status, requirements, materials count, course progress, and deadline info |
| extract_assignment_requirementsC | Extract and structure requirements, deliverables, constraints, and evaluation criteria from an assignment description |
| find_relevant_materialsC | Find course content and search results relevant to a specific assignment, ranked by relevance |
| decompose_taskB | Break down an assignment into subtasks with estimated effort, dependencies, and critical path |
| create_implementation_planC | Create a step-by-step implementation plan for completing an assignment, with timeline, resources, milestones, and risk factors |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 24 tools
Each tool targets a distinct aspect of Moodle interaction, such as assignments, courses, grades, deadlines, or analytics. Overlapping concepts like 'get_course_progress' and 'get_course_health' are clearly differentiated by their descriptions, with the latter including additional metrics.
All tools use snake_case and follow a verb_noun pattern (e.g., 'get_assignments', 'analyze_assignment', 'create_implementation_plan'). The naming is uniform and predictable, with no mixed conventions or vague verbs.
With 24 tools, the count is slightly above the typical 3-15 range for a well-scoped server. However, each tool serves a specific purpose in assisting with Moodle tasks, making the set reasonable for a comprehensive assistant.
The tools cover a wide range of student-facing operations: retrieving courses, assignments, grades, deadlines, materials, and providing analytical summaries. Missing are direct actions like submitting assignments or updating course content, but the server focuses on analysis and retrieval, so gaps are minor.