canvas-control
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CANVAS_TOKEN | Yes | Your Canvas API token. Required for authentication. | |
| CANVAS_BASE_URL | Yes | The base URL of your Canvas instance, e.g., https://your-school.instructure.com | |
| CANVAS_TIMEZONE | No | Your timezone, e.g., America/Los_Angeles. Defaults to America/New_York if not set. | America/New_York |
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
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_coursesA | List Canvas courses. By default shows only active enrollments. Args: include_all: If True, include concluded/past courses too. |
| get_upcoming_assignmentsA | Get upcoming assignments that are due within a time window. Args: course_id: Optional course ID to filter. If omitted, checks all active courses. days_ahead: Number of days ahead to look for due dates (default 14). |
| get_announcementsA | Get recent announcements from Canvas courses. Args: course_id: Optional course ID to filter. If omitted, gets from all active courses. limit: Maximum number of announcements to return (default 10). |
| get_calendar_eventsA | Get calendar events within a time window. Args: course_id: Optional course ID to filter. If omitted, gets events from all contexts. days_ahead: Number of days ahead to look (default 14). |
| get_syllabusB | Get the syllabus for a specific course. Args: course_id: The Canvas course ID. |
| get_grades_summaryA | Get grade summary for enrolled courses. Args: course_id: Optional course ID to filter. If omitted, shows all active courses. |
| get_grades_detailedB | Get detailed per-assignment grades for a specific course. Args: course_id: The Canvas course ID. |
| list_course_filesC | List all files in a Canvas course. Args: course_id: The Canvas course ID. |
| download_fileA | Download a single file from Canvas by file ID. Args: file_id: The Canvas file ID. destination: Optional local path. Defaults to ~/Downloads/. |
| search_course_filesA | Search for files in a Canvas course by name, extension, or folder. Use this as a preview step before downloading — show the user what would be downloaded and let them confirm. Args: course_id: The Canvas course ID. query: Case-insensitive substring to match in file display name or filename. file_type: File extension to filter by (e.g. "pdf", "docx"). Leading dot is stripped. folder: Case-insensitive substring to match in the Canvas folder path. |
| download_selected_filesA | Download a batch of specific Canvas files to a local directory. Skips files that already exist at the destination (safe to re-run). Args: file_ids: List of Canvas file IDs to download (from search_course_files). destination: Local directory path to save files to. ~ is expanded. |
| set_download_pathA | Save a download path to the config file for future use. Args: destination: Local directory path to persist. ~ is expanded. course_id: Optional course ID. If provided, saves a per-course path. If omitted, saves the global default download path. |
| sync_course_filesA | Sync (download) all files for a Canvas course to the local filesystem. Behaves like "git pull" for course files — downloads new/changed files and skips unchanged ones. Set force=True to re-download everything. Args: course_id: The Canvas course ID to sync. force: If True, overwrite existing files even if unchanged. sources: Content sources to include. Defaults to all (files, assignments, discussions, pages, modules). destination: Optional local directory path to save files to. ~ is expanded. Overrides the configured course path and default destination. |
| complete_assignmentA | Complete or submit an assignment in Canvas. When online submission is available and no submission payload is provided,
this tool responds with |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/tomtranjr/canvas-control'
If you have feedback or need assistance with the MCP directory API, please join our Discord server