Fire in da houseTop Tip:Paying $100+ per month for Perplexity, MidJourney, Runway, ChatGPT and other tools is crazy - get all your AI tools in one site starting at $15 per month with Galaxy AI Fire in da houseCheck it out free

moodle-mcp-server

MCP.Pizza Chef: peancor

The Moodle MCP server is an integration that allows large language models to interact directly with the Moodle learning platform. It provides structured access to manage courses, retrieve and update student information, handle assignments including submissions and feedback, and manage quizzes. This server enables real-time, automated educational workflows by exposing Moodle data and actions through the Model Context Protocol.

Use This MCP server To

Retrieve and list students enrolled in a Moodle course Fetch all assignments with details like due dates and grades Access student submissions for specific assignments Provide grades and feedback on student assignments Retrieve quizzes and their metadata from Moodle courses Automate course management tasks via LLM interactions

README

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

  1. Clone this repository:
git clone https://github.com/your-username/moodle-mcp-server.git
cd moodle-mcp-server
  1. Install dependencies:
npm install
  1. Create a .env file with the following configuration:
MOODLE_API_URL=https://your-moodle.com/webservice/rest/server.php
MOODLE_API_TOKEN=your_api_token
MOODLE_COURSE_ID=1  # Replace with your course ID
  1. Build the server:
npm run build

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

{
  "mcpServers": {
    "moodle-mcp-server": {
      "command": "/path/to/node",
      "args": [
        "/path/to/moodle-mcp-server/build/index.js"
      ],
      "env": {
        "MOODLE_API_URL": "https://your-moodle.com/webservice/rest/server.php",
        "MOODLE_API_TOKEN": "your_moodle_api_token",
        "MOODLE_COURSE_ID": "your_course_id"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

For Windows users, the paths would use backslashes:

{
  "mcpServers": {
    "moodle-mcp-server": {
      "command": "C:\\path\\to\\node.exe",
      "args": [
        "C:\\path\\to\\moodle-mcp-server\\build\\index.js"
      ],
      "env": {
        "MOODLE_API_URL": "https://your-moodle.com/webservice/rest/server.php",
        "MOODLE_API_TOKEN": "your_moodle_api_token",
        "MOODLE_COURSE_ID": "your_course_id"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

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:

npm run watch

Debugging

MCP servers communicate through stdio, which can make debugging challenging. We recommend using the MCP Inspector:

npm run inspector

The Inspector will provide a URL to access debugging tools in your browser.

Obtaining a Moodle API Token

  1. Log in to your Moodle site as an administrator
  2. Go to Site Administration > Plugins > Web Services > Manage tokens
  3. Create a new token with the necessary permissions to manage courses
  4. 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

License

MIT

moodle-mcp-server FAQ

How does the Moodle MCP server connect to the Moodle platform?
It uses Moodle's APIs to securely access and manage course data, exposing it via the MCP protocol for LLMs.
Can the server handle multiple courses simultaneously?
Yes, it supports managing multiple courses by specifying course identifiers in requests.
What student information can be retrieved?
The server can list student IDs, names, emails, and last access times for enrolled students.
How does assignment feedback work through this server?
The server allows submitting grades and comments for student assignments, updating Moodle records accordingly.
Is quiz data fully accessible through this server?
Yes, it retrieves quizzes with details such as ID, name, description, and other metadata.
Does the server support real-time updates?
It provides up-to-date data by querying Moodle APIs on demand, enabling near real-time interactions.
What security measures are in place?
The server relies on Moodle's authentication and authorization mechanisms to ensure secure data access.
Can this server integrate with multiple LLM providers?
Yes, it is designed to work with any MCP-compatible LLM, including OpenAI, Claude, and Gemini.