Moodle MCP Server

Integrations

  • Enables interaction with the Moodle platform to manage courses, students, assignments, and quizzes, including viewing student lists, providing feedback on assignments, examining quiz attempts, and grading submissions.

  • Required runtime environment (v14 or higher) for executing the MCP server that connects to 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 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

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

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.

An MCP server that enables LLMs to interact with Moodle platforms to manage courses, students, assignments, and quizzes through natural language commands.

  1. Features
    1. Student Management Tools
    2. Assignment Management Tools
    3. Quiz Management Tools
  2. Requirements
    1. Installation
      1. Usage with Claude
        1. Development
          1. Debugging
        2. Obtaining a Moodle API Token
          1. Security
            1. License

              Related MCP Servers

              • -
                security
                A
                license
                -
                quality
                A server for the Machine Chat Protocol (MCP) that provides a YAML-based configuration system for LLM applications, allowing users to define resources, tools, and prompts without writing code.
                Last updated -
                5
                Python
                MIT License
              • -
                security
                F
                license
                -
                quality
                MCP server enabling LLMs to perform browser tasks via SSE transport, allowing clients like Cursor.ai and Claude to open websites and interact with web content through natural language commands.
                Last updated -
                • Apple
              • -
                security
                F
                license
                -
                quality
                An MCP server that allows Claude to interact with local LLMs running in LM Studio, providing access to list models, generate text, and use chat completions through local models.
                Last updated -
                Python
              • -
                security
                A
                license
                -
                quality
                An MCP server that helps novice developers deploy web applications through conversational interfaces, bridging the gap between LLMs and various hosting environments.
                Last updated -
                1
                Python
                MIT License
                • Apple

              View all related MCP servers

              ID: x1nxui4s5k