moodle_local
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MOODLE_DATA_DIR | No | Absolute path environment variable override for the materials root directory (資料根目录). Environment variables take precedence over persistent settings. | |
| MOODLE_HEADLESS | No | Set MOODLE_HEADLESS=false to show the operation window (display the browser window). | true |
| MOODLE_PROFILE_DIR | No | Absolute path environment variable override for the dedicated browser profile directory used for Moodle login/session. | |
| MOODLE_COURSES_FILE | No | Absolute path environment variable override for the course whitelist JSON file (名单). Must be a dedicated JSON file, not inside materials, state, or the browser profile. | |
| MOODLE_SETTINGS_FILE | No | Absolute path environment variable override for the settings JSON file. Must be a dedicated JSON file, not inside materials, state, or the browser profile. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| check_connectionB | Check Moodle connection and dedicated login session; never return credentials. |
| list_coursesB | List enrolled My Modules courses including hidden courses. Only explicitly approved IDs may be synchronized. |
| list_resourcesB | List visible resources for an approved course, with observed IDs, titles, types and available format metadata. |
| download_resourceA | Download a discovered file/folder module in an approved course to the approved materials directory. Keep old versions. |
| sync_coursesA | Perform one manual incremental sync for the locally approved courses. forceContentCheck bypasses ETag validation. |
| get_sync_settingsB | Show approved course IDs and local output directories without authentication data. |
| select_coursesA | After user approval, replace the local course selection with observed My Modules IDs. Empty courseIds clears selection without deleting files. Local change only. |
| confirm_setupA | After explicit user confirmation of the displayed course list and current data root, persist setup approval. dataDir must match current settings. For a different root use npm run setup; this tool never migrates data. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 8 tools
Each tool targets a fairly distinct action: connectivity check, course/resource discovery, single download, bulk sync, settings read, course selection, and setup confirmation. Minor overlap exists between sync_courses and download_resource (both fetch content) and between select_courses and confirm_setup (both touch setup state), but descriptions clarify the boundaries.
All eight tools follow a consistent snake_case verb_noun pattern (check_connection, list_courses, download_resource, sync_courses, select_courses, confirm_setup, etc.). No mixing of conventions or vague verbs.
Eight tools is well-scoped for a Moodle course-sync server, with each tool earning its place across connection, discovery, sync, and setup concerns. No redundant or trivial tools pad the set.
The surface covers connection, discovery, download, sync, settings, and setup lifecycle well. Minor gaps like cleanup of old versions or removing downloaded materials exist, but core workflows are covered.