MUSTer MCP Server
Enables interaction with Moodle learning management system to retrieve class schedules, query course content, view assignments and to-dos, download course materials, and access course pages with automatic authentication.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MUSTer MCP Server show me this week's class schedule and any upcoming deadlines"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MUSTer MCP Server
An MCP server prepared for MUSTer. Enables LLM interaction with the M.U.S.T. (Macau University of Science and Technology) campus system.
English | 简体中文
Now, LLMs can automatically log in to Wemust and Moodle, retrieve class schedules, query course PPTs, assignments, view to-do items, download course materials, and automatically open pages.
Tools Overview
get_class_schedule: Check Schedule. Directly fetches this week's class arrangements.get_pending_events: Check DDL. Lists upcoming assignments and to-dos on Moodle.get_all_courses: List Courses. Gets the names and links of all courses on the Moodle dashboard.get_course_content: Check Details. Reads assignment or quiz information within specific courses.download_resource: Download Courseware. Downloads files from Moodle resource pages (especially convenient for bulk downloading PPTs). This also allows the large model to select a specific folder.open_URL_with_authorization: Open without password. Directly pops up an automatically logged-in Chrome window, no need to manually enter account password, automatically opens the specified page.get_current_time: Gets the current system timestamp.
Related MCP server: zju-mcp
Environmental Dependencies
Python 3.12+
Locally available Chrome/Chromedriver (for Selenium).
Environment variables:
MUSTER_USERNAME,MUSTER_PASSWORD(required);MUSTER_DOWNLOAD_PATH(optional, default download path, defaults to~/Downloads).
Installation
Install uv (a fast Python package manager).
Clone the repository and install dependencies:
git clone https://github.com/Cosmostima/MUSTer_MCP
cd MUSTer_MCP
uv syncMCP Client Configuration Example
{
"mcpServers": {
"muster": {
"command": "UV_PATH_HERE",
"args": [
"--directory",
"MCP_FOLDER_PATH_HERE",
"run",
"main.py"
],
"env": {
"MUSTER_USERNAME": "YOUR_ID_HERE",
"MUSTER_PASSWORD": "YOUR_PASSWORD_HERE"
}
}
}If you need to customize the default download path, you can add MUSTER_DOWNLOAD_PATH :
{
"mcpServers": {
"muster": {
"command": "UV_PATH_HERE",
"args": [
"--directory",
"MCP_FOLDER_PATH_HERE",
"run",
"main.py"
],
"env": {
"MUSTER_USERNAME": "YOUR_ID_HERE",
"MUSTER_PASSWORD": "YOUR_PASSWORD_HERE",
"MUSTER_DOWNLOAD_PATH": "/Users/cosmos/Desktop/"
}
}
}Available Tools
7 toolsdownload_resourceB
Download Moodle resource file(s) (PPT, PDF, etc.) from a URL. Supports saving to a custom local directory.
Inputs: resource_url (required), download_path.
get_all_coursesB
Get all available courses and URLs from Moodle.
Inputs: no named parameters.
get_class_scheduleA
Get class schedule in this week; pass null for full week, or date (YYYY-MM-DD) to filter. If you need multiple days, pass null once instead of multiple calls.
Inputs: date.
get_course_contentA
Get all assignments/resources for a course by exact name (call get_all_courses first).
Inputs: course_name (required).
get_current_timeA
Get current local datetime as YYYY-MM-DD HH:MM:SS.
Inputs: no named parameters.
get_pending_eventsB
Get upcoming events and deadlines from Moodle calendar.
Inputs: no named parameters.
open_URL_with_authorizationB
Open a URL in a new authorized browser window after Moodle login (show to user).
Inputs: url (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 7 tools
Most tools have distinct purposes targeting different Moodle functionalities (courses, schedule, content, events, resources), but 'get_all_courses' and 'get_course_content' could be slightly confused as both relate to course data. The descriptions clarify that one lists courses and the other gets detailed content for a specific course, preventing major misselection.
All tool names follow a consistent 'verb_noun' pattern with snake_case (e.g., download_resource, get_all_courses, open_URL_with_authorization). The naming is predictable and readable throughout the set, with no deviations in style or convention.
With 7 tools, this server is well-scoped for a Moodle integration, covering core student workflows like accessing courses, schedules, content, events, and resources. Each tool earns its place without feeling bloated or insufficient for the domain.
The toolset provides strong coverage for viewing and downloading Moodle data, including courses, schedules, content, events, and resources, with authentication support. A minor gap exists in write operations (e.g., submitting assignments or posting to forums), but agents can work around this for typical student tasks.
Maintenance
Related MCP Connectors
PLATO (Pusan National University LMS) MCP server via Moodle Web Service API + ubboard scraping
iSpring Learn (iSpring LMS) MCP server for ChatGPT, Claude and any AI agent: enroll users in courses, list enrollments, get learner progress report, cancel enrollment, reset enrollment progress, add users by email, deactivate users and list courses in your own iSpring Learn (iSpring LMS) account. Cotlet works in the account through your Cloud Browser, a real Chrome where you sign in to iSpring Learn (iSpring LMS) yourself; Cotlet does not store your password and you need no iSpring Learn (iSpring LMS) API key. About the official iSpring Learn (iSpring LMS) API: iSpring Learn has a REST API, but only with the Business subscription, and no official MCP server (checked 20 Oct 2026). The API covers users, departments, courses, enrollments and results, so an agent needs custom code and a token; the Zapier app covers users, departments and enrollments but has no progress or report actions. Setup and FAQ: https://cotlet.dev/integrations/ispring-api-mcp-server
LearnWorlds MCP server for ChatGPT, Claude and any AI agent: list users, list course learners, enroll users, unenroll users, update tags, send message, suspend user and grade assessment in your own LearnWorlds account. Cotlet works in the account through your Cloud Browser, a real Chrome where you sign in to LearnWorlds yourself; Cotlet does not store your password and you need no LearnWorlds API key. About the official LearnWorlds API: LearnWorlds has a REST API (v2) for courses, users, bundles, subscriptions, promotions, payments and certifications, but it comes with the Learning Center plan and higher, and you need your own code to use it (checked 5 Nov 2026). LearnWorlds has no official MCP server. Setup and FAQ: https://cotlet.dev/integrations/learnworlds-api-mcp-server
Absorb LMS MCP server for ChatGPT, Claude and any AI agent: list users, list course enrollments, list overdue learners, approve enrollment request, enroll users in a course, message learners, create user and deactivate user in your own Absorb LMS account. Cotlet works in the account through your Cloud Browser, a real Chrome where you sign in to Absorb LMS yourself; Cotlet does not store your password and you need no Absorb LMS API key. About the official Absorb LMS API: Absorb LMS has an Integration API, a REST API with JSON for learners, courses, departments and grades, but it needs a private key tied to your portal that your Absorb account team provides, and your own code (checked 20 Oct 2026). Absorb's Aura MCP for Claude and ChatGPT is planned for 27 Oct 2026 and is read and answer only. Setup and FAQ: https://cotlet.dev/integrations/absorb-lms-api-mcp-server
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables interaction with Moodle learning management systems through the Moodle REST API. Supports course management, user enrollment, assignments, forums, quizzes, and file operations through natural language.30 npmMIT
- FlicenseAqualityDmaintenanceEnables interaction with Zhejiang University's learning platform (学在浙大 / 智云课堂) via MCP tools, allowing natural language commands to check todos, view schedules, fetch lecture transcripts, and submit homework.79-
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to connect to Xi'an Jiaotong-Liverpool University's Learning Mall Core (Moodle) to list courses and materials, download attachments, and check assignment deadlines, with automatic login and email-based verification-code retrieval. Text extraction from PDF, PPTX, and DOCX files runs locally on the Mac and returns page-level evidence for deadline verification.3MIT
- AlicenseBqualityBmaintenanceEnables AI assistants to access a user's Pusan National University Moodle-based LMS account, browsing courses, materials, notices, assignments, grades, calendars, and Q&A, downloading course files, and performing write actions like submitting assignments after a confirmation preview. It combines the official Moodle Web Service API with authenticated session scraping for the ubboard notice/Q&A boards.267AGPL 3.0