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
- 01Course listing, content and announcement retrieval
- 02Assignment status and upcoming deadline queries
- 03Grade overview and course progress tracking
- 04Weekly study load analysis
- 05Natural language questions routed to data sources
Use cases
- 01Asking an AI assistant which assignments are overdue
- 02Generating daily or weekly study briefings
- 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.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEMoodle-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
| Tool | Description |
|---|---|
get_my_courses | Get all courses the current user is enrolled in |
get_course_content | Get sections and modules for a specific course by its ID |
search_course_materials | Search across all course materials by query string |
get_course_announcements | Get announcements from course news forums, optionally filtered by course ID |
get_recent_activity | Get recent activity and updates across courses since a given time |
Assignments & deadlines
| Tool | Description |
|---|---|
get_assignments | Get assignments for courses, optionally filtered by course IDs |
get_assignment_status | Get submission and grading status for a specific assignment |
get_upcoming_deadlines | Get upcoming assignment deadlines across all courses, sorted by due date |
get_overdue_assignments | Get unsubmitted assignments past their due date, most overdue first |
get_actionable_tasks | Get a prioritized list of tasks needing action, sorted by urgency |
analyze_assignment | Analyze an assignment: status, requirements, materials, progress, deadline |
extract_assignment_requirements | Extract requirements, deliverables, constraints, and evaluation criteria from an assignment |
find_relevant_materials | Find course content relevant to an assignment, ranked by relevance |
decompose_task | Break an assignment into subtasks with effort, dependencies, and critical path |
create_implementation_plan | Build a step-by-step plan with timeline, resources, milestones, and risks |
Grades & progress
| Tool | Description |
|---|---|
get_grades | Get a grade overview for all courses, or detailed grades for one course |
get_course_progress | Get progress and completion for one course or all courses |
get_course_health | Health check for a course: progress, grades, unsubmitted and overdue counts |
get_study_load | Analyze assignment distribution by week to identify heavy weeks |
Aggregated overviews
| Tool | Description |
|---|---|
get_upcoming_events | Get upcoming events from Moodle |
semester_dashboard | Combined overview of courses, upcoming deadlines, and grades |
daily_briefing | Daily summary of overdue count, today's deadlines, recent grades, events, and tasks |
weekly_review | Weekly summary of submitted/graded counts, deadlines, overdue count, and progress |
ask_moodle | Ask 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)
- Create your own
.envfile from.env.example - Assume you have
uvinstalled, runuv add "mcp[cli]"to install the MCP CLI tools - Run
mcp install main.py -f .envto 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
- Navigate to your Moodle token management page
https://{your-moodle-url}/user/managetoken.php - Use the token with
Moodle mobile web servicein theServicecolumn - Add this token to your
.envfile
Comments
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.
