Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
MOODLE_TOKENYesYour Moodle mobile web service token, found in Moodle under Preferences > User account > Security keys
MOODLE_BASE_URLYesThe base URL of your school's Moodle site, e.g. https://moodle.yourschool.edu

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

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_my_coursesA

Answers 'what courses am I enrolled in?' Lists each current Moodle course with the ID other tools take as course_id. No input. Ask: 'Which courses do I have this term?'

get_upcoming_due_datesA

Answers 'what is due soon?' Lists up to 50 items due in the next 60 days across your courses that still need action, soonest first, with the course name and due date. Course events such as 'Course starts' and 'Course ends' are left out because there is nothing to do about them. Input: course_ids, an optional array of course IDs to limit the list; leave it out to cover all current courses. Ask: 'What's due in the next two weeks?'

get_overdueA

Answers 'is anything overdue?' Lists past due items from the last 45 days that still need action, with the course name and the date each was due. Input: course_ids, an optional array of course IDs to limit the list; leave it out to cover all current courses. Ask: 'Is anything overdue?'

get_calendarA

Answers 'what is on my calendar between these dates?' Lists up to 50 calendar events from start_date to end_date, both included, oldest first, with the course name and date. Unlike get_upcoming_due_dates and get_overdue it works for any dates, past or future, and also shows events that need no action. Input: start_date and end_date as YYYY-MM-DD, in the time zone of the computer running the server; course_ids, an optional array of course IDs to limit the list. The window can span up to 366 days. Ask: 'What is due the week of Dec 1?'

get_todoA

Answers 'what should I do today?' One digest across your courses that opens with a Start here line naming the most urgent item (the oldest overdue work, else the next thing due), then lists overdue work, work due soon, assignments with no due date, and the latest announcement subjects, each with the course name and due date. Submission status comes from the assignment list and the calendar adds quizzes and other activities. Input: course_ids, an optional array of course IDs to limit the digest; days_ahead, how many days ahead to look, default 14; overdue_days, how many days back to look for overdue work, default 14. Ask: 'What should I do today?'

get_assignmentsA

Answers 'what do I still need to submit in this course?' Lists up to 25 assignments for one course with due dates and submission status: not submitted, draft, submitted or graded. Input: course_id, the ID from get_my_courses. Ask: 'Which assignments have I not submitted yet in Networking Basics?'

get_assignment_detailsA

Answers 'what does assignment X require?' Shows the due date, the instructions and the attached files of the assignments in one course, up to 5 at a time. Each attached file shows its name and a link with your key removed, ready for get_file. Input: course_id from get_my_courses, and an optional assignment_name, part of an assignment name, to pick one. Ask: 'What does the Lab 3 assignment in Networking Basics require?'

get_quizzesA

Answers 'when does my quiz open, how many attempts do I have left and what did I score?' Lists up to 25 quizzes for one course with the open and close dates, the time limit, the attempts used and allowed, and your best grade. Input: course_id, the ID from get_my_courses. Ask: 'When does the quiz open in Networking Basics and how many attempts do I have left?'

get_missing_workA

Answers 'what do I still owe?' Lists the assignments in your courses that you have not handed in yet, with the course name and the due date. Drafts that were never handed in are included, and work that was already handed in or graded is left out. Up to 25 assignments in each course are checked and the list holds up to 50 items. Input: course_ids, an optional array of course IDs to limit the list; leave it out to cover all current courses. Ask: 'What work am I still missing?'

get_my_gradesA

Answers 'what's my grade in each course?' Shows the posted overall grade for every current course, or 'no grade posted yet'. No input. Ask: 'What's my grade in each course?'

get_course_grade_itemsA

Answers 'what's in the gradebook for this course?' Lists every graded item for one course with the mark and percentage, including the course total when there is one. Input: course_id, the ID from get_my_courses. Ask: 'Show me the gradebook for Networking Basics.'

get_course_contentA

Answers 'what's in this course?' Lists the sections of one course, such as weeks or topics, with up to 40 activities in each, such as pages, quizzes and forums. Each activity shows its intro text when the course has one, such as assignment instructions, label text or a page summary. Each file shows its name and a link with your key removed, so the link is safe to show in a chat and get_file can still open it. Input: course_id, the ID from get_my_courses. Ask: 'What materials are posted in Networking Basics?'

get_course_pageA

Answers 'what does this course page say?' Reads the Page activities of one course, the pages listed as page in get_course_content, and returns their text with the HTML removed. Up to 5 pages are shown, each up to 20000 characters, and a longer page ends with [truncated]. Images and embedded media are not shown. Input: course_id, the ID from get_my_courses, and page_name, an optional word or phrase from the page title to pick one page; leave it out to read the first pages of the course. Ask: 'Read the Week 2 reading page in Networking Basics.'

get_announcementsA

Answers 'any new announcements?' Lists the latest news forum posts with subject, course name and text, up to 5 posts from each of up to 10 news forums. A course or forum the school server will not open is left out and the rest still shows. Input: course_ids, an optional array of course IDs to limit the search; leave it out to cover all current courses. Ask: 'Any new announcements from my teachers?'

get_forum_discussionsA

Answers 'what are people discussing in the Networking Basics forum?' Lists the latest discussions in the forums of one course, with subject, author, date, reply count and the start of the text, up to 5 discussions from each of up to 5 forums. Announcement forums are left out, use get_announcements for those. A forum the school server will not open is named at the end and the rest still shows. Input: course_id from get_my_courses, and an optional forum_name, part of a forum name, to pick one forum. Ask: 'What are people discussing in the Networking Basics forum?'

get_forum_postsA

Answers 'what did the instructor answer in that thread?' Reads one forum discussion with the first post and every reply, each with author, date and text, up to 50 posts of up to 2000 characters each. Input: discussion_id, the number shown as discussion_id in get_forum_discussions. Ask: 'What did the instructor answer in the Lab 3 thread?'

get_fileA

Answers 'what does this course file say?' Downloads one course file resource, such as a PDF, slide deck or handout, from its file_url. Supported types: plain text, HTML and PDF. Plain text and HTML files come back as readable text. A PDF with readable text comes back as text, and a PDF with no extractable text comes back with its file name, a link with your key removed and a note to open it in Moodle. Any other file type is not supported and comes back with its file name, a link with your key removed and a note that only plain text, HTML and PDF are supported, with a note to open it in Moodle. Only a link on your school's Moodle site is downloaded, so your key is never sent to another server. Input: file_url, the link from get_course_content. Ask: 'Read the Week 3 slides PDF.'

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4/5.0

Scored across 17 tools

Disambiguation3/5

Five tools answer overlapping 'what do I need to do' questions: get_missing_work, get_assignments, get_todo, get_upcoming_due_dates, get_overdue, and get_calendar all return items with due dates. The descriptions work hard to draw boundaries (get_todo is a cross-course digest, get_calendar accepts arbitrary ranges, get_overdue is backwards-looking), but an agent asking 'what's due?' still faces a real choice among several plausible tools. Distinct tools like get_file, get_forum_posts, and get_course_page are clearly separated.

Naming Consistency5/5

Every tool follows a uniform get_<noun> snake_case pattern with no deviations, and related tools share noun stems (get_assignments/get_assignment_details, get_forum_discussions/get_forum_posts, get_course_content/get_course_page/get_course_grade_items). The convention is fully predictable.

Tool Count4/5

17 tools is at the upper end of comfortable, but each maps to a distinct Moodle concept (courses, assignments, quizzes, grades, forums, announcements, content, files, calendar). A few could plausibly be folded together (get_upcoming_due_dates/get_overdue/get_missing_work), but nothing is redundant filler.

Completeness4/5

Read coverage is broad and coherent: courses, assignments, quizzes, grades, gradebook items, forum discussions and posts, announcements, course structure, page text, files, and calendar. The obvious gap is the absence of any write/action tool — no submit assignment, upload file, or post to a forum — which limits the server to read-only advising despite a student lifecycle that normally includes submitting work.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues