mcp-server-canvas-lms
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CANVAS_BASE_URL | Yes | Your institution's Canvas base URL, e.g., https://canvas.example.edu. Do not include /api/v1. | |
| CANVAS_API_TOKEN | Yes | Your Canvas personal access token. |
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": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| canvas_list_coursesA | Read-only Canvas LMS access. All requests use Canvas GET endpoints; this server cannot modify Canvas. List active courses, terms, and available current scores. |
| canvas_list_assignmentsB | Read-only Canvas LMS access. All requests use Canvas GET endpoints; this server cannot modify Canvas. List assignments for one course or all active courses. |
| canvas_get_assignmentA | Read-only Canvas LMS access. All requests use Canvas GET endpoints; this server cannot modify Canvas. Read one assignment's requirements, rubric, and submission summary. |
| canvas_get_gradesA | Read-only Canvas LMS access. All requests use Canvas GET endpoints; this server cannot modify Canvas. Read grade totals or one course's assignment breakdown. |
| canvas_get_submissionA | Read-only Canvas LMS access. All requests use Canvas GET endpoints; this server cannot modify Canvas. Read the current user's submission, comments, and rubric assessment. |
| canvas_get_syllabusA | Read-only Canvas LMS access. All requests use Canvas GET endpoints; this server cannot modify Canvas. Read one course syllabus as cleaned text. |
| canvas_list_announcementsA | Read-only Canvas LMS access. All requests use Canvas GET endpoints; this server cannot modify Canvas. List recent announcements for one or all active courses. |
| canvas_list_modulesA | Read-only Canvas LMS access. All requests use Canvas GET endpoints; this server cannot modify Canvas. List one course's modules and module items. |
| canvas_get_pageB | Read-only Canvas LMS access. All requests use Canvas GET endpoints; this server cannot modify Canvas. Read one course page by its Canvas page URL slug. |
| canvas_list_filesA | Read-only Canvas LMS access. All requests use Canvas GET endpoints; this server cannot modify Canvas. List files in one course with an optional search term. |
| canvas_read_fileA | Read-only Canvas LMS access. All requests use Canvas GET endpoints; this server cannot modify Canvas. Read or safely download one file that belongs to a course. |
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 11 tools
Each tool targets a distinct Canvas resource: courses, assignments, grades, submissions, syllabus, announcements, modules, pages, and files. The list/get/read prefixes make the action and target clear, so there is no ambiguity between tools.
All tool names follow a uniform canvas_verb_noun pattern (e.g., canvas_list_courses, canvas_get_assignment, canvas_read_file). The consistent prefix and verb usage make the API surface predictable and easy to navigate.
With 11 tools, the server covers a broad range of read-only Canvas operations without being bloated. Each tool serves a clear purpose in the context of a learning management system, and the count is well within the ideal range.
For a read-only Canvas server, the tool set covers the core student-facing resources: courses, assignments, grades, submissions, syllabus, announcements, modules, pages, and files. Missing endpoints like calendar events or discussions are minor gaps that agents can work around, but the surface is largely complete for its stated purpose.