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
| 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
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
moodle_mcp-0.2.1.tar.gz
(23.6 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file moodle_mcp-0.2.1.tar.gz.
File metadata
- Download URL: moodle_mcp-0.2.1.tar.gz
- Upload date:
- Size: 23.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.11.24 {"installer":{"name":"uv","version":"0.11.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c40943f240e7ca8875bbfed03dc809b99e12c8c6809a8575e57c681493b8a412
|
|
| MD5 |
fef9848018c579a6532f703643bb00c6
|
|
| BLAKE2b-256 |
c6289fc565d1a791a407b7d0e0d6020d55f57b1b4be63392aaddb85b9621de78
|
File details
Details for the file moodle_mcp-0.2.1-py3-none-any.whl.
File metadata
- Download URL: moodle_mcp-0.2.1-py3-none-any.whl
- Upload date:
- Size: 23.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.11.24 {"installer":{"name":"uv","version":"0.11.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f1c7d8908040ffae6f75c69e1e7d3abf1e350772026a5ae77b819e5547335f6a
|
|
| MD5 |
e25a17f31525efe7ab24437816b28c62
|
|
| BLAKE2b-256 |
0b613887b8225a57232a4bb4096f93a8914f18c8b5d0ef0e8d4347175f95bb65
|