Streamlines Moodle educational workflows by providing automated tools for retrieving student information, managing assig...
Created byApr 23, 2025
Moodle MCP Server
An MCP (Model Context Protocol) server that enables LLMs to interact with the Moodle platform to manage courses, students, assignments, and quizzes.
Features
Student Management Tools
`list_students` - Retrieves the list of students enrolled in the course
- Displays ID, name, email, and last access time for each student
Assignment Management Tools
`get_assignments` - Retrieves all available assignments in the course
- Includes information such as ID, name, description, due date, and maximum grade
`get_student_submissions` - Examines a student's submissions for a specific assignment
- Requires the assignment ID and optionally the student ID
`provide_assignment_feedback` - Provides grades and comments for a student's submission
- Requires student ID, assignment ID, grade, and feedback comment
Quiz Management Tools
`get_quizzes` - Retrieves all available quizzes in the course
- Includes information such as ID, name, description, opening/closing dates, and maximum grade
`get_quiz_attempts` - Examines a student's attempts on a specific quiz
- Requires the quiz ID and optionally the student ID
`provide_quiz_feedback` - Provides comments for a quiz attempt
- Requires the attempt ID and feedback comment
Requirements
Node.js (v14 or higher)
Moodle API token with appropriate permissions
Moodle course ID
Installation
Clone this repository:
Install dependencies:
Create a `.env` file with the following configuration:
Build the server:
Usage with Claude
To use with Claude Desktop, add the server configuration:
On MacOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
On Windows: `%APPDATA%/Claude/claude_desktop_config.json`
For Windows users, the paths would use backslashes:
Once configured, Claude will be able to interact with your Moodle course to:
View the list of students and their submissions
Provide comments and grades for assignments
Examine quiz attempts and offer feedback
Development
For development with auto-rebuild:
Debugging
MCP servers communicate through stdio, which can make debugging challenging. We recommend using the [MCP Inspector](https://github.com/modelcontextprotocol/inspector):
The Inspector will provide a URL to access debugging tools in your browser.
Obtaining a Moodle API Token
Log in to your Moodle site as an administrator
Go to Site Administration > Plugins > Web Services > Manage tokens
Create a new token with the necessary permissions to manage courses
Copy the generated token and add it to your `.env` file
Security
Never share your `.env` file or Moodle API token
Ensure the MCP server only has access to the courses it needs to manage
Use a token with the minimum necessary permissions