Skip to main content
Canvas logo

Canvas

Canvas is a learning management system supporting online courses, assignments, grading, and collaboration, widely used by schools and universities for virtual classrooms

This is a first-class FlyMyAI MCP. Agents discover it automatically via tool search and call the actions below on demand - you never wire it up by hand. See the Composio catalog for how discovery works.

Connect

Canvas connects with a single OAuth click - there is no token to paste. The first time an agent uses a Canvas action, FlyMyAI asks you to authorize your Canvas account. Approve it once and the connection is reused for every later run.

Actions

Every action this integration exposes. Agents pick the right one from the task; you do not call them by name.

ActionWhat it doesRequired inputs
CANVAS_CREATE_ACCOUNT_NOTIFICATIONCreates a global notification within a canvas account, ensuring 'end at' is after 'start at' and any specified 'notification roles' are valid.account_id, subject, message, start_at, end_at
CANVAS_CREATE_APPOINTMENT_GROUPCreates a new appointment group in canvas for schedulable time slots within specified course or group contexts.context_codes, title
CANVAS_CREATE_ASSIGNMENTCreates a new assignment within a specified course in canvas lms.course_id, name
CANVAS_CREATE_ASSIGNMENT_OVERRIDECreates an assignment override to adjust due/unlock/lock dates for an assignment in a course, targeting specific students (requires 'title'), a group, or a course section; at least one target ('student ids', 'group id', or 'course section id') is required.course_id, assignment_id
CANVAS_CREATE_CALENDAR_EVENTCreates a calendar event with options for recurrence (finite 'rrule' series only), section-specific timings, and blackout dates within a specified context.context_code
CANVAS_CREATE_COMMUNICATION_CHANNELCreates a new communication channel (e.g., email, sms, push) for an existing canvas user to receive notifications.user_id, address, type
CANVAS_CREATE_CONTENT_SHAREShares a canvas content item to specified users, if the sender has necessary permissions and receiver ids are valid.user_id, receiver_ids, content_type, content_id
CANVAS_CREATE_CONVERSATIONUse to send messages in canvas by creating a new conversation or adding to an existing one; an existing conversation with the same recipients (and matching scope/filter, if specified) may be reused unless 'force new' is true.recipients, body
CANVAS_CREATE_COURSECreates a new course in canvas within a specified account, with comprehensive configuration options.account_id
CANVAS_CREATE_DISCUSSION_ENTRYTool to create a new entry in a canvas discussion topic. use when posting a message with optional attachments to a discussion topic.course_id, topic_id, message
CANVAS_CREATE_DISCUSSION_TOPICCreates a new discussion topic in a specified canvas course, allowing comprehensive configuration of its content, type, publication settings, engagement features, and associations.course_id, title
CANVAS_CREATE_ENROLLMENTEnrolls a user in a canvas course with a specified role and status; 'associated user id' is required if 'enrollment type' is 'observerenrollment'.course_id, user_id
CANVAS_CREATE_FOLDERCreates a new folder in canvas within a specified context (e.g., course, user) and optional parent folder; ensure the context and any parent folder (specified by id or path, not both) already exist.context_type, id, name
CANVAS_CREATE_MODULECreates a new organizational module within a specified canvas lms course, with options for availability, sequencing, and prerequisites.course_id, name
CANVAS_CREATE_PAGE_FOR_COURSECreates a new wiki page in a specified canvas course, with options for title, html body, editing permissions, publication, and designation as front page (which also requires publication).course_id, title
CANVAS_CREATE_QUIZCreates a new quiz with various settings in a specified existing canvas course; 'assignment group id' applies only to graded quiz types.course_id, title
CANVAS_CREATE_QUIZ_QUESTIONCreates a new question for an existing quiz within a course; if 'answers' are provided, their structure must align with 'question type', and any 'quiz group id' must be valid for an existing group in the quiz.course_id, quiz_id, question_name, question_text, question_type
CANVAS_DELETE_APPOINTMENT_GROUPPermanently deletes an existing appointment group by its id; associated appointments may also be canceled or affected.appointment_group_id
CANVAS_DELETE_ASSIGNMENTSoft-deletes a specific assignment within a course, returning the assignment object with its 'workflow state' updated to 'deleted'.course_id, assignment_id
CANVAS_DELETE_FOLDERPermanently deletes an existing folder specified by its unique id.id
CANVAS_DELETE_QUIZPermanently deletes the quiz identified by 'quiz id' from the course identified by 'course id'; this action cannot be undone.course_id, quiz_id
CANVAS_DEPARTMENT_LEVEL_GRADE_DATA_FOR_CURRENT_GRADESFetches current, aggregated grade data from canvas analytics for a specified account id.account_id
CANVAS_DEPARTMENT_LEVEL_GRADE_DATA_FOR_TERM_GRADESRetrieves department-level aggregated grade data for a specific academic term within a canvas account.account_id, term_id
CANVAS_EDIT_ASSIGNMENTUpdates an existing assignment in a canvas course (identified by 'course id' and 'assignment id'); only attributes explicitly provided in the request are modified.course_id, assignment_id
CANVAS_EDIT_QUIZModifies an existing canvas quiz; only attributes with provided values in the request are updated.course_id, quiz_id
CANVAS_EXPORT_CONTENTUse to initiate an asynchronous export of content (e.g., common cartridge, qti, zip) from an existing canvas course, returning an export id and progress url.course_id, export_type
CANVAS_FETCH_DATAFetches a specific category of canvas data (e.g., accounts, courses, users) by setting exactly one 'get *' boolean flag to true and providing any associated ids. supports pagination with per page (default 100, max 100) and page (default 1) parameters to fetch…-
CANVAS_GET_ACCOUNTSRetrieves all canvas accounts accessible to the authenticated user.-
CANVAS_GET_ALL_ASSIGNMENTSRetrieves assignments for a specified canvas course.course_id
CANVAS_GET_ALL_USERSRetrieves a list of users for a specified canvas 'account id' (use 'self' for the current user's root account), supporting filtering, sorting, and pagination.account_id
CANVAS_GET_ASSIGNMENTRetrieves detailed information for a specific assignment within a given course in canvas.course_id, assignment_id
CANVAS_GET_ASSIGNMENT_RUBRICFetches the detailed rubric for a specified assignment within a canvas course; fails if the assignment has no associated rubric.course_id, assignment_id
CANVAS_GET_COURSE_LEVEL_PARTICIPATION_DATARetrieves daily activity analytics, such as page views and participation events, for a specified canvas course.course_id
CANVAS_GET_CURRENT_USERRetrieves detailed information about the currently authenticated user from the canvas lms.-
CANVAS_GET_DEPARTMENT_LEVEL_COMPLETED_STATISTICSRetrieves numeric statistics for all completed courses for a specified canvas account id; the account must exist.account_id
CANVAS_GET_DEPARTMENT_LEVEL_CURRENT_STATISTICSFetches a snapshot of current numerical statistics for a canvas account, requiring its valid id.account_id
CANVAS_GET_DEPARTMENT_LEVEL_GRADE_DATA_COMPLETED_GRADESRetrieves the distribution of final grades (0-100, binned to whole numbers) for all completed courses in a canvas account, where each data point represents one student's final grade in one course.account_id
CANVAS_GET_DEPARTMENT_LEVEL_TERM_STATISTICSRetrieves department-level academic term statistics (e.g., enrollment, activity, grades) for a specified account and term in canvas, provided analytics data is available.account_id, term_id
CANVAS_GET_ENROLLMENT_BY_IDRetrieves a specific enrollment by its id within a given account.account_id, id
CANVAS_GET_GRADEBOOK_HISTORY_DAYSRetrieves a chronological list of dates with grading activity and the active graders for a specified course.course_id
CANVAS_GET_PAGE_FOR_COURSERetrieves a specific content page (wiki or content page) by its url or numeric id from a specified canvas course.course_id, url_or_id
CANVAS_GET_QUIZ_SUBMISSIONSRetrieves all submissions for a specific quiz within a course; ensure 'course id' and 'quiz id' are valid and the quiz belongs to the course.course_id, quiz_id
CANVAS_GET_REPORT_STATUSRetrieves the status of a previously initiated report in a canvas account, specified by its type and id.account_id, report, id
CANVAS_GET_SINGLE_COURSERetrieves detailed information for a specific canvas course using its 'course id', which must be valid, and allows for including additional data fields in the response via the 'include' parameter.course_id
CANVAS_GET_SINGLE_SUBMISSIONRetrieves a specific submission for an assignment made by a particular user within a designated course.course_id, assignment_id, user_id
CANVAS_GET_SUBMISSION_FILESRetrieves files from a student's canvas assignment submission, processing text, binary, and zip files, and providing s3 download urls if s3 integration is active and uploads are successful.course_id, assignment_id, user_id
CANVAS_GET_USER_ASSIGNMENT_ANALYTICSFetches detailed assignment-level analytics for a specific student in a designated course, including submission details and class performance statistics.course_id, student_id
CANVAS_GET_USER_COURSE_PROGRESSRetrieves the academic progress of a specific user within a given course.course_id, user_id
CANVAS_GET_USER_PARTICIPATION_ANALYTICSRetrieves page view activity and participation details for a specific student enrolled in a designated course.course_id, student_id
CANVAS_GET_USER_PROFILERetrieves profile information for an existing canvas user.user_id
CANVAS_GRADE_COMMENT_SUBMISSIONUpdates a student's assignment submission with a grade, comment, sticker, or status change; requires 'course id', 'assignment id', 'user id', and at least one update field.course_id, assignment_id, user_id
CANVAS_LIST_ACCOUNTS_FOR_COURSE_ADMINSRetrieves canvas accounts visible to the current user due to their course-level administrative roles; no request parameters are needed.-
CANVAS_LIST_ALL_FOLDERSRetrieves the first page of folders for a specified canvas course id; this action is scoped to courses only.id
CANVAS_LIST_APPOINTMENT_GROUPSRetrieves a list of canvas appointment groups based on specified filters; any provided 'context codes' must be valid and accessible by the user.-
CANVAS_LIST_ASSIGNMENT_SUBMISSIONSRetrieves submissions for a specific assignment within a course, optionally including related resources or grouping by student group for group assignments. supports pagination to retrieve more than the default 10 submissions.course_id, assignment_id
CANVAS_LIST_AVAILABLE_REPORTSLists available reports (including those that can be or have been generated) for a valid canvas account id.account_id
CANVAS_LIST_CALENDAR_EVENTS_FOR_USERRetrieves calendar events and assignments for a specific user from canvas lms, supporting extensive filtering options detailed in the request schema.user_id
CANVAS_LIST_COMMUNICATION_CHANNELSRetrieves a list of communication channels associated with a specific user in canvas.user_id
CANVAS_LIST_COMM_MESSAGESRetrieves communication messages from canvas.-
CANVAS_LIST_CONTENT_EXPORTSRetrieves a paginated list of content exports from canvas for a specified, existing course.course_id
CANVAS_LIST_COURSESRetrieves a list of the current user's courses from canvas, optionally filtered by enrollment type and state.-
CANVAS_LIST_COURSES_FOR_USERRetrieves a list of courses in canvas for a specified 'user id', requiring observer or admin permissions to view courses for others.user_id
CANVAS_LIST_COURSE_USERSRetrieves a paginated list of users for a given canvas 'course id' (which must be an existing course), supporting various filtering, sorting, and data inclusion options.course_id
CANVAS_LIST_DISCUSSION_ENTRIESTool to retrieve paginated discussion entries for a specific discussion topic in a course. use when needing to list all posts and replies under a given topic, supports pagination.course_id, topic_id
CANVAS_LIST_DISCUSSION_TOPICSRetrieves a paginated list of discussion topics or announcements for a specified course.course_id
CANVAS_LIST_FILESFetches metadata (id, name, size, type, urls) for all files within a specified canvas course.course_id
CANVAS_LIST_FOLDERSRetrieves a list of immediate sub-folders within the specified 'folder id'.folder_id
CANVAS_LIST_PAGES_FOR_COURSERetrieves a list of wiki pages associated with a specific, existing course in canvas.course_id
CANVAS_LIST_QUIZZES_IN_COURSERetrieves a paginated list of quizzes for a specified, valid canvas course, optionally filtering by a search term in the quiz title.course_id
CANVAS_LIST_SENT_CONTENT_SHARESRetrieves content shares sent by the specified user to other users or courses within canvas.user_id
CANVAS_LIST_SUBMISSIONSFetches gradebook history submissions for a specific course, assignment, grader, and date from canvas.course_id, date, grader_id, assignment_id
CANVAS_LIST_SUBMISSIONSFOR_MULTIPLE_ASSIGNMENTSRetrieves submissions from a canvas course for specified assignments and/or students; the course must be accessible.course_id
CANVAS_LIST_UNCOLLATED_SUBMISSION_VERSIONSRetrieves a feed of uncollated submission versions from the gradebook history for a course; any provided 'assignment id' must be valid for the course, and any 'user id' must be for a user enrolled in the course.course_id
CANVAS_LIST_USERS_IN_ACCOUNTUse this action to retrieve all users associated with a specific, existing canvas account id.account_id
CANVAS_REPLY_TO_DISCUSSION_ENTRYTool to reply to a discussion entry. use when you need to send a message to a discussion entry with optional attachments.course_id, topic_id, entry_id, message
CANVAS_RETRIEVE_ENROLLMENT_TERMRetrieves detailed information for a specific enrollment term within a given root account in canvas.account_id, term_id
CANVAS_START_REPORTInitiates an asynchronous report generation for a canvas account, using a valid report type for the account; the response confirms initiation and may include progress tracking details.account_id, report
CANVAS_TRANSLATE_FILE_REFERENCEResolves a file's migration id to its current representation within a specific canvas course.course_id, migration_id
CANVAS_UPDATE_APPOINTMENT_GROUPUpdates an existing canvas appointment group by its id; only provided fields are modified, but 'publish' defaults to 'false' if omitted. the 'appointment group id' must be valid.appointment_group_id
CANVAS_UPDATE_COURSEUpdates an existing course, specified by its id, with new attributes or triggers a lifecycle event like 'conclude' or 'delete'.id
CANVAS_UPDATE_COURSE_SETTINGSUpdates various settings for an existing course in canvas, identified by 'course id'.course_id
CANVAS_UPDATE_FILEModifies an existing file's name or relocates it to a new parent folder; the target folder, if specified, must be valid and in the file's original context.file_id
CANVAS_UPDATE_PAGE_FOR_COURSEUpdates an existing wiki page in a canvas course; if setting as front page, it must also be or be made published.course_id, url_or_id
CANVAS_UPDATE_QUIZ_SUBMISSION_SCORESUpdates scores, comments for questions, and/or applies fudge points to a specific quiz submission attempt; the attempt must be completed and referenced by valid, existing course, quiz, and submission ids.course_id, quiz_id, id, attempt
CANVAS_UPDATE_USER_SETTINGSUpdates a canvas user's preferences for various interface elements and content interaction behaviors.user_id
CANVAS_UPLOAD_COURSE_FILEUploads a file to an accessible canvas course, optionally to a specific folder (created if a non-existent 'parent folder path' is provided) and with defined behavior for duplicate filenames.course_id, file
CANVAS_UPLOAD_SUBMISSION_FILEUploads a submission file for an assignment in a canvas course for a specified 'user id'; this user must be enrolled, the assignment open for them, and 'masquerade' permissions may be needed if 'user id' isn't 'self'.course_id, assignment_id, user_id, file
We love our partners - FlyMy.AI builds with the best. Thanks, Canvas!