Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
OSIRIS_TIMEOUTNoHTTP timeout in seconds30
OSIRIS_LANGUAGENoContent language (NL or EN)EN
OSIRIS_MANIFESTNoOptional search-index headerunset
OSIRIS_RELEASE_VERSIONNoOptional search-index headerunset

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": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_facultiesC

List faculties (code + name).

list_course_typesC

List course types (e.g. Bachelor College, Graduate School).

get_available_yearsC

List academic years in the catalog.

get_categoriesC

List course categories/levels.

get_course_structureB

Describe the sections and fields a course can contain.

list_coursesA

List course codes for a faculty and course type.

Args:
    faculty: faculty code, e.g. "EE".
    course_type: "BC" (Bachelor College) or "GS" (Graduate School).
    year: start year ("2025") or range ("2025-2026"); all years by default.
    institution: institution code (e.g. "tue"); defaults to the configured one.
get_courseB

Get the header for a course code.

Args:
    code: course code, e.g. "4DM00".
    year: start year or range; most recent offering by default.
    institution: institution code (e.g. "tue"); defaults to the configured one.
get_course_detailsB

Get full course details (content, exams, lecturers, materials, ...).

Args:
    code: course code, e.g. "4DM00".
    institution: institution code (e.g. "tue"); defaults to the configured one.
get_course_details_by_idA

Get full course details by internal Osiris course id.

Args:
    id: internal course id, as returned by ``list_courses`` or
        ``search_courses``.
    institution: institution code (e.g. "tue"); defaults to the configured one.
search_coursesB

Search courses with optional filters.

Args:
    keyword: free-text search on code or name.
    faculty: filter by faculty code or full name.
    course_type: filter by course-type code or full name.
    category: filter by category/level.
    year: filter by academic year.
    limit: max results (1-100).
    offset: pagination offset.
    institution: institution code (e.g. "tue"); defaults to the configured one.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.1/5.0

Scored across 10 tools

Disambiguation4/5

Most tools are clearly distinct: list/get operations separate by resource (years, categories, faculties, course_types, courses). The main ambiguity is between get_course (header), get_course_details (full details), and get_course_details_by_id (full details by internal id) — get_course_details and get_course_details_by_id return the same data but keyed differently, and get_course's 'header' vs details boundary could cause misselection.

Naming Consistency4/5

The set follows a consistent get_/list_ verb prefix pattern (get_available_years, get_categories, list_courses, get_course, search_courses). Minor deviations exist: search_courses uses a different verb while other exploration tools use get_/list_, and get_course_details_by_id introduces the '_by_id' suffix that isn't used elsewhere.

Tool Count4/5

Ten tools is within the ideal range for a catalog/query server. Each tool earns a place: three discovery tools (years, categories, faculties/course_types), course listing/search, and course retrieval at different granularities.

Completeness4/5

The tool surface is strong for a read-only catalog: discovery (faculties, years, course types, categories), search, listing, and multi-level retrieval (header vs full details). The main gap is that get_course_details_by_id is redundant with get_course_by_code — agents could hit dead ends if they don't know which lookup path to use; a by-code variant of full details is also missing from the direct route.

Maintenance

ActivitySlowing
ResponsivenessNo issues