mcp-moodle
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MOODLE_URL | Yes | The URL of the Moodle instance | |
| MOODLE_TOKEN | Yes | The personal web service token for Moodle |
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 |
|---|---|
| site_infoA | Return Moodle site info and the authenticated user's id/username. Use this first to verify the token works. |
| list_my_coursesA | List courses the authenticated user is enrolled in. Returns id, shortname, fullname, category id, and visibility. |
| get_course_contentsA | Return sections, modules and file URLs for a course. File URLs returned in Args: course_id: numeric course id (see list_my_courses) |
| search_coursesA | Search the public course catalog by keyword. Args: query: search text page: 0-indexed page perpage: results per page (max 100) |
| list_assignmentsA | List assignments across given courses (or all enrolled if omitted). Args: course_ids: optional list of course ids; omit to use all enrolled |
| list_quizzesA | List quizzes/QCMs in given courses, or all visible quizzes if omitted. Args: course_ids: optional list of course ids |
| get_quiz_qcm_contentA | Return rendered QCM/quiz questions from the current attempt. The tool reuses the latest unfinished attempt. If no unfinished attempt
exists, it returns Args: quiz_id: quiz instance id (see list_quizzes) start_if_needed: create a new attempt only when no unfinished attempt exists preflight_data: optional Moodle preflight data, e.g. quiz password entries |
| upcoming_eventsB | Return upcoming calendar events (deadlines, sessions) for the user. Args: limit: max number of events to return |
| get_user_gradesC | Return the authenticated user's grades for a course. Args: course_id: numeric course id |
| download_fileA | Download a Moodle file (from get_course_contents) to a local path. The Moodle token is appended automatically. The target directory is created if missing. Args:
file_url: pluginfile.php URL from a module's |
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
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/Snaw80/moodle-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server