4,500+ servers built on MCP Fusion
Vinkius

Moodle MCP. Track grades and manage student rosters in chat.

Claude Claude
ChatGPT ChatGPT
Cursor Cursor
Gemini Gemini
Windsurf Windsurf
VS Code VS Code
JetBrains JetBrains
Vercel Vercel
See Vinkius in Action

Works with every AI agent you already use

…and any MCP-compatible client

Moodle MCP on Cursor AI Code Editor MCP Client Moodle MCP on Claude Desktop App MCP Integration Moodle MCP on OpenAI Agents SDK MCP Compatible Moodle MCP on Visual Studio Code MCP Extension Client Moodle MCP on GitHub Copilot AI Agent MCP Integration Moodle MCP on Google Gemini AI MCP Integration Moodle MCP on Lovable AI Development MCP Client Moodle MCP on Mistral AI Agents MCP Compatible Moodle MCP on Amazon AWS Bedrock MCP Support

Just plug in your AI agents and start using Vinkius.

Moodle MCP Server connects your AI agent directly to your Moodle Learning Management System (LMS). You get instant access to course structure, user rosters, assignment grades, and completion status without navigating the Moodle UI.

Use tools like `get_course_grades` or `get_enrolled_users` to pull detailed academic data—perfect for automated reporting, student outreach, or quick administrative checks.

What your AI agents can do

Get course assignments

Lists all assignment types available within a specific Moodle course.

Get course completion

Checks and retrieves the completion status of an individual user in a given course.

Get course grades

Retrieves detailed gradebook data for users within a specific Moodle course.

+ 7 more capabilities included
Retrieve Course Metadata

List all available courses or retrieve high-level details about course structures using get_courses.

Manage User Enrollment Lists

Search for specific users by name or ID, and list every individual enrolled in a given course via get_enrolled_users.

Gradebook and Progress Reporting

Fetch detailed grade records (get_course_grades) and check the overall completion percentage for any user using get_course_completion.

Analyze Course Content Structure

List all assignments, quizzes, workshops, and defined groups associated with a specific course ID.

Send Internal Messaging

Initiate direct, instant messages to any specified Moodle user ID from your agent's chat interface using send_message.

Supported MCP Clients

Claude Claude
ChatGPT ChatGPT
Cursor Cursor
Gemini Gemini
Windsurf Windsurf
VS Code VS Code
JetBrains JetBrains
Vercel Vercel
+ other MCP clients
Free for Subscribers

Waiting for input…

AI Agent

Moodle MCP Server: 10 Tools for Course Management

These tools let you manage everything in the Moodle LMS—from listing all available courses to sending direct messages and checking student grades.

get019d75d8

get course assignments

Lists all assignment types available within a specific Moodle course.

get019d75d8

get course completion

Checks and retrieves the completion status of an individual user in a given course.

get019d75d8

get course grades

Retrieves detailed gradebook data for users within a specific Moodle course.

get019d75d8

get course groups

Displays all user groups defined and utilized by the courses in the system.

get019d75d8

get course quizzes

Lists all quizzes and assessment tools built into a specific Moodle course.

get019d75d8

get course workshops

Retrieves information about workshop activities within the defined courses.

get019d75d8

get courses

Provides a list of all available course names and basic details across the entire Moodle site.

get019d75d8

get enrolled users

Lists every user ID and name that is currently enrolled in a specific course.

get019d75d8

get users

Searches the entire Moodle database for users by criteria like name or email address.

send019d75d8

send message

Sends a direct, private instant message to any specified user ID within Moodle.

Choose How to Get Started

Build a custom MCP for your own tools, or connect a ready-made integration from our catalog.

Build Your Own

Turn any API into an MCP. Import a spec, define Agent Skills, or deploy with MCPFusion.

  • Import from OpenAPI, Swagger, or YAML specs
  • Create Agent Skills with progressive disclosure
  • Deploy to edge with MCPFusion framework
  • Built in DLP, auth, and compliance on every call
  • Real time usage dashboard and cost metering
  • Publish to catalog or keep private
Start building

Make Your AI Do More

Start with Moodle, then connect any of our 4,700+ other servers whenever your AI needs more. One click, no limits.

  • Use this MCP plus 4,700+ others, all in one place
  • Add new capabilities to your AI anytime you want
  • Every connection is secured and compliant automatically
  • Track usage and costs across all your servers
  • Works with Claude, ChatGPT, Cursor, and more
  • New servers added to the catalog every week

What you can do with this MCP connector

Moodle MCP Server hooks your AI agent right into your Moodle Learning Management System (LMS). Forget clicking through menus and wading through pages; you get direct access to all the academic guts of your school's data. This setup gives your agent tools to read, track, and report on everything—from who took what test to who hasn't finished the reading material.

You'll use this server when you need your AI client to act like an administrator or a TA, pulling complex records instantly without ever touching the Moodle user interface.

How Moodle MCP Works

  1. 1 Subscribe to the server and provide your Moodle Web Service Token and Site Base URL.
  2. 2 Your AI client translates a conversational request (e.g., 'Check grades for course 12') into the required tool call (get_course_grades).
  3. 3 The MCP Server executes the API call, pulls the data from your LMS, and returns it to your agent in a structured format.

The bottom line is you feed your credentials once; after that, your AI client handles all the complex data mapping for you.

Who Is Moodle MCP For?

This server is essential for academic administrators and educators who spend too much time clicking through clunky LMS dashboards. If you're tired of manually compiling grade reports or checking student rosters across multiple tabs, this tool cuts out the friction.

Academic Administrator

Runs bulk checks on user profiles and course activity using get_users to ensure all departments are properly set up before a semester starts.

Department Coordinator

Pulls detailed enrollment lists (get_enrolled_users) for specific courses, helping manage prerequisites or group assignments.

Professor/Instructor

Checks student progress and grades instantly using get_course_completion and get_course_grades, letting them focus on teaching instead of report-building.

What Changes When You Connect

  • Stop manually checking grade sheets. Use get_course_grades to pull a user's entire academic record—all scores, weights, and final marks—in one API call.
  • Need a roster fast? Instead of clicking through course administration pages, use get_enrolled_users to get a clean list of every student in minutes.
  • No more guessing if students finished the material. Run get_course_completion on any user to see their exact progress percentage and which modules they still need to submit.
  • Sending reminders is simple. Use send_message to instantly chat with a specific user ID, bypassing email lists or complex directory lookups.
  • Get the big picture first. Start by calling get_courses to map out all available departments or program tracks before you drill down into any single class.

Real-World Use Cases

01

The Mid-Semester Grade Report

A professor needs to report the top 5 performers in 'Advanced Mathematics'. Instead of exporting and filtering a massive gradebook, they ask their agent: "Run get_course_grades for course ID 4. Sort by score and list the top five." The agent runs the tool, processes the data, and returns the names and percentages instantly.

02

Auditing New Student Enrollment

An administrator needs to verify if a group of new hires were properly added to 'HR Training'. They ask: "Run get_enrolled_users for Course ID 10 and filter for the onboarding batch." The agent runs the tool, confirming every required user is present.

03

Checking Assignment Status Before Review

A TA needs to know which students haven't submitted their final project. They ask: "Check get_course_completion for all users in the 'Cybersecurity' course.". The agent runs the tool, highlighting exactly who is missing submissions and allowing the TA to follow up.

04

Quickly Contacting a Missing User

A coordinator realizes a student hasn't logged into their required module. Instead of finding their email via three different screens, they ask: "Send John Doe (ID 901) a message reminding him about the quiz." The agent uses send_message immediately.

The Tradeoffs

Manual Roster Building

Trying to build a list of all students in three different courses by navigating to each course's 'Users' tab and copying names into an Excel sheet.

Don't do it manually. Ask your agent to run get_enrolled_users for Course A, then repeat the tool call for Course B, and combine the results in one command.

Gradebook Guesswork

Calling a general 'Get Student Grades' function that doesn't specify which course or what period. You just get a massive, useless data dump.

Always use get_course_grades and include the specific Course ID in your prompt. This forces the agent to pull only relevant gradebook data.

Searching by Memory

Trying to remember if a user is active or what their current role is, requiring multiple searches through the general directory.

First, use get_users with search parameters (like email) to find the ID. Then use that ID in other tools like get_enrolled_users for context.

When It Fits, When It Doesn't

Use this Moodle MCP Server if your core operational need is managing academic records, enrollment lists, or course content within a dedicated LMS environment. It excels when you need to move data from 'where it lives' (Moodle) to 'where you work' (your AI client). Don't use it if you are trying to manage HR payroll data or track physical assets—those require different types of system integrations. If your problem is general communication and not tied to academic records, skip this server. Stick to Moodle MCP when the required data point must be a grade, an enrollment status, or a course object listed in your LMS.

Independent Platform Disclaimer: Vinkius is an independent platform and is not affiliated with, endorsed by, sponsored by, verified by, or otherwise authorized by Moodle. All third-party trademarks, logos, and brand names are the property of their respective owners. Their use on this website is strictly for informational purposes to identify service compatibility and interoperability.

VINKIUS INFRASTRUCTURE

Cloud Hosted

Managed infra

V8 Isolated

Sandboxed per request

Zero-Trust Proxy

No stored credentials

DLP Enforced

Policy on every call

GDPR Compliant

EU data residency

Token Compression

~60% cost reduction

How we secure it →

Works with Claude, ChatGPT, Cursor, and more

The Model Context Protocol standardizes how applications expose capabilities to LLMs. Instead of operating in isolation, your AI gains direct access to external platforms, live data, and real-world actions through secure, standardized connections.

This server provides 10 capabilities that interface natively with Claude, ChatGPT, Cursor, and any MCP client. No middleware. No custom integration required.

Available Capabilities

get_course_assignments get_course_completion get_course_grades get_course_groups get_course_quizzes get_course_workshops get_courses get_enrolled_users get_users send_message

Manually tracking student progress across different tabs kills productivity.

Today, if you need to know if John Doe passed the 'Advanced Mathematics' module, you have to jump into Moodle. You find his name, click on the gradebook tab, then maybe filter by assignment type (quiz vs. final), and finally scroll through multiple pages of data just to get a single percentage. It takes five clicks and ten minutes.

With this MCP Server, you simply ask your agent: "What is John Doe's completion status in Advanced Mathematics?" The agent runs `get_course_completion` using the specific Course ID. You get the progress percentage instantly, right in the chat window. It’s clean and fast.

Moodle MCP Server: Get student data straight into your workflow.

You don't have to copy/paste user IDs or course names anymore. Instead of opening a spreadsheet, running an API call manually, and then updating the record in Moodle, you let your agent handle the whole chain. It runs `get_enrolled_users` first, gets the list, and only then uses that data for subsequent actions.

The difference is context. We move from executing isolated tasks to running full workflows—like 'Get all users enrolled in Course X who have not passed Quiz Y.' This ability to chain tools makes your agent genuinely useful.

Common Questions About Moodle MCP

How do I get the list of courses using the Moodle MCP Server? +

You use get_courses. This tool lists all available course names and basic details across your entire site, giving you a map of what's available before you drill down into specifics.

Can I check grades for multiple courses at once with get_course_grades? +

You run get_course_grades per course. You must provide the specific Course ID and User ID in your prompt for the agent to retrieve the gradebook data accurately.

What is the best tool for finding a student's current enrollment status? +

Use get_enrolled_users. This tool pulls a clean list of all users currently associated with a specific course, which is more accurate than just searching the general user directory.

How do I send an instant message using the Moodle MCP Server? +

Use send_message. You only need the recipient's User ID and the text you want to send. The agent handles the delivery right from your chat client.

How do I check the user groups defined in a course using `get_course_groups`? +

This tool lists all defined groups for a specific course ID. It returns the group name, group ID, and how many users are currently assigned to that group.

If I want to check a student's progress percentage, should I use `get_course_completion`? +

Yes, get_course_completion returns the calculated completion status. It assesses progress based on required activities versus those marked as finished for that user.

What permissions does my Moodle web service token need to use tools like `get_users` and `send_message`? +

The token must have read access to the Users/Enrollments module, plus messaging rights. This ensures your agent can search users and send messages without hitting permission walls.

Do I need a separate tool if I only want to list quizzes for a course? Should I use `get_course_quizzes`? +

You'll use the get_course_quizzes tool. It specifically lists all available quiz activities within a given Course ID, giving you their titles and IDs.

How do I enable Web Services in Moodle? +

Go to Site Administration > Server > Web services > Overview. You'll need to enable Web Services, enable the REST protocol, create a specific user, and generate a token for them.

Can I see student grades for a course? +

Yes! Use the get_course_grades tool with a course ID to retrieve the gradebook data for all students enrolled in that course.

How do I check if a student has completed a course? +

The get_course_completion tool allows you to check the progress and completion status for a specific User ID in a target Course ID.

You might also like

Built & Managed by Vinkius 30s setup 10 tools

We've already built the connector for Moodle. Just plug in your AI agents and start using Vinkius.

No hosting. No infrastructure. No complex setup.
All 10 tools are live and waiting. You're up and running in seconds.

Claude Claude
ChatGPT ChatGPT
Cursor Cursor
Gemini Gemini
Windsurf Windsurf
VS Code VS Code
JetBrains JetBrains
Vercel Vercel
+ other MCP clients

Vinkius gives your AI agents access to the full catalog of app connectors, all fully managed, secure, and enterprise-ready. One subscription, every tool you need.

Zero hosting required Full MCP catalog included Enterprise-grade security Auto-updated by Vinkius

Built, hosted, and secured by Vinkius. You just connect and go.