NTU Course Index MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| NTU_CACHE_TTL_SECONDS | No | Cache time in seconds for course responses (cached in memory for one hour by default). Set to 0 to disable caching. |
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": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_courseB | Get course metadata and every index with its complete timetable. |
| get_course_indexesB | List all indexes for a course, including every lecture, tutorial, lab, and other session. |
| get_graduate_course_scheduleB | Get a graduate course's class groups for NTU's currently published academic term. |
| get_undergraduate_exam_scheduleA | Get public General Access exam dates and times for a course in the latest or specified published term. |
| get_index_scheduleC | Get every scheduled session for one course index. |
| compare_indexesB | Compare shared and index-specific sessions; optionally check clashes with supplied time slots. |
| find_matching_indexesA | Find indexes matching day/time/lesson/week rules and avoiding supplied timetable clashes. |
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 7 tools
get_course returns course metadata AND every index with its complete timetable, which substantially overlaps with get_course_indexes (list all indexes) and get_index_schedule (one index's sessions). An agent could reasonably pick any of the three for overlapping needs. The exam/graduate schedules and the compare/find pair are clearly distinct, but the course/index trio blurs boundaries.
All names follow a verb_noun pattern (get_course, get_index_schedule, find_matching_indexes, compare_indexes) with snake_case throughout. The graduate/undergraduate schedule names are longer and add scope qualifiers, a minor deviation but still readable and predictable.
Seven tools is well-scoped for a course-index lookup domain, covering distinct resource/action combinations without bloat. No trivial single tool or excessive surface.
The surface covers course metadata, index listing, per-index schedules, graduate/undergraduate scheduling, exam dates, index comparison, and clash-aware matching, which is strong lifecycle coverage. Some gaps remain, such as no explicit search-by-course-code tool, but core planning workflows are supported.