Enables interaction with the Moodle platform to manage courses, students, assignments, and quizzes. Provides tools for retrieving student lists, managing assignments with feedback, and handling quiz attempts and feedback.
Runs as a Node.js application, requiring v14 or higher for proper functionality when interacting with Moodle's API.
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 courseDisplays ID, name, email, and last access time for each student
Assignment Management Tools
get_assignments
- Retrieves all available assignments in the courseIncludes information such as ID, name, description, due date, and maximum grade
get_student_submissions
- Examines a student's submissions for a specific assignmentRequires the assignment ID and optionally the student ID
provide_assignment_feedback
- Provides grades and comments for a student's submissionRequires student ID, assignment ID, grade, and feedback comment
Quiz Management Tools
get_quizzes
- Retrieves all available quizzes in the courseIncludes information such as ID, name, description, opening/closing dates, and maximum grade
get_quiz_attempts
- Examines a student's attempts on a specific quizRequires the quiz ID and optionally the student ID
provide_quiz_feedback
- Provides comments for a quiz attemptRequires 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:
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 tokenEnsure the MCP server only has access to the courses it needs to manage
Use a token with the minimum necessary permissions
License
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Tools
An MCP server that enables LLMs to interact with the Moodle platform to manage courses, students, assignments, and quizzes.
Related MCP Servers
- AsecurityAlicenseAqualityAn MCP server that provides LLMs access to other LLMsLast updated -1667MIT License
- -securityAlicense-qualityAn MCP server that connects any MCP client (like Claude or Cursor) with the browser using browser-use, allowing clients to utilize existing LLMs without requiring additional API keys.Last updated -74Apache 2.0
- -securityAlicense-qualityAn MCP server that provides tools to load and fetch documentation from any llms.txt source, giving users full control over context retrieval for LLMs in IDE agents and applications.Last updated -752MIT License
- AsecurityAlicenseAqualityAn MCP server that enables LLMs to interact with Moodle platforms to manage courses, students, assignments, and quizzes through natural language commands.Last updated -718MIT License