Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
CANVAS_BASE_URLYesCanvas instance URL (e.g., https://school.instructure.com)
CANVAS_API_TOKENYesCanvas personal access token
CANVAS_PSEUDONYM_DIRNoAbsolute path that overrides the default pseudonym map directory
CANVAS_ALLOWED_ORIGINNoCORS origin for HTTP mode (default: http://localhost:3000)
CANVAS_PSEUDONYM_AUDIT_LOGNoPath to an append-only file that mirrors resolve_pseudonym audit lines
CANVAS_PSEUDONYMIZE_STUDENTSNoSet to 'true' to enable FERPA mode student pseudonymization
CANVAS_PSEUDONYMIZE_REVERSE_LOOKUPNoSet to 'true' (with CANVAS_PSEUDONYMIZE_STUDENTS=true) to register the resolve_pseudonym audit tool

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}
resources
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
health_checkA

Check if the Canvas API is reachable and the token is valid. Returns ok/error status.

list_coursesA

List courses for the authenticated user. include adds optional fields (teachers, total_students, term, syllabus_body, etc.). state[] narrows by course workflow state; enrollment_state narrows by the caller’s enrollment state.

get_courseA

Get details for a single course. Defaults to requesting term and total_students. Pass include to replace the default set with custom Canvas include[] fields (teachers, permissions, syllabus_body, sections, etc.).

get_syllabusA

Get the syllabus HTML body for a course.

create_courseA

Create a new course in a Canvas account. Returns the created course object.

update_courseA

Update an existing course. Only provided fields are changed; omitted fields are left as-is.

list_assignmentsA

List all assignments in a course. Use include to request submission, all_dates, overrides, score_statistics, etc. Use bucket to filter by past/upcoming/overdue/etc. Other filters: search_term, assignment_ids, order_by.

get_assignmentA

Get details for a single assignment by ID. Use include to request submission, overrides, all_dates, score_statistics, and other optional fields.

list_assignment_groupsA

List assignment groups (categories like Homework, Exams) in a course. Use include=assignments to nest assignments under each group; other includes add submission, overrides, score_statistics, etc.

create_assignmentA

Create a new assignment in a course.

update_assignmentB

Update an existing assignment in a course.

delete_assignmentA

Delete an assignment from a course. This action is permanent.

list_submissionsA

List all submissions for an assignment. Use include to attach user, assignment, rubric_assessment, submission_history, or visibility. Filter with student_ids, workflow_state, or grading_period_id. Defaults to including submission_comments.

get_submissionA

Get a single submission for a specific user on an assignment. Defaults to including submission_comments. Pass include to add rubric_assessment, submission_history, visibility, course, user, or read_status.

grade_submissionA

Post or update a grade for a submission. Requires grading permissions.

comment_on_submissionA

Add a text comment to a submission.

list_rubricsA

List all rubrics in a course.

get_rubricA

Get details for a single rubric by ID, including criteria.

get_rubric_assessmentA

Get the rubric assessment for a specific student submission on an assignment.

submit_rubric_assessmentA

Submit a rubric assessment with scores and comments for each criterion.

create_rubricA

Create a new rubric in a course with criteria and rating levels. Optionally link it to an assignment immediately.

list_quizzesA

List all quizzes in a course.

get_quizA

Get details for a single quiz by ID.

list_quiz_submissionsB

List all submissions for a quiz.

list_quiz_questionsB

List all questions in a quiz.

get_quiz_submission_answersA

Get a student's answers for a quiz submission.

score_quiz_questionA

Score a specific question in a quiz submission. Specify attempt to score a particular attempt (omit for latest). Requires grading permissions.

create_new_quizA

Create a New Quiz (LTI) in a Canvas course. New Quizzes is the modern quiz engine; for Classic quizzes use create_quiz.

update_new_quizA

Update an existing New Quiz (LTI) in a Canvas course.

delete_new_quizA

Delete a New Quiz (LTI) from a Canvas course. This action is permanent. Use assignment_id (not quiz_id).

list_new_quiz_itemsA

List all items (questions) in a New Quiz (LTI).

get_new_quiz_itemA

Get a single item (question) from a New Quiz (LTI) by item ID.

create_new_quiz_itemA

Create an item (question) in a New Quiz (LTI). Supports 5 types: choice (MCQ), true-false, essay, matching, numeric. Canvas may rate-limit rapid sequential creates. Call serially (not in parallel). For >50 items, chunk and pause between batches.

update_new_quiz_itemA

Update an existing item (question) in a New Quiz (LTI). All fields are optional; supply only what changes. Canvas may rate-limit rapid sequential updates. Call serially (not in parallel). For >50 items, chunk and pause between batches.

delete_new_quiz_itemA

Delete an item (question) from a New Quiz (LTI). This action is permanent.

list_filesB

List all files in a course.

list_foldersA

List all folders in a course.

get_fileA

Get metadata for a single file by ID, including download URL.

upload_fileA

Upload a file to a course. Content must be base64-encoded. Canvas performs a multi-step upload internally.

delete_fileA

Delete a file by ID. This action is permanent.

download_fileA

Download the content of a Canvas file by ID. Text files (plain text, HTML, JSON, XML, JavaScript) are returned as readable text. Binary files (images, PDFs, etc.) are returned as base64-encoded data. Files larger than 10 MB are refused.

list_gradebook_history_daysA

List the dates in a course gradebook history that contain grading activity, grouped by grader and assignment.

get_gradebook_history_dayA

Get the graders and assignment IDs that had gradebook activity on a specific course date.

list_gradebook_history_submissionsA

List versioned submission history for one grader and assignment on a specific gradebook history date.

get_gradebook_history_feedA

Get the paginated gradebook history feed for a course, optionally filtered by assignment or user and optionally sorted oldest-first.

list_studentsA

List all students enrolled in a course.

get_userA

Get details for a single user by ID.

get_profileA

Get the profile of the currently authenticated user.

search_usersA

Search for users in a Canvas account by name, login, or email. Use include to request email, last_login, avatar_url, time_zone, or uuid in the response.

list_course_usersA

List users in a course with optional Canvas filters. Use include to request email, enrollments, avatar_url, bio, and other fields otherwise omitted from the default response. Use enrollment_type / enrollment_state to narrow by role or status, search_term to filter by name/login, user_ids to fetch a specific subset, and sort/order to control ordering.

list_groupsA

List all groups in a course.

list_group_membersB

List all members of a group.

list_enrollmentsA

List all enrollments for the authenticated user across courses. Optional filters and includes mirror Canvas GET /users/self/enrollments.

list_course_enrollmentsA

List enrollments within a specific course with Canvas filters. Use include=grades / include=current_points for richer grade data, type[] to limit to a role, and user_id to focus on a single user.

enroll_userC

Enroll a user in a course with a specified role.

remove_enrollmentA

Remove or conclude an enrollment from a course. The 'delete' task is permanent; 'conclude' and 'deactivate' are reversible.

list_discussionsA

List all discussion topics in a course.

get_discussionA

Get details for a single discussion topic by ID.

list_announcementsA

List all announcements in a course.

post_discussion_entryB

Post a new entry (reply) to a discussion topic.

create_discussionA

Create a new discussion topic in a course.

update_discussionB

Update an existing discussion topic.

delete_discussionA

Delete a discussion topic from a course. This action is permanent.

list_modulesA

List all modules in a course.

get_moduleB

Get details for a single module by ID.

list_module_itemsB

List all items within a module.

get_course_structureA

Return the full module → items tree for a course in a single call, with summary stats. Avoids N+1 round-trips when an agent needs to reason over the whole course shape.

create_moduleB

Create a new module in a course.

update_moduleA

Update an existing module (rename, reposition, publish/unpublish).

create_module_itemA

Add an item (Assignment, Page, Quiz, File, Discussion, ExternalUrl, ExternalTool, SubHeader) to a module.

list_pagesA

List all wiki pages in a course.

get_pageA

Get a single wiki page by its URL slug.

create_pageB

Create a new wiki page in a course.

update_pageB

Update an existing wiki page.

delete_pageA

Delete a wiki page from a course. This action is permanent.

list_calendar_eventsA

List calendar events for a course.

create_calendar_eventB

Create a new calendar event in Canvas.

update_calendar_eventA

Update an existing calendar event. Only provided fields are changed.

list_conversationsA

List conversations (inbox messages) for the authenticated user.

get_conversationA

Get a single conversation with its full message thread.

get_conversation_unread_countA

Get the number of unread conversations for the authenticated user.

send_conversationA

Send a new conversation message to one or more recipients.

list_peer_reviewsA

List all peer reviews for an assignment in a course.

get_submission_peer_reviewsA

List peer reviews assigned to a specific submission.

create_peer_reviewB

Assign a user to peer-review a submission.

delete_peer_reviewA

Remove a peer review assignment from a submission. This action is permanent.

get_accountA

Get details for a Canvas account by ID.

list_accountsA

List all accounts accessible to the authenticated user.

list_sub_accountsB

List sub-accounts under a given Canvas account.

list_account_coursesA

List courses under a given Canvas account.

list_account_usersB

List users in a Canvas account.

get_account_reportsA

List available report types for a Canvas account.

search_course_contentA

Search for content within a course. Searches pages, assignments, discussions, and announcements by keyword.

get_course_analyticsA

Get course-level activity analytics. Returns daily page view and participation counts.

get_student_analyticsA

Get per-student activity analytics for a course. Returns page views, participations, and submission timeline for a specific student.

get_course_activity_streamA

Get a summary of recent activity in a course. Returns counts of recent events grouped by type (submissions, discussions, announcements, etc.).

get_root_outcome_groupB

Get the root outcome group for an account or course context.

list_outcome_groupsA

List all outcome groups for an account or course context.

list_outcome_group_linksB

List all outcome links in an account or course context.

get_outcome_groupA

Get details for a specific outcome group in an account or course context.

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/bruchris/canvas-lms-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server