Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
CANVAS_TOKENYesYour Canvas API token. Required for authentication.
CANVAS_BASE_URLYesThe base URL of your Canvas instance, e.g., https://your-school.instructure.com
CANVAS_TIMEZONENoYour timezone, e.g., America/Los_Angeles. Defaults to America/New_York if not set.America/New_York

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_courses

List Canvas courses. By default shows only active enrollments.

Args: include_all: If True, include concluded/past courses too.

get_upcoming_assignments

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_announcements

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_events

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_syllabus

Get the syllabus for a specific course.

Args: course_id: The Canvas course ID.

get_grades_summary

Get grade summary for enrolled courses.

Args: course_id: Optional course ID to filter. If omitted, shows all active courses.

get_grades_detailed

Get detailed per-assignment grades for a specific course.

Args: course_id: The Canvas course ID.

list_course_files

List all files in a Canvas course.

Args: course_id: The Canvas course ID.

download_file

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_files

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_files

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_path

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_files

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_assignment

Complete or submit an assignment in Canvas.

When online submission is available and no submission payload is provided, this tool responds with needs_input and tells the caller what is required. If no supported submission path exists, it attempts module item completion.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

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