Canvas MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CANVAS_BASE_URL | Yes | Base URL of the Canvas LMS instance | https://ciam.instructure.com |
| CANVAS_API_TOKEN | Yes | Canvas API token for authentication |
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
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| canvas_selfA | Return the current Canvas user for the configured token. |
| canvas_coursesC | List Canvas courses visible to the configured token. |
| canvas_course_assignmentsC | List assignments for a Canvas course. |
| canvas_upcoming_eventsC | List upcoming Canvas calendar events. |
| canvas_todoA | List Canvas todo items for the current user. |
| canvas_course_modulesC | List modules and module items for a Canvas course. |
| canvas_course_pagesB | List wiki pages for a Canvas course. |
| canvas_course_filesB | List files for a Canvas course, optionally scoped to a folder. |
| canvas_submissionsC | List submissions for an assignment or visible course submissions. |
| canvas_raw_getC | Run a read-only GET against a Canvas /api/v1/... path. |
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 10 tools
Each tool targets a distinct Canvas resource (courses, assignments, files, modules, pages, user info, submissions, todo, events, raw API access) with no overlap in purpose, making selection unambiguous for an agent.
All tools follow a consistent 'canvas_<resource>' snake_case pattern, using descriptive nouns. Even 'canvas_raw_get' and 'canvas_self' fit the pattern, with no mixing of conventions.
10 tools is well within the ideal range (3-15). The set covers common Canvas read operations without being excessive or insufficient for its scope.
The set provides comprehensive read coverage for Canvas (courses, assignments, files, modules, pages, submissions, todo, events) and includes a raw GET endpoint for flexibility. However, it lacks write operations (create, update, delete), which are absent from the tool descriptions.