mcpField
M
Moodle-MCP

Moodle-MCP

Local
github.com/loyaniuScience & Education52Updated 17w ago

About Moodle-MCP

Moodle-MCP is an MCP server that reads course, assignment, grade and deadline data from Moodle LMS through its web service API. It is aimed at students who want to check their study status from an AI assistant. It offers both single-item queries and aggregated overviews.

Key features

  1. 01Course listing, content and announcement retrieval
  2. 02Assignment status and upcoming deadline queries
  3. 03Grade overview and course progress tracking
  4. 04Weekly study load analysis
  5. 05Natural language questions routed to data sources

Use cases

  1. 01Asking an AI assistant which assignments are overdue
  2. 02Generating daily or weekly study briefings
  3. 03Searching course materials relevant to an assignment

MCP support

This project is an MCP server that exposes course, assignment, grade and summary query tools to MCP clients.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"moodle": {
"command": "uvx",
"args": [
"moodle-mcp"
],
"env": {
"MOODLE_URL": "<MOODLE_URL>",
"MOODLE_TOKEN": "<MOODLE_TOKEN>"
}
}
}
}
Run commanduvx moodle-mcp
Environment variables to set
MOODLE_URL
MOODLE_TOKENSecret

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
pypimoodle-mcp

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

MseeP.ai Security Assessment Badge

Moodle-MCP

A Model Context Protocol (MCP) server implementation that provides capabilities to interact with Moodle LMS.

Features

The server exposes the following tools.

Courses & content
ToolDescription
get_my_coursesGet all courses the current user is enrolled in
get_course_contentGet sections and modules for a specific course by its ID
search_course_materialsSearch across all course materials by query string
get_course_announcementsGet announcements from course news forums, optionally filtered by course ID
get_recent_activityGet recent activity and updates across courses since a given time
Assignments & deadlines
ToolDescription
get_assignmentsGet assignments for courses, optionally filtered by course IDs
get_assignment_statusGet submission and grading status for a specific assignment
get_upcoming_deadlinesGet upcoming assignment deadlines across all courses, sorted by due date
get_overdue_assignmentsGet unsubmitted assignments past their due date, most overdue first
get_actionable_tasksGet a prioritized list of tasks needing action, sorted by urgency
analyze_assignmentAnalyze an assignment: status, requirements, materials, progress, deadline
extract_assignment_requirementsExtract requirements, deliverables, constraints, and evaluation criteria from an assignment
find_relevant_materialsFind course content relevant to an assignment, ranked by relevance
decompose_taskBreak an assignment into subtasks with effort, dependencies, and critical path
create_implementation_planBuild a step-by-step plan with timeline, resources, milestones, and risks
Grades & progress
ToolDescription
get_gradesGet a grade overview for all courses, or detailed grades for one course
get_course_progressGet progress and completion for one course or all courses
get_course_healthHealth check for a course: progress, grades, unsubmitted and overdue counts
get_study_loadAnalyze assignment distribution by week to identify heavy weeks
Aggregated overviews
ToolDescription
get_upcoming_eventsGet upcoming events from Moodle
semester_dashboardCombined overview of courses, upcoming deadlines, and grades
daily_briefingDaily summary of overdue count, today's deadlines, recent grades, events, and tasks
weekly_reviewWeekly summary of submitted/graded counts, deadlines, overdue count, and progress
ask_moodleAsk a natural language question and have it routed to the right data sources

API Reference

For available Moodle API functions, please refer to the official documentation.

Setup Instructions

Method 1: Using mcp CLI (recommended)
  1. Create your own .env file from .env.example
  2. Assume you have uv installed, run uv add "mcp[cli]" to install the MCP CLI tools
  3. Run mcp install main.py -f .env to add the moodle-mcp server to Claude app
Method 2: Using uvx

Go to Claude > Settings > Developer > Edit Config > claude_desktop_config.json to include the following

{
  "mcpServers": {
    "moodle-mcp": {
      "command": "uvx",
      "args": ["moodle-mcp"],
      "env": {
        "MOODLE_URL": "https://{your-moodle-url}/webservice/rest/server.php",
        "MOODLE_TOKEN": "{your-moodle-token}"
      }
    }
  }
}

Authentication

Getting your Moodle token
  1. Navigate to your Moodle token management page https://{your-moodle-url}/user/managetoken.php
  2. Use the token with Moodle mobile web service in the Service column
  3. Add this token to your .env file

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.