# Moodle MCP

> Moodle MCP connects your Learning Management System data directly to your AI agent. Instantly list courses, check student grades, track completion status, and send messages—all without logging into the Moodle interface. It gives you immediate access to all user enrollment and course content details.

## Overview
- **Category:** learning-training
- **Price:** Free
- **Tags:** course-management, student-enrollment, lms, educational-technology, academic-administration

## Description

Managing an LMS usually means clicking through endless menus just to get a simple report. This MCP lets your AI agent talk directly to your Moodle account. You can ask it things like, 'Who is enrolled in the advanced math course?' or 'What were John Doe's grades on the last quiz?' It pulls that data instantly by understanding natural language commands. Whether you need to see a list of courses available or check detailed gradebook records for a specific user, your agent handles the complexity. The entire Vinkius catalog makes connecting this data straightforward, so you get actionable insights right where you're working—in your chat client or IDE. You manage everything from course structures and grades to group assignments using nothing but plain talk.

## Tools

### get_course_assignments
Lists all assignments that are available within a specific course.

### get_course_completion
Determines if an individual user has finished the required modules for a given course.

### get_course_groups
Shows all defined user groups that are attached to a particular class.

### get_courses
Retrieves a list of every course available on the Moodle site.

### get_enrolled_users
Lists all users who are currently registered in a specific course or class.

### get_course_grades
Retrieves detailed grade records and scores for students within a specified course.

### get_course_quizzes
Gets a list of all quizzes created or attached to any module.

### get_users
Searches for Moodle users using basic search criteria like name or ID.

### get_course_workshops
Lists all workshop activities that are part of a specific course structure.

### send_message
Sends an instant, private message directly to another Moodle user ID.

## Prompt Examples

**Prompt:** 
```
List all my available Moodle courses.
```

**Response:** 
```
I've retrieved your courses. You have access to 3 courses: 'Introduction to Computer Science', 'Advanced Mathematics', and 'World History'. Would you like to see the list of students enrolled in 'Introduction to Computer Science'?
```

**Prompt:** 
```
What are the grades for students in course ID 5?
```

**Response:** 
```
Retrieving gradebook for course 5... I've found 12 students. Top performers include 'Alice Smith' (95%), 'Bob Jones' (88%), and 'Charlie Brown' (92%). Would you like the full breakdown for any specific student?
```

**Prompt:** 
```
Check if user 'John Doe' (ID: 123) has finished the 'Cybersecurity' course (ID: 8).
```

**Response:** 
```
I've checked the completion status for John Doe in course 8. His progress is currently at 85%. He has completed all video lectures but still needs to submit the final project. Shall I send him a reminder message?
```

## Capabilities

### List all available courses
Retrieves the names and details of every course currently set up in Moodle.

### Manage user rosters
Searches for specific users or lists everyone enrolled within a given class.

### Track academic performance
Pulls detailed gradebook data and checks the completion percentage for individual students on courses.

### Review assignments and quizzes
Gets lists of all quizzes, assignments, and workshops attached to any course.

### Communicate with users
Sends instant messages directly to any Moodle user ID from your chat interface.

## Use Cases

### The End-of-Semester Grade Check
An academic analyst needs to compile a report on final grades. Instead of running five separate reports and cross-referencing them, they ask the agent for `get_course_grades` for all students in 'Advanced Mathematics'. The MCP pulls the structured data instantly, saving hours of manual compilation.

### Checking Student Status Before Meeting
A teacher is meeting with a student and needs to know if they finished the course. They ask their agent to run `get_course_completion` for that user in 'Cybersecurity'. The MCP returns the progress status (e.g., 85% complete), allowing the teacher to prepare specific talking points immediately.

### Roster Management
An LMS administrator needs a current list of all active users in a large cohort. They use `get_enrolled_users` to pull an accurate, up-to-date roster for the specific course ID without needing to navigate through user roles or group structures.

### Targeted Communication
An instructor notices a student needs help with final assignments. They ask their agent to `get_course_assignments` and then use `send_message` immediately afterward, sending targeted instructions about the missing project without having to switch applications.

## Benefits

- Stop manually navigating course menus. You can instantly get a list of all courses available using `get_courses`, so you know exactly where to look next.
- Get full visibility into who's in class. Instead of exporting CSV rosters, simply ask your agent and use `get_enrolled_users` to see the current student body.
- Analyze performance data on demand. The `get_course_grades` tool lets you check specific student scores or pull detailed gradebook information without opening a single tab.
- Know who's falling behind. Use `get_course_completion` to quickly verify if a user has finished all required modules, saving time compared to manually checking status reports.
- Keep communication flowing. You can send direct messages using `send_message`, making it easy to follow up with students right from your chat window.

## How It Works

The bottom line is that you treat your Moodle platform like an extension of your chat window.

1. Subscribe to the Moodle MCP and provide your site's Web Service Token and Base URL.
2. Connect this MCP to your preferred AI client, like Cursor or Claude.
3. Ask your agent a question about your LMS data (e.g., 'What are the grades for Course X?').

## Frequently Asked Questions

**Can I use Moodle MCP to list my available courses?**
Yes, you can. Use the `get_courses` tool name in your prompt. This instantly provides a list of all courses set up on your site.

**How do I find out if a student finished their course using Moodle MCP?**
You use the `get_course_completion` tool. Just provide the user ID and the Course ID, and the agent tells you the exact completion status.

**Does Moodle MCP let me send messages to students?**
Yes, it does. The `send_message` tool lets your agent instantly send a private chat message to any specified user ID within Moodle.

**What if I need grades for many courses at once with Moodle MCP?**
You'll need to run the `get_course_grades` tool repeatedly, specifying different Course IDs each time. The agent helps manage this sequence of requests.

**Can I find a user by name using Moodle MCP?**
Yes. Use the `get_users` tool and provide search criteria like names or partial ID numbers to locate any Moodle account.