Skip to main content
Glama

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.

License Python MCP Package Manager

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

  1. Install uv (a fast Python package manager).

  2. Clone the repository and install dependencies:

git clone https://github.com/Cosmostima/MUSTer_MCP

cd MUSTer_MCP

uv sync

MCP 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 tools
download_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

    A3.7/5.0

    Scored across 7 tools

    Disambiguation4/5

    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.

    Naming Consistency5/5

    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.

    Tool Count5/5

    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.

    Completeness4/5

    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

    ActivityInactive
    ResponsivenessNo recent community issues

    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

      https://cotlet.dev/mcp/v1/ispring
    • 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

    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables 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 npm
      MIT
    • F
      license
      A
      quality
      D
      maintenance
      Enables 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.
      7
      9
      -
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables 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.
      3
      MIT
    • A
      license
      B
      quality
      B
      maintenance
      Enables 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.
      2
      67
      AGPL 3.0