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 |
Capabilities
Features and capabilities supported by this server
| 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 | |
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/loyaniu/moodle-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server