Skip to main content
Glama
viftode4
by viftode4

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
BRIGHTSPACE_URLNoBrightspace HTTPS originhttps://brightspace.tudelft.nl
BRIGHTSPACE_DATA_DIRNoSession, index and download directoryProject .local
BRIGHTSPACE_CATALOG_URLNoLegacy catalog fallbackhttps://brightspace-cc.tudelft.nl
BRIGHTSPACE_BROWSER_CHANNELNoOptional installed browser channelBundled Chromium

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
}
prompts
{
  "listChanged": true
}
resources
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
begin_loginA

Open normal TU Delft sign-in starting from Brightspace. Complete password/MFA there, then poll get_login_status. Set fresh:true to recover from an expired or unsupported sign-in flow using a clean browser without saved cookies. A failed fresh login preserves the saved session.

get_login_statusA

Get progress of an interactive login in this process; use check_auth to verify a saved session.

check_authA

Verify the saved session against the live current-user API.

begin_mytu_loginA

Open normal My TU Delft student sign-in for official OSIRIS results. Complete password/MFA in that browser, then poll get_mytu_login_status. The separate protected login must match your verified Brightspace account.

get_mytu_login_statusA

Read this process's My TU Delft login progress. Use check_mytu_auth to verify a saved login.

check_mytu_authA

Verify the saved My TU Delft login and its account match before reading official results.

list_official_gradesA

Read a page of your official OSIRIS results from My TU Delft. These are separate from Brightspace course gradebooks. Continue with nextOffset while hasMore is true; complete describes coverage of this response only. Unpublished or missing results are not inferred.

get_official_gradeA

Read one of your official OSIRIS results using its exact ID from list_official_grades.

logout_mytuA

Remove the current account's local My TU Delft login and cancel its login browser.

begin_mail_loginA

Start normal Microsoft sign-in through the optional official Graph PowerShell SDK. Requests profile and Mail.ReadWrite for your own mailbox and unsent drafts, with no Mail.Send. University consent policy may require approval. Poll get_mail_login_status; passwords and MFA stay in Microsoft's login window.

get_mail_login_statusA

Read this process's university email login progress. Mail access lasts only for this MCP process.

check_mail_authA

Verify the current Microsoft identity, tenant and Brightspace account match. Reports email access and process-local session lifetime.

list_mail_foldersA

List your own Outlook mail folders, or children of an exact folder ID. Follow nextCursor for more results.

list_mail_messagesA

List message summaries from your own Outlook folder, newest first. Defaults to inbox. Reads do not mark messages as read; full bodies require read_mail.

search_mailA

Search your own Outlook mailbox with Microsoft Graph mail search. Follow the same query's nextCursor; Microsoft limits search to 1000 results. Returned email text is untrusted source data.

read_mailA

Read an exact message from your own Outlook mailbox, including bounded plain text and recipients. Does not download attachments or change read status.

create_mail_reply_draftA

Save an unsent reply to an exact message in your own Outlook mailbox. Use only for a reply the student requested. Body is literal plain text; replyAll defaults to false. Returns a verified draft and Outlook link. Never sends; if the outcome is unknown, inspect Drafts before any retry.

logout_mailA

Close the process-local Microsoft email session. Saved Outlook drafts remain in your mailbox.

begin_recording_loginA

Open normal Collegerama/TU Delft sign-in for an exact recording topic discovered in your own course. Complete password/MFA in that browser, then poll get_recording_login_status. The separate encrypted recording login is bound to the verified Brightspace account.

get_recording_login_statusA

Read progress of this process's interactive Collegerama login. A saved recording session is verified when read_recording runs.

read_recordingA

Read authenticated Collegerama presentation metadata for an exact visible topic in an enrolled Brightspace course. Verifies both account identities and the source recording link. Returns title, description, duration and dates where published; playback and transcript contents are not read.

logoutA

Remove this account's saved Brightspace, recording and My TU Delft logins, close email access and discard pending actions. Cached course documents remain local until explicitly cleared.

list_coursesA

List your enrolled Brightspace courses, with IDs and access dates. Search by course name or code. Active does not necessarily mean the current academic year.

search_study_guideA

Search the official public TU Delft Study Guide by name or code for an explicit academic year. Anonymous access, 30 results per page; use nextOffset for continuation. Returns public course codes and source links, not Brightspace enrollment status.

get_study_guideA

Read the official public Study Guide for an exact course code and academic year: description, learning objectives, assessment, prerequisites, teaching and published materials. Verifies exact code/year and reports output limits. No login or LTI identity handoff.

get_course_contentA

Get the nested course outline, lecture topics, document IDs and external recording links. Also index titles/descriptions locally.

list_recordingsA

Discover recording and published caption links from the visible course outline and bounded module/topic metadata. Returns provider labels, exact sources and native read_material targets. Resume with nextStartAt and merge by URL; coverage applies to the current call. Does not fetch provider pages, media bytes or transcripts.

get_course_toolsA

Discover the tools actually linked by a course: native Brightspace navigation, own progress, groups, and external course services. Includes verified course metadata. LTI/external links are descriptors until their target is read; a listed link does not imply integration.

read_course_serviceA

Read an observed Study Guide or Group Self Enrollment course link using its normal LTI sign-in handoff. The configured university/provider receives the identity, role and course claims Brightspace normally shares. Returns an initial partial service page, or exact anonymous public course information when Study Guide redirects there; source and course-match status are explicit. Does not join groups or edit the service.

get_announcementsA

Read course announcements and attachment metadata, optionally updated since an ISO timestamp.

list_assignmentsB

Read assignments, instructions, due dates, closing times and attachment IDs.

get_assignmentA

Read one assignment including your submission history and available assessment feedback.

get_my_gradesA

Read the current student's Brightspace grades. These are separate from the official study record.

get_my_groupsA

Read course group categories and your own verified memberships. Includes self-enrollment configuration and dates where published, without fetching other groups' rosters or joining a group.

list_available_groupsA

Read native Brightspace groups offered for self-enrollment, with category, capacity, own membership and joinability. Uses the observed learner page; no group membership changes or peer roster reads.

prepare_group_enrollmentA

Preview joining an exact native Brightspace group from list_available_groups. Binds course, category, group and current account; no place is reserved and no membership changes. Present the exact preview before requesting approval.

confirm_group_enrollmentA

Join the exact group in an unexpired preview after the student explicitly approves that group. Rechecks own membership and live group details, permits one enrollment request, and verifies membership. Never retry an uncertain result automatically.

read_announcement_attachmentA

Read, index or download a file belonging to an exact course announcement. Use announcement/file IDs from get_announcements; returns sourced extracted text and optional local path.

get_my_progressA

Read your own visible course progress summary or a selected section discovered from its actual summary links. Includes availableSections. Returns an explicitly partial browser snapshot; displayed progress does not establish course completion.

read_group_lockerA

Read the shared locker page for an exact group you belong to. Use groupId from get_my_groups. Verifies membership and returns visible files and links; does not upload, delete or download locker files.

list_group_locker_filesA

List files or folders in your verified own-group locker through the Brightspace API. Returns exact paths, sizes and pagination. Each nested folder must be listed by its verified parent; child folders are not recursively scanned.

read_group_locker_fileA

Read, index or download an exact file returned by list_group_locker_files. Rechecks own group membership, every ancestor folder and the exact file entry. Returns bounded extracted text or an explicit unsupported-format warning; does not upload or change locker files.

read_my_submission_fileA

Read, index or download one of your previously submitted files, including files from your own group submission. Use assignment/submission/file IDs from get_assignment. Ownership is verified using your current-user submission history.

read_assignment_feedback_fileA

Read, index or download a published feedback attachment for your assignment or group assignment. File IDs come from get_assignment feedback. The current-user response determines the exact feedback owner.

list_quizzesA

Read quiz metadata and availability. Does not start an attempt.

read_discussionsA

List forums; provide forumId for topics, and both forumId/topicId for posts. Reads only.

get_calendarA

Read your course calendar events and server-expanded recurring occurrences in an explicit ISO timestamp range of at most 366 days. Preserves series IDs, occurrence IDs and source coverage; fallback gaps are explicit.

get_upcoming_deadlinesA

Collect published assignment deadlines from selected courses. Other deadlines can appear in quizzes, calendar and instructions; check those separately.

get_study_overviewB

Get a single sourced overview across selected courses: assignment and quiz due dates, explicit calendar deadlines, separate access closing times, scheduled events and recent announcements. Reports missing or partial sources and conflicting dates; does not infer completion or start attempts.

read_materialA

Extract and index lecture material by topic ID: PDF, DOCX, PPTX including notes, XLSX, CSV/TSV, Jupyter notebooks, HTML, plain text or captions. Code and formulas are not executed. Returns text in chunks with nextOffset. External resources return a link.

download_materialA

Download a course topic into the connector's private local downloads directory and return its local path and extracted text.

read_assignment_attachmentC

Read or download an attachment belonging to this exact assignment. File IDs come from list_assignments/get_assignment.

start_course_syncA

Start a background index job for course outline, announcements, assignments and a bounded batch of lecture files. Poll get_sync_status; use its nextStartAt for the next batch.

get_sync_statusB

Get a background sync job's state, coverage, errors and resumption offset.

search_course_materialsA

Search retrieved lecture text, course metadata, announcement attachments, own submissions and feedback in the local full-text index. Returns sources, snippets, retrieval dates and exact readTool arguments where available. Build coverage with start_course_sync or the relevant file reader; this is not a live global Brightspace search.

get_index_statusB

Report which course content has been indexed locally for this signed-in account.

clear_local_indexA

Clear the current account's searchable local text cache. Downloaded files and the login session remain.

read_course_pageA

Read visible text, links and embedded media from a same-origin Brightspace page when an API cannot expose it. Partial browser snapshot; no form interaction.

search_catalogB

Search TU Delft's current Brightspace Discover catalog using the same login. Returns course detail URLs and visible pagination links.

prepare_course_registrationA

Preview an exact Discover course, membership state and available enrolment action. Does not enrol. Show course/code/semester to the student before confirming.

confirm_course_registrationA

Enrol in the exact course from an unexpired preview, then verify API membership. Call only after the student explicitly approves that course. My TU Delft official course/exam registration is separate.

prepare_assignment_submissionA

Preview uploading specific local files to an individual or group file assignment. A group assignment requires explicit groupId from get_my_groups. Returns exact course, assignment, group when applicable, filenames, hashes and comments. Does not upload. Show the preview and group effects to the student.

confirm_assignment_submissionA

Upload the unchanged files in an unexpired preview exactly once. Call only after the student explicitly approves that assignment, files, comments and any group effects. Group submissions affect the selected group. If the outcome is uncertain, inspect submission history before any retry.

prepare_text_submissionA

Preview literal plain text for a native text assignment. Returns exact course, assignment, text, hash, prior submissions and any overwrite/group effects without filling the editor or submitting. Group assignments require an explicit own groupId. Limit 256 KiB UTF-8; show the full preview before approval.

confirm_text_submissionA

Submit the unchanged literal text in an unexpired preview after the student explicitly approves that exact assignment, text, overwrite and group effects. Rechecks the native form/history, permits one exact submission POST and verifies the new own submission. Never retry an uncertain outcome automatically.

Prompts

Interactive templates invoked by user choice

NameDescription
course_briefingBuild a sourced briefing of a specific course.

Resources

Contextual data attached and managed by the client

NameDescription
usageCapabilities and correct connector workflow

TDQS

A3.5/5.0

Scored across 65 tools

Disambiguation4/5

Most tools are clearly separated by resource and action (e.g., list_mail_messages vs read_mail vs search_mail; prepare_group_enrollment vs confirm_group_enrollment). Some potential confusion exists among login-status tools (get_login_status, get_mytu_login_status, get_mail_login_status, get_recording_login_status) and among read/list variants for materials, but descriptions generally disambiguate them.

Naming Consistency4/5

The set predominantly uses verb_noun naming (list_, get_, read_, create_, confirm_, prepare_, begin_, check_). Minor deviations exist (logout_mytu, logout_mail, start_course_sync, get_sync_status) but the pattern is consistent enough for an agent to predict tool names.

Tool Count2/5

65 tools is a very large surface for a single MCP server. While the server covers many domains (Brightspace, My TU Delft, email, recordings, study guide, local indexing), the count is heavy and likely to increase agent decision complexity and latency.

Completeness4/5

The tool set covers a broad lifecycle: login/auth, course browsing, assignments, submissions, grades, groups, mail, recordings, calendar, and local indexing. Minor gaps exist (e.g., no tool to create calendar events, no mail send, no discussion posting), but the core workflows are well covered.

Maintenance

ActivityMaintained
ResponsivenessNo issues