About Moodle MCP
Moodle MCP is an MCP server published by loyaniu in the Developer Tools category: a Model Context Protocol (MCP) server implementation that provides capabilities to interact with Moodle LMS.
The repository has 49 stars and 13 forks, with the last commit 3 months ago. Recent commit activity is the strongest signal that reported issues will get attention.
Install
git clone https://github.com/loyaniu/moodle-mcpThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Tools (5)
get_course_announcementsGet announcements from course news forums, optionally filtered by course ID
Parameters not published.
get_course_contentGet sections and modules for a specific course by its ID
Parameters not published.
get_my_coursesGet all courses the current user is enrolled in
Parameters not published.
get_recent_activityGet recent activity and updates across courses since a given time
Parameters not published.
search_course_materialsSearch across all course materials by query string
Parameters not published.
Ask AI
Ask AI about Moodle MCP
Powered by Claude · Grounded in docs
Security checks
Static checks derived from the repository 7 days ago. Heuristics on the source, not an audit.
- ✓README presentThe repository ships documentation.
- !License declaredNo license file. Legally you have no right to use it in a product.
- !Tests presentNo tests found. Behaviour changes may go unnoticed between versions.
- ✓Dependencies pinnedA lockfile pins dependency versions.
- ✓No dynamic code executionSource scan found no eval, dynamic Function, or shell execution.
- !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.
README
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
README fetched from the repository 7 days ago. The original is authoritative.
