Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
PORTNoPort for the local HTTP server
LEARN_BASE_URLNoOverride the base URL of the LEARN instance. Default is https://learn.uwaterloo.ca
LEARN_AUTH_FILENoPath to the auth file (default auth.json)
LEARN_MCP_TOKENNoSecret token used for OAuth connection
WATIAM_PASSWORDNoWatIAM password for login autofill
WATIAM_USERNAMENoWatIAM username for login autofill
WATIAM_LOGIN_DOMAINNoDomain for WatIAM login
GOOGLE_DRIVE_API_KEYNoGoogle Drive API key
GOOGLE_DRIVE_FOLDER_IDSNoComma-separated list of Google Drive folder IDs to search
LEARN_OUTLINE_CACHE_DIRNoDirectory for cached course outlines (default cache/outlines)
GOOGLE_DRIVE_ACCESS_TOKENNoGoogle Drive access token with drive.readonly scope

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_coursesA

List the courses you are enrolled in on Waterloo LEARN. Returns course names and their ou (org unit) IDs, which the other tools take as courseId. Use to answer: "What courses am I taking?"

get_announcementsA

Get announcements/news posted by instructors for a course. Returns title, body, posted date, and attachments. Use to answer: "Any new announcements?", "What did the professor post?"

get_contentA

List the content modules and materials (lectures, slides, files, links) for a course as a nested table of contents. Use this as the primary source for course activity questions like "what did we do today?", "what was in today's tutorial/lab/lecture?", "what is this week's work?", "what materials are in week 3?", or "where are the lecture slides?". After identifying relevant topics, call get_topic_file to inspect PDFs or PowerPoints.

get_topic_fileA

Download a lecture file (PDF or PowerPoint) from course content and return each page/slide as an image you can read — including diagrams and figures. topicId is the id of a topic from get_content. Slide N = page N; pass pages like "4" or "2-6" to fetch specific slides instead of the whole deck. Use after get_content to answer: "Summarize lesson 2", "What is the diagram on slide 4?"

get_gradesA

Get your grades for a course: each grade item with displayed grade, points, weight, and feedback. Use to answer: "What are my grades?", "How did I do on the midterm?"

get_assignmentsA

Get assignments (dropbox folders) for a course: due date, instructions, attached problem sheets, your submission status (submitted/unsubmitted), submitted files, and released feedback/score. Use to answer: "Have I submitted Assignment 5?", "What is still due?", "What feedback did I get?"

get_upcomingA

Get upcoming calendar events and due dates (assignments, quizzes, exams) for a course. Use to answer: "What is due this week?", "When is the next deadline?", or "what work is due today?". This does not list lecture/tutorial materials; pair it with get_content for "what did we do today/this week?"

get_course_outlineA

Fetch the official syllabus and return its full text. Use to answer: "What is the grading scheme?", "How much is the midterm worth?", "What is the late policy?", Use this tool WHENEVER user asks about content with chronological language,like "today", "this week", etc.Outlines have a week-by-week schedule, ALWAYS use it to orient chronologically — then call get_content & get_topic_file to pull matching lecture materials. If no outline link exists, check get_content

search_drive_filesA

Recursively search the configured Google Drive folder for relevant past quizzes, tests, midterms, exams, practice material, and solutions. Search by course code and useful terms, for example "CS 135 quiz" or "MATH 136 midterm". With no query, returns assessment-like files. Use get_drive_file to inspect a result.

get_drive_fileA

Download and inspect a file returned by search_drive_files. PDFs, PowerPoints, Google Docs, and Google Slides are rendered as readable page images. Access is restricted to files inside the configured Drive folder.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/LargoLardo/waterloo_learn_MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server