A Model Context Protocol (MCP) server implementation that provides capabilities to interact with Moodle LMS.
Project description
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
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.0.tar.gz.
File metadata
- Download URL: moodle_mcp-0.2.0.tar.gz
- Upload date:
- Size: 23.2 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 |
0bea4c3c0f9336c3ab3ac533ebbcf05c304e5382d44d9addb2cde88a595b6076
|
|
| MD5 |
b5b2145ab6016b6cb348f1e0020b2fd8
|
|
| BLAKE2b-256 |
05d4145f53ec178d43d3269019b23a4fabc8b68e47460b29b7cba7b45923b8a3
|
File details
Details for the file moodle_mcp-0.2.0-py3-none-any.whl.
File metadata
- Download URL: moodle_mcp-0.2.0-py3-none-any.whl
- Upload date:
- Size: 23.4 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 |
ef411f787cefd9c27569a66a833bbeabed7507b84c3dbf1ec913c50dad22385c
|
|
| MD5 |
24f30408c847ff1067b06c075189da9f
|
|
| BLAKE2b-256 |
6abdab1d6202e8d752c8eae65148d35bed8710ed29f755f3be331f4f3058f2c1
|