Codex is one of the most popular coding harnesses out there. And MCP makes the experience even better. With the Canvas MCP integration, Codex can manage courses and modules, create assignments and quizzes, grade submissions, run discussions, and message students, all without leaving the terminal or the app, whichever you prefer.
- UseBuildFeaturesTRIGGERSStart background agents from events across your connected appsFIREWALLNEWBlocks instructions hidden in tool results before your agent reads themINSTANTNEWAudio, video, search, browser and data tools, with no keys to manageOPTIMIZATIONLower cost per completed task with optimised tools and skills
- DOCS
## 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.SIGN UP
## 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.LOG IN

How to integrate Canvas MCP with Codex
Connect Codex to Canvas MCP. Create a new assignment for your math course, send a message to all students in biology 101, and more using natural language, with authentication handled for you.
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.
Connect Canvas without auth hassles
We manage OAuth, API keys, token refresh, and scopes — you just build.
Explore the MCP Gateway→Introduction
Also integrate Canvas with
Why use Composio?
Apart from a managed and hosted MCP server, you will get:
- CodeAct: A dedicated workbench that allows GPT to write its code to handle complex tool chaining. Reduces to-and-fro with LLMs for frequent tool calling.
- Large tool responses: Handle them to minimise context rot.
- Dynamic just-in-time access to 20,000 tools across 1500+ other Apps for cross-app workflows. It loads the tools you need, so GPTs aren't overwhelmed by tools you don't need.
How to install Canvas MCP in Codex
Run the setup command
Run this command in your terminal to add the Composio MCP server to Codex.
It will initiate the authentication in a browser window, authorize Codex to access your Composio account.

(Optional) Authenticate with OAuth
To authenticate manually, run the login command to open a browser window and authorize Codex to access your Composio account.
codex mcp login composioVerify the connection
Run codex mcp list to confirm Composio appears as a registered MCP server.
codex mcp listCodex App
Codex App follows the same approach as VS Code.
- Click ⚙️ on the bottom left → MCP Servers → + Add servers → Streamable HTTP:
- Fill the header and Key fields with
{ "x-consumer-api-key" = "ck_*******" }. - The Key is the Composio API key, that you can find on dashboard.composio.dev
- Click on Authenticate and authorize Codex to your Composio account and you're all set.
- Restart and verify if it's there in
.codex/config.toml
[mcp_servers.composio]
url = "https://connect.composio.dev/mcp"
http_headers = { "x-consumer-api-key" = "ck_*******" }Try it
Ask Codex for a Canvas task. The first time, Composio asks you to connect your Canvas account.
For example, ask it to:
- "Create a new assignment for your math course"
- "Send a message to all students in Biology 101"
- "Schedule office hours as a calendar event"
What is the Canvas MCP server, and what's possible with it?
The Canvas MCP server is an implementation of the Model Context Protocol that connects your AI agent and assistants like Claude, Cursor, etc directly to your Canvas account. It provides structured and secure access to your courses, assignments, planner, activity, and users, so your agent can create courses, review assignments, track tasks, manage course settings, and organize groups on your behalf.
- Course creation and management: Have your agent create courses, list current or favorite courses, and update course settings.
- Assignment and planner tracking: Let the agent retrieve course assignments, review a learner's assigned work, and list planner items across courses for a chosen date range.
- Task and activity monitoring: Instruct your agent to show your Canvas activity, summarize recent updates, list to do items, and check how many assignments need submission or grading.
- User and group organization: Direct your agent to list people enrolled in a course, view user details, and assign unassigned members to groups.
- Learning outcomes and reporting: Have your agent create learning outcomes and check the status of the latest course report.
Conclusion
You've successfully integrated Canvas with Codex using Composio's MCP server. Now you can interact with Canvas directly from your terminal, VS Code, or the Codex App using natural language commands.
Key benefits of this setup:
- Seamless integration across CLI, VS Code, and standalone app
- Natural language commands for Canvas operations
- Managed authentication through Composio
- Access to 20,000+ tools across 1500+ apps for cross-app workflows
- CodeAct workbench for complex tool chaining
Next steps:
- Try asking Codex to perform various Canvas operations
- Explore cross-app workflows by connecting more toolkits
- Build automation scripts that leverage Codex's AI capabilities
Supported Tools and Triggers
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, with a visibility period and optional recipient roles.
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 group category in 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.
Creates a 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.
Creates or requests individual or bulk membership in a Canvas group, depending on its join level.
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.
Creates or replaces a user's custom JSON data at the root of 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.
Deletes an entry from a Canvas course discussion.
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.
Deletes a Canvas calendar event and returns its 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.
Deletes all custom user data in a specified namespace for a user.
Permanently deletes a custom gradebook column and its associated data from a course.
Tool to delete a custom grade status from Canvas.
Deletes a Canvas discussion entry via GraphQL.
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.
Deletes the poll identified by its ID and returns a success flag when the request succeeds.
Deletes a specific poll choice from a Canvas poll.
Deletes a poll session from a Canvas 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.
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 summarized IDs and names for one category of Canvas data, such as accounts, courses, or users, selected by exactly one get_* flag and any required IDs.
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.
Lists ePortfolios for a specified Canvas user, paginated.
Retrieves a page of learning outcome groups for a Canvas account context, with a next-page token when available.
Retrieves a page of learning outcome groups for a specific Canvas course, with a next-page token when available.
Retrieves a page of outcome links for a Canvas account, representing relationships between outcomes and outcome groups.
Retrieves a page of outcome links for a Canvas course, representing relationships between outcomes and outcome groups.
Retrieves a page of peer reviews for a specific submission within a Canvas assignment, with a next-page token when available.
Retrieves a page of peer reviews for a specific assignment within a Canvas section, with a next-page token when available.
Retrieves a page of peer reviews for a specific submission within a Canvas section assignment, with a next-page token when available.
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.
Retrieves the unread content share count for a specified Canvas user, defaulting to 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.
Batch retrieves course assignment overrides using paired override and assignment IDs; unequal lists are truncated to the shorter length.
Lists blueprint subscription migrations for an associated Canvas course, with pagination.
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 statistics for completed courses in the default term of 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 for completed courses in a Canvas account.
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 Canvas account.
Retrieves a page of the current user's enrollments, defaulting to pending invitations.
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.
Fetch a supported Canvas object by type and REST-style numeric ID 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.
Finds the module item sequence for a Canvas course asset using a numeric asset ID.
Tool to retrieve inbox settings for the current user in Canvas.
Retrieves the next available appointment from Canvas appointment groups.
Fetches a Canvas object by its 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.
Retrieves outcome result rollups for users and outcomes in a course, including optional course aggregates.
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 data for a single quiz report, including available status and report file information for a previously generated report.
Tool to fetch the latest quiz statistics for a Canvas quiz.
Retrieves a page of submissions for a specific quiz within a course, with a next-page token when available.
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 a Canvas account.
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.
Retrieve a Canvas conversation with 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.
Lists sub-accounts of a Canvas account, with optional recursive retrieval.
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.
Retrieves a page of available avatar options for a Canvas user, including uploaded images and default options.
Tool to retrieve information about a specific content export job for a user.
Retrieves a user's progress in a Canvas course, including module requirement counts and completion details.
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 student in a Canvas 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.
Lists a page of files in the authenticated user's personal file storage.
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.
Lists global notifications for a Canvas account, paginated.
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 a paginated, flat list of folders for a specified Canvas group, including nested subfolders.
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.
Lists a page of submissions for an assignment within a specific section, with pagination for subsequent pages.
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 blackout dates for a Canvas account context.
Lists blueprint migrations imported into an associated course, with pagination.
Returns the paginated list of bookmarks for the authenticated user.
Retrieves a paginated list of calendar events or assignments for the current user, with filters such as date ranges and context codes.
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 content export jobs for a course, one page at a time.
Lists content export jobs for a group, one page at a time.
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 content migrations for a group, one page at a time.
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.
Lists a page of courses the user is actively participating in with their latest ePub exports and export status.
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.
Retrieves paginated top-level discussion entries for a course discussion topic.
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.
Retrieves discussion entries by ID from a course topic; access may require an initial post.
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 a page of file metadata for a specified Canvas course, with a next-page token for retrieving further results.
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.
Retrieves a paginated list of group categories for a Canvas course, with an optional collaboration-state filter.
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 a paginated list of active groups visible to the user in a Canvas account, with membership and collaboration-state filters.
Retrieves a paginated list of users in a Canvas group.
Retrieves a paginated list of licenses that can be applied to content in Canvas.
Retrieves content licenses available for a specific Canvas group's content.
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 a paginated list of issues for a content migration in a user's Canvas context.
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 a paginated list of content shares received by a specified Canvas user.
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.
Lists roles in a Canvas account, with optional state and inherited-role filters.
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 the first page of immediate outcome subgroups for an account's outcome group and may return a next-page number.
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.
Retrieves 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.
Retrieves the first page of past and pending content export jobs for a user, returned newest first, along with a next-page indicator when available.
Tool to retrieve a paginated list of all enrollments for a specific user.
Retrieves the paginated list of files for a specific user.
Retrieves the first page of user logins for a 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.
Retrieves a page of users in a group category, optionally searching or filtering for unassigned users.
Returns a paginated list of active groups for the current user.
Tool to mark all conversations as read for the current user.
Marks a course discussion topic and all its entries as read for the current user.
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 in a Canvas course 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.
Replies to a discussion entry in a Canvas course, with optional attachments.
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.
Sets extensions for student quiz submissions in a course, including extra attempts, extra time, and extensions to a quiz's end time.
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.
Sets or clears a custom grade override status for a student's enrollment, optionally for a grading period.
Sets copyright and license information for files in a Canvas group, including files selected through folders.
Sets copyright and license information for files in a Canvas user's account, including files selected through folders.
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.
Retrieve a Canvas user's temporary enrollment status, including provider, recipient, and permission indicators.
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.
Subscribes 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.
Unsubscribes 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.
Updates the message of an existing Canvas course 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.
Updates the current user's notification preference for a single notification on a specific communication channel, changing its delivery frequency.
Updates an existing bookmark for the authenticated user.
Updates a Canvas calendar event's details, such as title, description, timing, or location.
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 student and column combinations in a course.
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.
Updates multiple notification preferences for one of the authenticated user's communication channels, identified by channel type and address.
Updates multiple notification preferences for one of the authenticated user's communication channels by 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.
Updates the frequency preference for a single notification on a communication channel belonging to the authenticated user, identified by type and address.
Changes the notification frequency for a category on a single communication channel belonging to the authenticated user.
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.
Updates an existing poll belonging to the current user, supplying its question and optionally its description.
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.
How to build Canvas MCP Agent with another framework
Claude Code
Use Canvas MCP with Claude Code
Claude Cowork
Use Canvas MCP with Claude Cowork
OpenAI Agents SDK
Use Canvas MCP with OpenAI Agents SDK
Claude Agent SDK
Use Canvas MCP with Claude Agent SDK

Grok Bot
Use Canvas MCP with Grok Bot

Muse
Use Canvas MCP with Muse

OpenClaw
Use Canvas MCP with OpenClaw

Hermes
Use Canvas MCP with Hermes
Atomic Agent
Use Canvas MCP with Atomic Agent
Google ADK
Use Canvas MCP with Google ADK
LangChain
Use Canvas MCP with LangChain
Vercel AI SDK
Use Canvas MCP with Vercel AI SDK
Mastra AI
Use Canvas MCP with Mastra AI
LlamaIndex
Use Canvas MCP with LlamaIndex
CrewAI
Use Canvas MCP with CrewAI
Pydantic AI
Use Canvas MCP with Pydantic AI
AutoGen
Use Canvas MCP with AutoGen
Explore Other Toolkits
Accredible certificates
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
API.Bible is a developer platform for Scripture content and passage search. Easily integrate Bible verses and translations into your apps or chatbots.
Blackboard
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
Certifier is a platform for creating, managing, and issuing digital certificates and credentials. Organizations use it to automate and secure the entire credentialing process.
Frequently asked questions

Start with Canvas.It takes 30 seconds.
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