# Moodle MCP

> The Moodle MCP connects your learning management system to any AI client, letting you manage courses and student data using natural conversation. You can list all available course content, track user progress, enroll students into classes, retrieve specific grades, or even create entirely new user accounts—all without logging into the Moodle dashboard.

## Overview
- **Category:** productivity
- **Price:** Free
- **Tags:** e-learning, course-management, student-tracking, lms, academic-administration, grade-management

## Description

This connector links your Moodle learning platform directly to your AI agent, letting you manage everything from class structure to student performance using plain language. You can ask your client to list all current courses and then immediately pull details about who's enrolled in each one or find specific files attached to a module. Need to add new students? Your agent handles the creation of user profiles and enrolling them into multiple classes instantly. If you need an audit, you can retrieve grade items for any student in any course, giving you a full picture of their academic standing. Everything runs through Vinkius, making this MCP one place for all your learning platform needs. You'll manage everything—from browsing organizational categories to listing assignments and viewing site metadata—all without leaving the chat window.

## Tools

### create_courses
Builds a new course structure using required names and category IDs.

### create_users
Establishes brand-new learner accounts with full credentials.

### enrol_users
Adds existing users to a specific course roster.

### get_course_contents
Retrieves all modules and sections within an established course.

### get_enrolled_users
Lists every user currently registered in a particular class.

### get_site_info
Pulls general metadata about the entire Moodle site instance.

### get_user_grades
Fetches a detailed list of academic grades for one user in one course.

### list_assignments
Retrieves details on all upcoming and past assignments for courses.

### list_categories
Displays the organizational structure of course categories available on the site.

### list_courses
Lists every active course available across the entire platform.

### list_files
Finds and lists specific files attached to designated areas or modules.

### list_users
Searches for and returns details on existing user accounts using criteria like email or username.

## Prompt Examples

**Prompt:** 
```
List all courses and show enrolment counts.
```

**Response:** 
```
Courses: 5. 1) 'Introduction to Python' (ID: 2, 45 enrolled). 2) 'Data Science Fundamentals' (ID: 3, 32 enrolled). 3) 'Web Development' (ID: 4, 28 enrolled). 4) 'Machine Learning' (ID: 5, 18 enrolled). 5) 'Database Design' (ID: 6, 52 enrolled). Total students: 175.
```

**Prompt:** 
```
Get grades for student ID 42 in the Python course.
```

**Response:** 
```
Grades for Student #42 in 'Introduction to Python' (Course ID: 2): 1) Quiz 1: 85/100. 2) Assignment 1: 92/100. 3) Midterm Exam: 78/100. 4) Final Project: 95/100. Course Total: 87.5%. Status: Passing.
```

**Prompt:** 
```
Create a new course 'AI Ethics' in category 1 and enrol 3 students.
```

**Response:** 
```
Course created! ✅ 'AI Ethics' (ID: 7, Category: General). Shortname: ai_ethics_2024. Now enrolling... ✅ 3 students enrolled with role 'Student' (Role ID: 5). All set!
```

## Capabilities

### Create New Courses
The system builds and publishes a brand-new course structure on your Moodle instance.

### Manage User Profiles
You can create new student accounts or search for existing learner profiles by username, email, or name.

### Handle Student Enrollment
The MCP enrolls specific users into courses, updating their status on the learning platform.

### Review Course Content and Files
You can view the full contents of any course or list all associated files across the site's modules.

### Track Student Grades
The tool pulls detailed grade items and final results for a specific student within a given course.

## Use Cases

### Auditing student failure rates
An admin needs to know which students failed a specific quiz across multiple courses. The agent first calls list_courses, then loops through the results calling get_user_grades for each course until it compiles a master list of underperforming users.

### Setting up a new departmental track
A Curriculum Developer needs to launch a brand-new program. They ask the agent to create_courses, defining the full structure in one go, and then use create_users to onboard the first cohort of students.

### Preparing for accreditation review
An administrator needs proof of all current student enrollments. They ask the agent to list_courses, and for each course found, call get_enrolled_users to generate a definitive, comprehensive roster count.

### Reviewing module updates
An instructor finds an outdated lesson plan. The agent uses list_assignments to see what's due next and then calls list_files to confirm if the necessary readings or templates have been attached to the correct course.

## Benefits

- Instant student tracking: Instead of navigating to the grade book for every class, simply ask your agent to get_user_grades for a specific user, pulling their entire academic record in one go.
- Rapid course setup: Use create_courses to build an entirely new curriculum structure and list_categories to organize it immediately, eliminating manual folder creation.
- Comprehensive roster management: Quickly find who's taking what by listing all available courses, then using get_enrolled_users to pull the current class list for any single course.
- Simplified user onboarding: Instead of manually adding users and checking permissions, simply use create_users and enrol_users in a sequence of commands.
- Full content visibility: Need a file? Use list_files. If you're reviewing modules, get_course_contents shows the entire structure without clicking through dozens of tabs.

## How It Works

The bottom line is that you talk to your agent like you talk to a coworker, and it does the work inside Moodle for you.

1. Subscribe to the Moodle MCP, providing your site's URL and API token.
2. Select this MCP in your AI client (Claude, Cursor, etc.)
3. Ask your agent a natural language request—like 'Show me all students who failed Quiz 1 in Math'—and it executes the necessary actions.

## Frequently Asked Questions

**How do I check a student’s grades using the Moodle MCP?**
You use the get_user_grades tool. Simply tell your agent which user and which course you are interested in, and it pulls all their recorded assignments and final scores into one summary.

**Can I create an entire new course with Moodle MCP?**
Yes, the create_courses tool lets you publish a brand-new learning module. You just need to provide the required full name, short name, and parent category ID.

**Does the Moodle MCP let me find specific files?**
Absolutely. If you know where a file should be, use list_files. It scans designated areas of the site to retrieve the necessary attachments for your lesson plan.

**What if I need to add ten new students quickly with Moodle MCP?**
You can run create_users multiple times or specify a list of users, followed by enrol_users to enroll them all into the target course roster in sequence.

**Does this MCP show me which courses are available?**
Yes. You can use list_courses to see every single active class on the platform, helping you confirm what content is already live before building anything new.