sjtu-canvas-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CANVAS_TOKEN | Yes | Your Canvas Access Token (required for authentication). | |
| CANVAS_BASE_URL | No | Base URL of the Canvas instance. | https://oc.sjtu.edu.cn |
| CANVAS_DATA_DIR | No | Directory for storing downloaded course data and indexes. | data |
| SJTU_VIDEO_TOKEN | No | Optional debug token for SJTU video API. Normally auto-obtained via Canvas LTI. | |
| SJTU_VIDEO_COURSE_ID | No | Optional debug course ID for SJTU video system. |
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
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_current_userA | Validate the Canvas token and return the current user profile. |
| list_coursesA | List Canvas courses visible to the configured token. |
| get_courseC | Return one Canvas course by ID. |
| list_course_filesC | List files in one Canvas course. |
| list_course_foldersA | List folders in one Canvas course. |
| list_course_modulesC | List modules and optionally module items in one Canvas course. |
| list_course_assignmentsB | List assignments in one Canvas course. This is read-only and never submits work. |
| list_my_submissionsA | List my submissions for one Canvas course. This is read-only and returns redacted URLs. |
| get_my_submissionA | Read my submission for one assignment. This is read-only and returns redacted URLs. |
| get_course_bundleA | Fetch course, folders, files, modules, and assignments in one call. |
| plan_course_downloadA | Preview download size, statuses, and local paths without downloading files. |
| generate_course_indexB | Generate local JSON/Markdown course indexes without downloading missing files. |
| download_course_filesB | Download course files locally and generate indexes. Existing same-size files are skipped unless force is true. |
| download_my_submission_filesA | Download my submitted assignment attachments locally. This never submits or modifies work. |
| video_statusB | Return the implemented SJTU video/subtitle/PPT integration flow. |
| resolve_video_authA | Resolve SJTU video auth for one Canvas course and return only redacted auth metadata. |
| list_course_videosB | List SJTU classroom videos for one Canvas course. |
| get_video_infoA | Read playback metadata for one SJTU video. Returned payload is token-redacted. |
| get_video_subtitleB | Read subtitle rows for one SJTU video and return generated SRT text. |
| get_video_ppt_slicesA | Read PPT replay slice metadata for one SJTU video. This does not download images. |
| download_video_pptB | Download PPT replay images for one SJTU video and optionally assemble a local PDF. |
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 21 tools
Each tool targets a distinct resource and action: course listings, file operations, submission reads, and video metadata vs downloads are clearly separated. Even similar tools like list_course_files vs download_course_files differ in side effects, and composite tools like get_course_bundle are explicitly defined.
All tool names follow a consistent verb_noun pattern in snake_case, using standard verbs like list, get, download, plan, and resolve. The style is uniform, making it easy to predict functionality from names.
21 tools is on the higher end but appropriate for a server that covers both Canvas course management and SJTU video/PPT integration. The count reflects the breadth of features without redundancy, though it could be slightly trimmed.
The surface covers the full read-only lifecycle for courses: listing, fetching details, downloading files and submissions, plus complete video/PPT access (list, info, subtitles, slides, download). No obvious gaps for the stated purpose of browsing and downloading SJTU Canvas content.