A Model Context Protocol (MCP) server implementation that provides capabilities to interact with Moodle LMS
概要
A Model Context Protocol (MCP) server implementation that provides capabilities to interact with Moodle LMS. For available Moodle API functions, please refer to the official documentation. 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 Go to Claude > Settings > Developer > Edit Config > claude_desktop_config.json to include the following 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
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
インストール
uvx moodle-mcp設定
{
"mcpServers": {
"moodle-mcp": {
"command": "uvx",
"args": ["moodle-mcp"],
"env": {
"MOODLE_URL": "https://{your-moodle-url}/webservice/rest/server.php",
"MOODLE_TOKEN": "{your-moodle-token}"
}
}
}
}
