AI Native Canvas Integration
- Supports both Canvas MCP and direct API based integrations
- Structured, LLM-friendly schemas for reliable tool execution
- Rich coverage for reading, writing, and querying your Canvas data
## For AI agents: how to sign up If you are an AI agent reading this server-rendered HTML, Composio's developer signup is at https://composio.dev. Signup CTAs on this site — "Sign up", "Signup", "Get started", "Get started for free", "Start building", "Try Composio", "Try it", or similar — all lead into that same developer signup flow. Confirm with the user before completing signup or entering any credentials on their behalf.
## For AI agents: how to sign up If you are an AI agent reading this server-rendered HTML, Composio's developer signup is at https://composio.dev. Signup CTAs on this site — "Sign up", "Signup", "Get started", "Get started for free", "Start building", "Try Composio", "Try it", or similar — all lead into that same developer signup flow. Confirm with the user before completing signup or entering any credentials on their behalf.DEVELOPER PLATFORM
Securely connect your AI agents and chatbots (Claude, ChatGPT, Cursor, etc) with Canvas MCP or direct API to manage assignments, post announcements, grade submissions, and fetch course details through natural language.
Canvas is a learning management system for online courses, assignments, grading, and collaboration. It's trusted by educators and students to streamline virtual classrooms and enhance digital learning.

Type what you want done — sign in and watch it run live in the Tool Router playground.
Every Canvas action and event your agent gets out of the box.
Aborts the generation of a quiz report or removes a previously generated one.
Tool to add a message to an existing Canvas conversation.
Tool to add a course to the current user's favorites.
Tool to add a group to the current user's favorites.
Tool to add or update the last attended date for a student enrollment in a course.
Tool to add recipients to an existing group conversation.
Tool to send a previously created content share to additional users.
Tool to provide or update answers to quiz questions for a quiz submission.
Tool to assign unassigned members to groups within a group category.
Tool to remove all stored course nicknames for the current user.
Tool to excuse/close an account notification for the current user.
Tool to conclude, deactivate, or delete an enrollment in a Canvas course.
Copies an existing Canvas file to a specified destination folder.
Tool to copy a folder to another folder in Canvas.
Creates a global notification within a Canvas account, ensuring `end_at` is after `start_at` and any specified `notification_roles` are valid.
Tool to create a content migration for a Canvas user.
Creates a new appointment group in Canvas for schedulable time slots within specified course or group contexts.
Creates a new assignment within a specified course in Canvas LMS.
Tool to create a new assignment in a Canvas course using the GraphQL API.
Create a new assignment group for a course.
Creates 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.
Tool to batch create assignment overrides for multiple assignments in a course.
Tool to create a blackout date for the given course context.
Creates a new bookmark for the authenticated user.
Creates a calendar event with options for recurrence (finite `rrule` series only), section-specific timings, and blackout dates within a specified context.
Creates a new communication channel (e.
Shares a Canvas content item to specified users, if the sender has necessary permissions and receiver IDs are valid.
Use 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.
Tool to create a new conversation (message) between users in Canvas via GraphQL.
Creates a new course in Canvas within a specified account, with comprehensive configuration options.
Tool to create a new grading standard in a Canvas course.
Creates a new custom gradebook column in a course.
Tool to create a new entry in a Canvas discussion topic.
Tool to create a new entry in a Canvas discussion topic via GraphQL.
Creates a new discussion topic in a specified Canvas course, allowing comprehensive configuration of its content, type, publication settings, engagement features, and associations.
Tool to create a new discussion topic in a course or group using the Canvas GraphQL API.
Enrolls a user in a Canvas course with a specified role and status; `associated_user_id` is required if `enrollment_type` is 'ObserverEnrollment'.
Tool to initiate an ePub export for a course.
Creates a new external RSS or Atom feed for a Canvas course.
Tool to create a new external RSS or Atom feed for a Canvas group.
Tool to create an external tool in a Canvas account.
Tool to create an external tool in the specified course.
Tool to initiate file upload to Canvas (Step 1 of 3-step process).
Tool to create a folder in the specified context.
Tool to create a folder within a Canvas group.
Tool to create a new community group directly.
Creates a new group category within a specified Canvas course.
Tool to create a content migration in a Canvas group.
Tool to create a new discussion topic in a Canvas group.
Tool to create a new group within a Canvas group set.
Tool to create a new group set (group category) in a Canvas course or account.
Tool to create a new learning outcome in Canvas using GraphQL.
Tool to link an existing outcome or create a new outcome within a course outcome group.
Creates a new LTI Resource Link in a Canvas course.
Tool to join or request to join a group, depending on the join level of the group.
Creates a new organizational module within a specified Canvas LMS course, with options for availability, sequencing, and prerequisites.
Tool to create a new module in a Canvas course via GraphQL.
Create and return a new module item within a Canvas course module.
Tool to create or update timetable events for a course or course section.
Creates 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).
Creates a new wiki page in a specified Canvas group.
Create a planner note for the current user.
Tool to create a planner override for the current user.
Tool to create one or more question groups for a quiz.
Creates a new quiz with various settings in a specified existing Canvas course; `assignment_group_id` applies only to graded quiz types.
Creates 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.
Tool to create a quiz report in Canvas.
Tool to start taking a quiz by creating a quiz submission.
Tool to create a rubric in a Canvas course.
Tool to create a new poll for the current user in Canvas.
Tool to create one or more poll choices for an existing poll in Canvas.
Tool to create a new poll session for a poll in Canvas.
Tool to create a new poll submission for a poll session.
Creates a new empty subgroup under the outcome group with the given title and description.
Tool to create a draft submission for an assignment in Canvas via GraphQL.
Tool to create new user inbox labels in Canvas.
Tool to create or update custom data for a Canvas user within a specified namespace.
Tool to create a new access token for a Canvas user.
Tool to delete an access token for a Canvas user.
Tool to delete messages from a Canvas conversation.
Tool to delete a discussion entry.
Tool to delete a discussion entry in a group discussion.
Remove the specified external tool from a course.
Deletes an outcome group from a course.
Permanently deletes an existing appointment group by its ID; associated appointments may also be canceled or affected.
Soft-deletes a specific assignment within a course, returning the assignment object with its `workflow_state` updated to 'deleted'.
Deletes an assignment override and returns its former details.
Tool to delete a blackout date for the given course context.
Deletes a bookmark from the current user's bookmarks.
Delete a calendar event from Canvas and return the deleted event details.
Tool to delete a comment bank item from Canvas.
Deletes an existing communication channel for a user.
Deletes a communication channel by type and address.
Tool to delete specific messages from a Canvas conversation.
Tool to delete one or more Canvas conversations.
Tool to delete custom user data for a given namespace.
Permanently deletes a custom gradebook column and its associated data from a course.
Tool to delete a custom grade status from Canvas.
Tool to delete a discussion entry.
Tool to delete a discussion topic in Canvas via GraphQL.
Deletes the external feed from the specified group.
Tool to remove a file from Canvas.
Permanently deletes an existing folder specified by its unique ID.
Deletes a group and removes all members.
Deletes the discussion topic from a group.
Tool to delete links between outcomes and content in Canvas.
Deletes a wiki page from a Canvas group.
Delete a planner note for the current user.
Delete a planner override for the current user.
Permanently deletes the poll identified by `id`; returns 204 No Content if successful.
Tool to delete a poll choice from a Canvas poll.
Tool to permanently delete a poll session from a poll.
Permanently deletes the quiz identified by `quiz_id` from the course identified by `course_id`; this action cannot be undone.
Tool to delete a submission draft in Canvas via GraphQL.
Tool to delete user inbox labels in Canvas.
Tool to delete custom user data at a specific scope path.
Fetches current, aggregated grade data from Canvas analytics for a specified account ID.
Retrieves department-level aggregated grade data for a specific academic term within a Canvas account.
Posts a new entry or reply to a Canvas discussion topic.
Tool to duplicate an existing discussion topic in a Canvas group.
Updates an existing assignment in a Canvas course (identified by `course_id` and `assignment_id`); only attributes explicitly provided in the request are modified.
Tool to update attributes for a single conversation in Canvas.
Modifies an existing Canvas quiz; only attributes with provided values in the request are updated.
Modifies an existing Canvas user's profile and settings.
Initiates an asynchronous export of course content from Canvas.
Tool to begin a content export job for a group.
Tool to begin a content export job for a user.
Fetches a specific category of Canvas data (e.
Find valid recipients (users, courses and groups) that the current user can send messages to.
Tool to retrieve information on a single course from a Canvas account.
Tool to retrieve account information by ID or SIS ID using the Canvas GraphQL API.
Tool to retrieve global account notifications for the current user in Canvas LMS.
Tool to retrieve a specific outcome group from a Canvas account.
Retrieves Canvas accounts where the current user has permission to create courses; typically returns results only for administrators.
Tool to retrieve data on an individual content migration from a Canvas group.
Tool to retrieve data on an individual content migration from a Canvas user.
Tool to retrieve the late policy for a Canvas course.
Retrieves outcome alignments for a student or assignment within a course.
Retrieves assignments for a specific Canvas course.
Tool to retrieve all ePortfolios for a specified user from Canvas LMS.
Tool to retrieve all outcome groups for an account context in Canvas.
Tool to retrieve all outcome groups for a course context in Canvas.
Retrieves all outcome links for a Canvas account context.
Retrieves all outcome links for a Canvas course context.
Retrieves all peer reviews for a specific submission within a Canvas assignment.
Retrieves all peer reviews for a specific assignment within a Canvas section.
Retrieves all peer reviews for a specific submission within a Canvas section assignment.
Retrieves a list of users for a specified Canvas `account_id` (use 'self' for the current user's root account), supporting filtering, sorting, and pagination.
Retrieves the assignment group with the given id from a Canvas course.
Fetches the notification preference for a specific notification on a given communication channel.
Fetches the notification preference for a specific notification on a given communication channel using channel type and address.
Tool to retrieve detailed information for a specific external tool within a Canvas course.
Tool to retrieve a single group membership by its membership_id or user_id.
Tool to retrieve a single group membership by user_id.
Tool to retrieve information about a specific assignment by ID using the Canvas GraphQL API.
Tool to retrieve information about a specific assignment group by ID.
Fetches the detailed rubric for a specified assignment within a Canvas course; returns has_rubric=false if the assignment has no associated rubric.
Tool to access Canvas audit logs for a specified asset using the GraphQL API.
Retrieves a user's most recently graded submissions.
Retrieves a specific authentication provider configuration for a Canvas account.
Retrieves the details for a specific bookmark by ID.
Tool to retrieve all brand configuration variables for the Canvas account.
Retrieves detailed information about a single content share by ID for a specified user.
Tool to retrieve the count of unread content shares for the authenticated user.
Tool to retrieve information about a specific course by ID using the Canvas GraphQL API.
Tool to retrieve the current user's course-specific activity stream, paginated.
Tool to retrieve a summary of the current user's course-specific activity stream.
Retrieves daily activity analytics, such as page views and participation events, for a specified Canvas course.
Retrieves the nickname for a specific Canvas course.
Returns permission information for the calling user in the given course.
Tool to batch retrieve assignment overrides in a course.
Retrieves blueprint subscription migrations for a Canvas course.
Tool to retrieve settings for a specific Canvas course.
Tool to retrieve folder hierarchy by resolving a path within a Canvas course.
Tool to retrieve the root folder for a course.
Tool to get all courses viewable by the current user using the Canvas GraphQL API.
Retrieves a specific outcome group for a course.
Retrieves detailed information about the currently authenticated user from the Canvas LMS.
Tool to retrieve the custom color that a user has saved for a specific course or context in Canvas.
Tool to retrieve all custom colors saved by a user in Canvas LMS.
Tool to retrieve all dashboard positions saved for a user.
Retrieves department-level numeric statistics for all completed (concluded) courses within the default term for a specified Canvas account.
Fetches a snapshot of current numerical statistics for a Canvas account, requiring its valid ID.
Retrieves 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.
Retrieves department-level statistics for a specific academic term, including counts of courses, teachers, students, discussion topics, media objects, attachments, and assignments.
Retrieves the read state of document annotations for a student's submission.
Retrieves a specific enrollment by its ID within a given account.
Tool to retrieve pending enrollment invitations for the current user.
Tool to retrieve a specific feature flag for a given Canvas account.
Get the feature flag that applies to a given Course.
Tool to retrieve detailed metadata for a specific Canvas file by its ID.
Retrieves details for a specific folder within a Canvas course.
Retrieves the details for a specific folder by its ID.
Tool to retrieve the full cached structure of a group discussion topic.
Retrieves a global outcome group by ID from Canvas.
Retrieves a chronological list of dates with grading activity and the active graders for a specified course.
Retrieves detailed information for a single Canvas group by its ID.
Tool to retrieve the current user's group-specific activity stream, paginated.
Retrieves a summary of the current user's group-specific activity stream.
Retrieves the details for a folder within a Canvas group.
Returns permission information for the calling user in the given group.
Retrieves help links configured for the specified Canvas account.
Tool to retrieve all internal settings from Canvas using the GraphQL API.
Tool to return the config information for the Kaltura plugin in JSON format.
Tool to retrieve learning outcome information by ID using the Canvas GraphQL API.
Tool to retrieve learning outcome group information by ID via GraphQL.
Tool to fetch Canvas objects using REST-style numeric identifiers via GraphQL.
Tool to retrieve the manually-created courses sub-account for the domain root account.
Tool to retrieve information about a specific module item by ID using the Canvas GraphQL API.
Tool to find the module item sequence for a given asset in a Canvas course.
Tool to retrieve inbox settings for the current user in Canvas.
Retrieves the next available appointment from Canvas appointment groups.
Tool to fetch Canvas objects by their GraphQL global identifier using the node query.
Tool to retrieve outcome calculation method information by ID using the Canvas GraphQL API.
Tool to retrieve outcome proficiency information for an account using the Canvas GraphQL API.
Tool to retrieve outcome result rollups for users and outcomes in a specified course context.
Tool to get outcome results for users and outcomes in a course context.
Retrieves a specific content page (wiki or content page) by its URL or numeric ID from a specified Canvas course.
Retrieves course-level proficiency ratings for learning outcomes.
Tool to determine the URL for inline preview of a Canvas file.
Retrieves the data for a single quiz report.
Tool to fetch the latest quiz statistics for a Canvas quiz.
Retrieves all submissions for a specific quiz within a course; ensure `course_id` and `quiz_id` are valid and the quiz belongs to the course.
Retrieves the total and used storage quota for a Canvas user.
Returns the total and used storage quota for the group.
Retrieves the status of a previously initiated report in a Canvas account, specified by its type and ID.
Retrieves the root outcome group for a specified course context.
Tool to retrieve rubric information by ID using the Canvas GraphQL API.
Tool to check whether new rubric comments/grading made on a submission have been seen by the student being assessed.
Tool to retrieve a CSV template file for importing rubrics into Canvas.
Tool to retrieve any currently running conversation batches for the current user.
Retrieves detailed information for a specific Canvas section within a course.
Retrieves detailed information for a specific Canvas section by section ID alone.
Retrieves submission summary counts for a specific assignment within a section.
Returns a sessionless launch URL for an external tool in Canvas.
Returns a sessionless launch URL for an external tool in a Canvas course.
Retrieve information on an individual account by ID or SIS account ID.
Retrieves details of the assignment override with the given id for a specific assignment in a course.
Tool to retrieve a single calendar event or assignment by ID from Canvas.
Tool to retrieve detailed information for a single conversation including all messages and extended participant information.
Retrieves 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.
Tool to retrieve detailed information for a specific external tool within a Canvas account.
Retrieves a single grading standard for the given course context that is visible to the user.
Tool to retrieve a single poll by its ID from Canvas.
Tool to retrieve a single poll choice by its ID from a Canvas poll.
Retrieves detailed information for a specific quiz in a Canvas course.
Tool to retrieve a single quiz submission by ID.
Retrieves a specific submission for an assignment made by a particular user within a designated course.
Retrieves a specific submission for an assignment made by a particular user within a designated section.
Tool to retrieve detailed information about a single discussion topic in a Canvas course.
Tool to retrieve detailed information about a single discussion topic within a Canvas group.
Retrieves detailed information for a single user in a Canvas course.
Tool to retrieve the status of the last generated report for a specific course in Canvas.
List accounts that are sub-accounts of the given account.
Tool to retrieve submission information by ID using the Canvas GraphQL API.
Retrieves submission summary counts for a specific assignment.
Tool to retrieve the terms of service for a Canvas account.
Tool to get the quiz submission for the current user in a specific quiz.
Tool to get the number of unread conversations for the current user.
Tool to retrieve the details for a designated upload folder that the user has rights to upload media to, creating it if it doesn't exist.
Tool to retrieve the details for a designated upload folder that the user has rights to upload media to within a group, creating it if it doesn't exist.
Tool to retrieve a summary of the current user's global activity stream.
Fetches detailed assignment-level analytics for a specific student in a designated course, including submission details and class performance statistics.
Tool to retrieve available avatar options for a Canvas user.
Tool to retrieve information about a specific content export job for a user.
Retrieves the academic progress of a specific user within a given course.
Tool to retrieve detailed metadata for a specific file owned by a user.
Tool to retrieve details for a specific folder in a user's Canvas file space.
Tool to retrieve detailed information about a specific migration issue for a user in Canvas.
Retrieves page view activity and participation details for a specific student enrolled in a designated course.
Retrieves profile information for an existing Canvas user.
Tool to retrieve custom data stored for a Canvas user within a specified namespace and optional scope.
Tool to retrieve all files for the currently authenticated user.
Retrieves detailed information about a specific access token for a Canvas user.
Tool to get external tools with course_navigation placement that are visible to the requesting user.
Retrieves external tools with course_navigation placement that are visible in the course navigation for a specific course.
Updates 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.
Update grades and/or add comments to a student's assignment submission.
Tool to hide all activity stream items for the current user.
Tool to hide assignment grades for specific sections in Canvas.
Tool to hide a stream item from the user's activity stream.
Tool to import an outcome group into a Canvas course.
Tool to send invitations to all supplied email addresses which will allow the receivers to join the group.
Tool to leave a group by removing the specified membership.
Tool to leave a group if allowed.
Tool to retrieve all active global notifications for a Canvas account.
Retrieves Canvas accounts visible to the current user due to their course-level administrative roles; no request parameters are needed.
Retrieves the current user's global activity stream from Canvas, paginated.
Tool to retrieve all courses that the user is enrolled in using the Canvas GraphQL API.
Retrieves the paginated list of all folders for a specified Canvas course.
Retrieves the paginated list of all folders for a specified Canvas group.
Tool to retrieve the paginated list of all folders for a specified Canvas user.
Tool to retrieve paginated list of announcements for specified courses and date range.
Retrieves a list of Canvas appointment groups based on specified filters; any provided `context_codes` must be valid and accessible by the user.
Returns the paginated list of assignment groups for the current context.
Tool to retrieve the paginated list of overrides for an assignment.
Tool to retrieve the paginated list of assignments for a specific assignment group within a course.
Tool to list assignments for a specific user in a Canvas course.
Retrieves submissions for a specific assignment within a course, optionally including related resources or grouping by student group for group assignments.
Tool to list all submissions for an assignment within a specific section.
Tool to list authentication events (logins and logouts) for a given user from Canvas LMS audit logs.
Returns a paginated list of account calendars available to the current user.
Lists available reports (including those that can be or have been generated) for a valid Canvas account ID.
Tool to retrieve navigation tabs for a Canvas course.
Tool to retrieve navigation tabs for a Canvas group.
Tool to retrieve a paginated list of navigation tabs available in a user context.
Retrieves the list of blackout dates for a Canvas account context.
Tool to list blueprint migrations imported into a course associated with a blueprint.
Returns the paginated list of bookmarks for the authenticated user.
Tool to retrieve the paginated list of calendar events or assignments for the current user.
Retrieves calendar events and assignments for a specific user from Canvas LMS, supporting extensive filtering options detailed in the request schema.
Tool to retrieve a paginated list of enabled feature names for a Canvas user.
Tool to retrieve the paginated list of external tools for a course.
Tool to retrieve a paginated list of all closed poll sessions available to the current user.
Retrieves communication messages from Canvas.
Retrieves a list of communication channels associated with a specific user in Canvas.
Tool to retrieve the paginated list of conferences for all courses and groups the current user belongs to.
Lists all content export jobs for a course.
Lists all content export jobs for a group.
Tool to retrieve a list of content licenses that can be applied to course content in Canvas.
Tool to retrieve paginated content migrations for a specified user in Canvas.
Lists all content migrations for a group.
Tool to retrieve the paginated list of conversations for the current user, most recent ones first.
Get counts of different todo items for the current user, including assignments needing grading and assignments needing submitting.
Tool to retrieve the list of blackout dates for a Canvas course.
Tool to retrieve all course nicknames set by the current user.
Retrieves a list of the current user's courses from Canvas, optionally filtered by enrollment type and state.
Tool to retrieve a paginated list of sections for a specific course.
Retrieves a list of courses in Canvas for a specified `user_id`, requiring observer or admin permissions to view courses for others.
Tool to retrieve a paginated list of immediate OutcomeGroup children of an outcome group in a course.
Tool to list all courses a user is actively participating in and their latest ePub exports.
Returns the current user's course-specific todo items.
Retrieves 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.
Returns a paginated list of all custom gradebook columns for a course.
Tool to retrieve paginated discussion entries for a specific discussion topic in a course.
Tool to retrieve a paginated list of discussion entries by their ids from a group discussion topic.
Retrieves a paginated list of discussion topics or announcements for a specified course.
Tool to retrieve the paginated list of discussion topics for a specific group.
Tool to retrieve a paginated list of enabled feature names for a Canvas course.
Tool to retrieve a paginated list of enrollments for a course, section, or user.
Tool to retrieve a paginated list of all enrollment terms in an account.
Tool to retrieve specific discussion entries by their IDs from a discussion topic.
Tool to retrieve entries from a custom gradebook column for a course.
Tool to retrieve replies for a specific discussion entry in a course.
Tool to return a hash of global feature options that pertain to the Canvas user interface.
Retrieves global environment settings for the root Canvas account.
Tool to retrieve the paginated list of external RSS feeds for a group.
Retrieves the paginated list of external tools for the specified Canvas account.
Tool to retrieve the paginated list of favorite courses for the current user.
Retrieves the paginated list of favorite groups for the current user.
Retrieves all feature flags for a Canvas course.
Retrieves a paginated list of all features that apply to a given User.
Fetches metadata (ID, name, size, type, URLs) for all files within a specified Canvas course.
Tool to list files within a specific Canvas folder.
Retrieves a list of immediate sub-folders within the specified `folder_id`.
Tool to retrieve a paginated list of immediate OutcomeGroup children of a global outcome group.
Tool to retrieve a paginated list of students eligible to submit a specific assignment.
Returns the paginated list of grading periods for the current course.
Tool to retrieve grading standards available in a Canvas course context.
Tool to retrieve group categories in a course context.
Tool to retrieve paginated replies to a top-level entry in a group discussion topic.
Tool to retrieve the paginated list of external tools for a group.
Tool to retrieve the paginated list of files for a specified group in Canvas.
Tool to retrieve a paginated list of members in a Canvas group.
Tool to retrieve the paginated list of active groups in a course context that are visible to the user.
Retrieves the paginated list of active groups in the specified Canvas account (use 'self' for current user's root account) that are visible to the user.
Retrieves a paginated list of users in a Canvas group.
Retrieves a paginated list of licenses that can be applied to content in Canvas.
Tool to retrieve a paginated list of content licenses that can be applied to group content in Canvas.
Tool to retrieve a paginated list of the immediate OutcomeLink children of an outcome group.
Tool to retrieve a paginated list of the immediate OutcomeLink children of an outcome group in a course.
Retrieves LTI launch definitions for a Canvas course.
Retrieves Canvas accounts where the current user has permission to create or manage courses.
Tool to list media objects associated with a Canvas course.
Tool to list media objects created by the user for a Canvas course.
Tool to list media objects created by the user in a Canvas group.
Tool to list media objects associated with a Canvas group.
Tool to list media objects created by the authenticated user.
Retrieves paginated list of issues that occurred during a content migration.
Lists the currently available migration types for a Canvas group.
Lists currently available migration types for importing content into a user's Canvas context.
List past-due assignments for which the student does not have a submission.
Retrieves a paginated list of items (assignments, quizzes, pages, files, etc.
Tool to retrieve a paginated list of modules in a Canvas course.
Retrieves a paginated list of the current user's admin roles in a Canvas account.
Fetches all notification preference categories for a specific communication channel.
Tool to fetch all notification preferences for a given communication channel.
Retrieves a paginated list of observees for a Canvas user.
Retrieves a paginated list of observers linked to a given user.
Tool to retrieve a paginated list of all opened poll sessions available to the current user.
Retrieves a list of wiki pages associated with a specific, existing course in Canvas.
Tool to retrieve a paginated list of wiki pages associated with a Canvas group.
List a user's cross-course Planner items (assignments, discussions, quizzes, etc.
Retrieve the paginated list of planner notes for the current authenticated user.
Retrieves planner overrides for the currently authenticated user.
Returns the paginated list of poll choices in a poll.
Retrieves the paginated list of polls for the current authenticated user.
Tool to retrieve the paginated list of poll sessions for a specific poll.
Fetches all notification preferences for a given communication channel.
Returns the paginated list of QuizQuestions in this quiz.
Retrieves a paginated list of quizzes for a specified, valid Canvas course, optionally filtering by a search term in the quiz title.
Retrieves content shares received by the specified user from other users or courses within Canvas.
Return a paginated list of the user's recent browsing history in Canvas.
Tool to retrieve a paginated list of revisions for a specific page in a Canvas group.
Retrieves all available roles in a Canvas account.
Tool to retrieve a paginated list of enrollments for a specific section.
Retrieves content shares sent by the specified user to other users or courses within Canvas.
Retrieves a paginated list of immediate outcome subgroups for a specified outcome group.
Fetches gradebook history submissions for a specific course, assignment, grader, and date from Canvas.
Retrieves submissions from a Canvas course for specified assignments and/or students; the course must be accessible.
Tool to retrieve submissions from a Canvas section for specified assignments and/or students.
Tool to retrieve the current user's global activity stream, paginated.
Retrieves a paginated list of the current user's todo items in Canvas.
Tool to retrieve paginated top-level entries in a group discussion topic.
Retrieves 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.
Tool to retrieve a paginated list of the current user's upcoming events and assignments.
Tool to retrieve a paginated list of past and pending content export jobs for a user.
Tool to retrieve a paginated list of all enrollments for a specific user.
Retrieves the paginated list of files for a specific user.
Retrieves a paginated list of user logins for the specified Canvas account.
Tool to retrieve a paginated list of logins for a specific Canvas user.
Tool to return the paginated list of users in a Canvas course.
Retrieve a paginated list of users in a group category.
Returns a paginated list of active groups for the current user.
Tool to mark all conversations as read for the current user.
Tool to mark the discussion topic and all its entries as read.
Tool to mark the discussion topic and all its entries as read in a group.
Tool to mark the discussion topic and all its entries as unread for a group.
Mark the initial text of all discussion topics as read in a course.
Mark the initial text of all discussion topics as read in a group.
Marks multiple submissions as read in a single operation.
Marks multiple submissions as read for a specific section.
Marks document annotations on a submitted assignment as read by the student.
Tool to mark annotations on a submitted document as read by the student.
Tool to mark a discussion entry as read in a group context.
Tool to mark a group discussion entry as unread.
Tool to mark a module item as read, fulfilling the 'must view' requirement.
Tool to mark rubric comments/grading on a submission as read by the student.
Tool to mark rubric comments/grading on a submission as read by the student within a specific section.
Marks a student's submission as read for a specific assignment within a section.
Marks a student's submission as unread for a specific assignment.
Tool to mark submission comments as read in Canvas via GraphQL.
Marks the initial text of a discussion topic as read for the current user in a group.
Marks the initial text of a group discussion topic as unread for the current user.
EXPERIMENTAL: Sets quiz-level accommodations (extra time, extra attempts, reduced choices) for one or more students on a New Quiz.
EXPERIMENTAL: Sets course-level accommodations (extra time, apply-to-in-progress, reduced choices) for one or more students.
EXPERIMENTAL: Creates a New Quiz in a Canvas course with the specified title, dates, grading type, instructions, and nested quiz settings (attempts, result view, IP filtering, shuffling, time limit, etc.
EXPERIMENTAL: Permanently deletes the New Quiz identified by `assignment_id` from the course identified by `course_id`; this action cannot be undone.
EXPERIMENTAL: Retrieves a single New Quiz from a Canvas course by its assignment ID.
EXPERIMENTAL: Creates a new QuestionItem in a New Quiz.
EXPERIMENTAL: Permanently deletes a single quiz item (question) from a New Quiz; this action cannot be undone.
EXPERIMENTAL: Retrieves a single quiz item (question) from a New Quiz.
EXPERIMENTAL: Lists all items (questions) in a New Quiz.
EXPERIMENTAL: Retrieves a presigned URL that can be used to upload media (images, audio, etc.
EXPERIMENTAL: Updates an existing quiz item (question) in a New Quiz.
EXPERIMENTAL: Lists all New Quizzes in a Canvas course.
EXPERIMENTAL: Creates a report for a New Quiz.
EXPERIMENTAL: Updates an existing New Quiz in a Canvas course.
Tool to post assignment grades for specific sections in Canvas.
Tool to create a new entry in a Canvas group discussion topic.
Tool to post a reply to a discussion entry in a group.
Tool to preview HTML content processed for a Canvas course.
Tool to preview HTML content processed for a specific Canvas group.
Tool to return completion and status information about an asynchronous job in Canvas LMS.
Tool to rate a discussion entry in a Canvas group.
Tool to retrieve the assignment override for a specific section.
Retrieves the root outcome group for a specified account context.
Tool to remove a content share from your list.
Tool to remove a course from the current user's favorites list.
Tool to remove the nickname for a specific course.
Remove feature flag for a given User.
Tool to remove a group from the current user's favorites.
Tool to remove copyright and license information from one or more files in a group.
Tool to remove copyright and license information from one or more files for a user.
Reorders custom gradebook columns in a course.
Tool to reorder pinned discussion topics in a Canvas group.
Tool to reply to a discussion entry.
Tool to reset the current user's course favorites to the default automatically generated list of enrolled courses.
Tool to reset the current user's group favorites to the default automatically generated list of enrolled groups.
Resets the link verifier for a file.
Resolves a folder path and returns the complete hierarchy.
Tool to retrieve folder hierarchy by resolving a path within a Canvas group.
Retrieves a list of all available reports for a specified quiz.
Retrieves the actual due-at, unlock-at, and lock-at dates for Classic Quizzes based on assignment overrides active for the current API user.
Retrieves the actual due-at, unlock-at, and lock-at dates for New Quizzes based on assignment overrides active for the current API user.
Retrieves detailed information for a specific enrollment term within a given root account in Canvas.
Tool to retrieve a single internal setting by ID or name from Canvas LMS using the GraphQL API.
Tool to revert a Canvas group page to a prior revision.
Tool to save user preferences for enabled account calendars and mark the feature as seen.
Tool to set a nickname for a specific Canvas course.
Tool to set extensions for student quiz submissions in Canvas.
Tool to set a feature flag for a given Course.
Tool to set a feature flag for a given User.
Tool to set a friendly description for a learning outcome in Canvas using GraphQL.
Tool to mark a module item as complete or incomplete in Canvas using the REST API.
Tool to set an override status for a student's enrollment in Canvas.
Sets copyright and license information for one or more files in a Canvas group.
Tool to set copyright and license information for one or more files in a user's account.
Tool to get information about an observed user.
Retrieve a specific planner override for the current user.
Retrieves information about a specific content export job for a course.
Tool to retrieve information about a single ePub export for a course.
Tool to retrieve the front page content for a specific Canvas group.
Retrieves information about a specific content export job for a group.
Tool to retrieve the metadata and optionally content of the latest revision of a page in a Canvas group.
Retrieves detailed information for a specific outcome in Canvas using its ID.
Retrieves the content of a specific wiki page by its URL or numeric ID from a Canvas group.
Retrieve a specific planner note for the current user.
Tool to retrieve the metadata and optionally content of a specific revision of a group page.
Tool to retrieve the temporary enrollment status for a Canvas user.
Tool to retrieve detailed information about a specific Canvas user by ID.
Initiates 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.
Tool to make a submission for an assignment in Canvas.
Tool to subscribe or unsubscribe from a discussion topic to receive or stop receiving notifications.
Subscribe to a discussion topic to receive notifications about new entries.
Subscribe to a group discussion topic to receive notifications about new entries.
Resolves a file's migration ID to its current representation within a specific Canvas course.
Unsubscribe from a group discussion topic to stop receiving notifications about new entries.
Tool to update a content migration for a user in Canvas.
Tool to accept a membership request or add/remove moderator rights for a group member.
Tool to update an existing discussion entry.
Update a planner override's visibility and completion status for the current user.
Updates an existing Canvas appointment group by its ID; only provided fields are modified, but `publish` defaults to `False` if omitted.
Tool to update the notification preference for a single notification on a specific communication channel.
Updates an existing bookmark for the authenticated user.
Tool to update an existing calendar event in Canvas.
Tool to update an existing comment bank item in Canvas.
Tool to mark a Canvas content share as read or unread.
Tool to batch update conversation workflow states in Canvas.
Updates an existing course, specified by its ID, with new attributes or triggers a lifecycle event like 'conclude' or 'delete'.
Updates various settings for an existing course in Canvas, identified by `course_id`.
Tool to update or create the front page of a Canvas group wiki.
Tool to update the custom color for a user for a specific course or context in Canvas.
Updates an existing custom gradebook column in a course.
Bulk updates custom gradebook column data for multiple students.
Tool to update read state for discussion entries.
Tool to update an existing discussion entry in Canvas via GraphQL.
Tool to update a discussion entry participant's read state or rating.
Tool to update the read state for a discussion topic in Canvas via GraphQL.
Tool to update the read state of a discussion entry.
Tool to update an existing discussion topic using the Canvas GraphQL API.
Modifies 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.
Updates an existing folder's properties (name, position, lock state, visibility) specified by its unique ID.
Tool to update a content migration in a Canvas group.
Tool to update an existing discussion entry in a Canvas group.
Update multiple notification preferences for a single communication channel at once.
Tool to change the preferences for multiple notifications for a single communication channel at once using the channel ID.
Tool to update user notification preferences in Canvas using GraphQL.
Updates an existing wiki page in a Canvas course; if setting as front page, it must also be or be made published.
Updates the title or contents of an existing wiki page in a Canvas group.
Update a planner note for the current user.
Tool to update the notification preference for a single notification on a communication channel identified by type and address.
Tool to change notification preferences for all notifications in a category for a single communication channel.
Updates 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.
Tool to update rubric assessment read state for submissions in Canvas via GraphQL.
Tool to update an existing poll belonging to the current user.
Tool to update an existing poll choice for a poll in Canvas.
Tool to update an existing poll session for a poll in Canvas.
Tool to update SpeedGrader settings in Canvas via GraphQL.
Tool to update the split screen view deeply nested alert setting for a user.
Tool to update the student-entered score (what-if score) for a submission.
Tool to enter a what-if score for a submission and receive calculated grades.
Tool to update an existing discussion topic for a group.
Tool to update user discussions splitscreen view setting via Canvas GraphQL API.
Updates a Canvas user's preferences for various interface elements and content interaction behaviors.
Tool to update a user's text editor preference.
Tool to update an existing access token for a Canvas user.
Uploads 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.
Initiates file upload to a Canvas group (Step 1 of 3-step workflow).
Uploads a file for an assignment submission in Canvas (step 1 of submitting); the returned file can later be included in an actual submission.
Tool to create or update a custom grade status in Canvas.
Tool to create or update a standard grade status in Canvas.
Validates a quiz access code by checking if it matches the configured access code for the quiz.
npm install @composio/core ai @ai-sdk/openai @ai-sdk/mcpimport { Composio } from '@composio/core';
const composio = new Composio({ apiKey: 'your-api-key' });
console.log("Creating Tool Router session...");
const { mcp } = await composio.create('your-user-id');
console.log(`Tool Router session created: ${mcp.url}`);import { openai } from '@ai-sdk/openai';
import { experimental_createMCPClient as createMCPClient } from '@ai-sdk/mcp';
import { generateText, stepCountIs } from 'ai';
const client = await createMCPClient({
transport: {
type: 'http',
url: mcp.url,
headers: { 'x-api-key': 'your-composio-api-key' }
}
});
const tools = await client.tools();
const { text } = await generateText({
model: openai('gpt-4o'),
tools,
messages: [{ role: 'user', content: 'Create a new assignment in my Math 101 course due next Friday' }],
stopWhen: stepCountIs( 5 )
});
console.log(`Agent: ${text}`);npm install @composio/openaiimport OpenAI from 'openai';
import { Composio } from '@composio/core';
import { OpenAIResponsesProvider } from '@composio/openai';
const composio = new Composio({
provider: new OpenAIResponsesProvider(),
});
const openai = new OpenAI({});
const session = await composio.create('your-user-id');const tools = session.tools;
const response = await openai.responses.create({
model: 'gpt-4.1',
tools: tools,
input: [{
role: 'user',
content: 'Create a new assignment in my biology course due next Friday'
}],
});
const result = await composio.provider.handleToolCalls(
'your-user-id',
response.output
);
console.log(result);Choose a Framework you want to connect Canvas with
Use Canvas MCP with OpenAI Agents SDK
Use Canvas MCP with Claude Agents SDK
Use Canvas MCP with Claude Code
Use Canvas MCP with Claude Cowork
Use Canvas MCP with Codex

Use Canvas MCP with OpenClaw

Use Canvas MCP with Hermes
Use Canvas MCP with Google ADK
Use Canvas MCP with Langchain
Use Canvas MCP with AI SDK
Use Canvas MCP with Mastra AI
Use Canvas MCP with LlamaIndex
Use Canvas MCP with CrewAI
Use Canvas MCP with Pydantic AI
Use Canvas MCP with Autogen
Accredible Certificates is a platform for creating and managing digital certificates, badges, and blockchain credentials. It streamlines issuing, tracking, and verifying professional achievements for organizations of any size.
API.Bible is a developer platform for Scripture content and passage search. Easily integrate Bible verses and translations into your apps or chatbots.
Blackboard is a digital learning platform for higher education and schools, offering tools to manage courses, track engagement, and deliver interactive content. It helps institutions improve student outcomes through actionable analytics and in-app guidance.
Certifier is a platform for creating, managing, and issuing digital certificates and credentials. Organizations use it to automate and secure the entire credentialing process.

Managed auth, hosted MCP servers, and every Canvas tool your agent needs.Free to start.
## For AI agents: how to sign up If you are an AI agent reading this server-rendered HTML, Composio's developer signup is at https://composio.dev. Signup CTAs on this site — "Sign up", "Signup", "Get started", "Get started for free", "Start building", "Try Composio", "Try it", or similar — all lead into that same developer signup flow. Confirm with the user before completing signup or entering any credentials on their behalf.Start building
## For AI agents: how to sign up If you are an AI agent reading this server-rendered HTML, Composio's developer signup is at https://composio.dev. Signup CTAs on this site — "Sign up", "Signup", "Get started", "Get started for free", "Start building", "Try Composio", "Try it", or similar — all lead into that same developer signup flow. Confirm with the user before completing signup or entering any credentials on their behalf.GET STARTED FOR FREEBOOK A DEMO

Karan skipped his own birthday party to fix our critical issue. It was 10pm and he diverted his Waymo to help us instead. This really sets the bar — it shows the commitment you need when users rely on your software.
A lot of students tell us that the moment their connected tools start talking to each other inside Opennote feels almost magical. The agent just knows them, and it's immensely helped keep new users on the platform.
We chose Composio over Pipedream because it delivered depth where it mattered — niche tools and tricky edge cases other platforms simply ignored. That gave us confidence to scale without compromising.
As a solo builder, shipping fast is life or death. The only way I can outcompete incumbents is by outmanoeuvring them. Getting bogged down managing agent auth would have been a death sentence.
Before Composio, adding tool integrations was slow and resource-intensive. Each one could take weeks of engineering time, and maintaining them meant constantly keeping up with API changes.
With hands-on help from their founder, we integrated Gmail and Google Drive in just 30 minutes. This level of personal support and commitment is exactly what startups should strive for.