Connectors · Learning & education
Canvas LMS MCP server for AI agents.
actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to Canvas LMS and the rest of your systems. It gives your agent 1,098 Canvas LMS actions (551 reads, 420 writes and 127 that wait for a confirmation) and holds the Canvas LMS credential itself, so the agent never does. It paces Canvas LMS's limits and records every call.
100,000 free calls a month. No card, no email, no password: press Start a free sandbox on the next screen and keep the key it shows you.
claude mcp add --transport http actionlake https://connect.actionlake.com/mcpdo { action: "canvas_lms.calendar_events.list_calendar_events", intent: "check which Canvas LMS account is connected"}# List calendar events · read · 1 upstream call- 1,098actionsin one signed file
- 551readlook, never change
- 420writecreate and update
- 127wait for a yesdestructive, confirmed first
Set up
Connect Canvas LMS in three steps.
- 01
Add actionlake to Claude.
Run the command once in Claude Code; its consent page can create a free sandbox: 100,000 calls a month, no card. In the Claude app, add a custom connector with the URL below and paste your key on the consent page. Creating a new sandbox from the Claude app is not yet tested by us.
https://connect.actionlake.com/mcp - 02
Connect Canvas LMS.
Bearer token. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead. actionlake stores what you paste write-only, sealed under your tenant's key.
access_tokenCanvas access token: in Canvas, Account > Settings > Approved Integrations > + New Access Token (or an OAuth2 access…hostWhere your Canvas LMS lives: your host
account { op: "connections.requirements", service: "canvas_lms" } # free: exactly what to paste, and what is found for you - 03
Make the first call. Check before a write.
Ask in plain words; Claude picks the action. Before anything changes,
checkvalidates the call and prices it, for free.do { action: "canvas_lms.calendar_events.list_calendar_events" }# list calendar events · read · 1 upstream callcheck { action: "canvas_lms.users.create_user", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent
Canvas LMS at a glance
- Sign-in
- Bearer token. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead.
- You provide
access_token- Setup fields
host- Limits we pace to
- 100 calls per 10 seconds, per connection
- API covered
- Canvas LMS REST API v1 (Swagger 1.2 docs, 147 resource files), at your Canvas LMS instance's API base URL, which you enter when connecting (path /api)
- Built from
- Canvas LMS's documentation, read 22 October 2026canvas.instructure.comcanvas.instructure.com
- Service file
- Version 1.0.0, signed (Ed25519)
- Cached reads
- 548 of 551 reads, for up to 5 minutes; a write clears what it affects
- Shared entities
- 7, so ask can line Canvas LMS up with your other systems
- Data
- Processed and stored in Sydney, Australia. No US region yet
Capabilities
What an AI agent can do in Canvas LMS.
1,098 actions in 132 areas. Every one carries its effect, so a key can allow the reads and hold the rest.
- 551readlook, never change
- 420writecreate and update
- 127destructivewait for a confirmation
Discussion topics
5814 read · 32 write · 12 destructive
Create a new discussion topic · Create a new discussion topic · Duplicate discussion topic · Duplicate discussion topic
Files
5333 read · 15 write · 5 destructive
List files · List all folders · Create folder · Get file
Users
4925 read · 16 write · 8 destructive
List users in account · Create a user · Show user details · Edit a user
Submissions
4618 read · 26 write · 2 destructive
Grade or comment on multiple submissions · Grade or comment on multiple submissions · Grade or comment on multiple submissions · Grade or comment on multiple submissions
Content migrations
3725 read · 12 write · 0 destructive
Create a content migration · Create a content migration · Create a content migration · Create a content migration
Outcome groups
3716 read · 15 write · 6 destructive
Create/link an outcome · Create/link an outcome · Create/link an outcome · Create a subgroup
Lti registrations
3620 read · 12 write · 4 destructive
Bind an LTI Registration to a Root Account · Bind an LTI Registration to a Root Account · Create an LTI Registration · Create an LTI Registration
Courses
3120 read · 10 write · 1 destructive
Copy course content · Create a new course · List courses for a user · List recently logged in students
124 more areas · 751 actions
- Groups 25
- Pages 23
- Accounts 21
- Assignments 20
- Rubrics 20
- External tools 19
- Analytics 18
- Modules 17
- Feature flags 16
- Group categories 16
- Enrollments 14
- Blackout dates 13
- Blueprint courses 13
- Conversations 13
- Calendar events 12
- Media objects 12
- Planner 12
- Learning object dates 11
- Assignment presets 10
- Grading standards 10
- Notification preferences 10
- AI conversations 9
- AI experiences 9
- Authentication providers 9
- Content exports 9
- Peer reviews 9
- Poll sessions 9
- Roles 9
- Sections 9
- Appointment groups 8
- Content security policy settings 8
- Content shares 8
- Custom gradebook columns 8
- Favorites 8
- Grading periods 8
- Moderated grading 8
- User observees 8
- E portfolios 7
- Quiz submissions 7
- Quizzes 7
- Sis imports 7
- Account calendars 6
- Account reports 6
- Announcement external feeds 6
- Logins 6
- Lti context controls 6
- Lti resource links 6
- New quiz items 6
- Outcome imports 6
- Outcome results 6
- Quiz question groups 6
- Access tokens 5
- Account notifications 5
- Assignment groups 5
- Bookmarks 5
- Collaborations 5
- Communication channels 5
- Developer keys 5
- Enrollment terms 5
- Grade change log 5
- New quizzes 5
- Poll choices 5
- Polls 5
- Quiz questions 5
- Quiz submission questions 5
- Tabs 5
- Temporary enrollment pairings 5
- Admins 4
- Canvas career experiences 4
- Course pace 4
- Gradebook history 4
- Grading period sets 4
- Live assessments 4
- Proficiency ratings 4
- Quiz reports 4
- Submission comments 4
- Assessment question banks 3
- Authentications log 3
- Brand configs 3
- Conferences 3
- Course reports 3
- Discovery pages 3
- E pub exports 3
- Late policy 3
- Outcomes 3
- Search 3
- Shared brand configs 3
- Sis integration 3
- Accessibility course scans 2
- Accessibility course statistics 2
- Course audit log 2
- JW TS 2
- Lti launch definitions 2
- Module organization 2
- New quizzes accommodations 2
- Poll submissions 2
- Progress 2
- Quiz assignment overrides 2
- Quiz submission events 2
- Services 2
- Sis import errors 2
- What if grades 2
- Account domain lookups 1
- Announcements 1
- API token scopes 1
- Assignment extensions 1
- Block editor template 1
- Canvas career user context 1
- Cohorts 1
- Comm messages 1
- Course quiz extensions 1
- Developer key account bindings 1
- Error reports 1
- History 1
- Inst access tokens 1
- New quizzes reports 1
- Portfolio notifications 1
- Quiz extensions 1
- Quiz ip filters 1
- Quiz statistics 1
- Quiz submission files 1
- Quiz submission user list 1
- Smart search 1
- Study assist 1
Top actions
The Canvas LMS API, shaped for agents.
The ids your agent types, what each does, and the one name it shares with other systems. 27 of Canvas LMS's 27 action names are shared with at least one other connector, so an agent learns them once.
| Action | What it does | Effect | Same name in |
|---|---|---|---|
canvas_lms.users.list_users_in_accountList users in account | A paginated list of users associated with this account. | read | identity.user.list474 connectors |
canvas_lms.groups.list_groups_available_in_context_coursesList the groups available in a context. | Returns the paginated list of active groups in the given context that are visible to user. | read | identity.group.list262 connectors |
canvas_lms.groups.list_group_s_usersList group's users | Returns a paginated list of users in the group. | read | identity.group_member.list103 connectors |
canvas_lms.users.create_userCreate a user | Create and return a new user and pseudonym for an account. | write | identity.user.create262 connectors |
canvas_lms.groups.create_group_groupsCreate a group | Creates a new group. | write | identity.group.create205 connectors |
canvas_lms.roles.list_rolesList roles | A paginated list of the roles available to an account. | read | identity.role.list184 connectors |
canvas_lms.files.list_files_coursesList files | Returns the paginated list of files for the folder or course. | read | content.file.list77 connectors |
canvas_lms.files.list_all_folders_coursesList all folders | Returns the paginated list of all folders for the given context. | read | content.folder.list62 connectors |
canvas_lms.groups.delete_groupDelete a group | Deletes a group and removes all members. | destructive | identity.group.delete181 connectors |
canvas_lms.calendar_events.list_calendar_eventsList calendar events | Retrieve the paginated list of calendar events or assignments for the current user. | read | comm.event.list61 connectors |
canvas_lms.files.create_folder_coursesCreate folder | Creates a folder in the specified context. | write | content.folder.create62 connectors |
canvas_lms.users.meGet the current user | The user the connection's access token belongs to (GET /api/v1/users/self). | read | identity.current_user.get307 connectors |
Try it
Prompts to paste into Claude.
Each one names the Canvas LMS actions it will call, so you know what it reads and what it changes before you send it.
- Readread
What is on the Canvas LMS calendar this week?
calls
canvas_lms.calendar_events.list_calendar_events - Writewrite
Create a user in Canvas LMS. Show me exactly what you will send before you save it.
calls
canvas_lms.users.create_user
Governance for Canvas LMS
Destructive actions wait for a yes.
127 Canvas LMS actions are destructive. The first 10:
- Delete a group
canvas_lms.groups.delete_group - Delete file
canvas_lms.files.delete_file - Delete folder
canvas_lms.files.delete_folder - Delete a calendar event
canvas_lms.calendar_events.delete_calendar_event - Delete a quiz
canvas_lms.quizzes.delete_quiz - Delete module
canvas_lms.modules.delete_module - Delete a single
canvas_lms.rubrics.delete_single - Hide a stream item
canvas_lms.users.hide_stream_item - Delete a section
canvas_lms.sections.delete_section - Leave a group
canvas_lms.groups.leave_group_users
A destructive action runs only with confirm: true. Under the human policy the agent cannot confirm for itself: the run stops until a named person approves, in the console or from a signed link in an email. The cap on a key is refused before the call is sent, never after.
Delete a group?
intent: the user asked me to delete a group
account { op: "keys.create", name: "canvas-lms-agent", allowed_actions: ["canvas_lms.*"], cap_calls: 2000, confirm_policy: "human_for_writes", approval_rules: [ { match: "canvas_lms.groups.delete_group", approver: "[email protected]" }, { match: "canvas_lms.files.delete_file", approver: "[email protected]" }, { match: "canvas_lms.files.delete_folder", approver: "[email protected]" } ]}Cost
What Canvas LMS costs on actionlake.
Every Canvas LMS action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call Canvas LMS refused with 401, 403, 429 or a 5xx are free. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.
- 1upstream call per actionall 1,098 Canvas LMS actions
- 1,098actions pageeach page of a long list is one call
- 548reads can be cacheda cache hit costs nothing
- 100,000calls a month, freepaid plans from US$49 a month for 250,000
Action index
Every Canvas LMS action.
1,098 actions by area: the id your agent calls, what it does, and its effect.
Discussion topics58
canvas_lms.discussion_topics.create_new_discussion_topic_coursesCreate a new discussion topicwritecanvas_lms.discussion_topics.create_new_discussion_topic_groupsCreate a new discussion topicwritecanvas_lms.discussion_topics.duplicate_discussion_topic_coursesDuplicate discussion topicwritecanvas_lms.discussion_topics.duplicate_discussion_topic_groupsDuplicate discussion topicwritecanvas_lms.discussion_topics.delete_entry_coursesDelete an entrydestructivecanvas_lms.discussion_topics.delete_entry_groupsDelete an entrydestructive- and 52 more in this area
Files53
canvas_lms.files.create_folder_accountsCreate folderwritecanvas_lms.files.create_folder_coursesCreate folderwritecanvas_lms.files.create_folder_foldersCreate folderwritecanvas_lms.files.create_folder_groupsCreate folderwritecanvas_lms.files.create_folder_usersCreate folderwritecanvas_lms.files.get_file_coursesGet fileread- and 47 more in this area
Users49
canvas_lms.users.create_userCreate a userwritecanvas_lms.users.edit_userEdit a userwritecanvas_lms.users.list_users_in_accountList users in accountreadcanvas_lms.users.show_user_detailsShow user detailsreadcanvas_lms.users.activity_stream_summaryActivity stream summaryreadcanvas_lms.users.beta_get_batch_query_resultsBETA - Get batch query resultsread- and 43 more in this area
Submissions46
canvas_lms.submissions.grade_or_comment_on_multiple_submissions_courses_assignmentsGrade or comment on multiple submissionswritecanvas_lms.submissions.grade_or_comment_on_multiple_submissions_courses_submissionsGrade or comment on multiple submissionswritecanvas_lms.submissions.grade_or_comment_on_multiple_submissions_sections_assignmentsGrade or comment on multiple submissionswritecanvas_lms.submissions.grade_or_comment_on_multiple_submissions_sections_submissionsGrade or comment on multiple submissionswritecanvas_lms.submissions.clear_unread_status_for_all_submissions_coursesClear unread status for all submissions.writecanvas_lms.submissions.clear_unread_status_for_all_submissions_sectionsClear unread status for all submissions.write- and 40 more in this area
Content migrations37
canvas_lms.content_migrations.create_content_migration_accountsCreate a content migrationwritecanvas_lms.content_migrations.create_content_migration_coursesCreate a content migrationwritecanvas_lms.content_migrations.create_content_migration_groupsCreate a content migrationwritecanvas_lms.content_migrations.create_content_migration_usersCreate a content migrationwritecanvas_lms.content_migrations.get_asset_id_mappingGet asset id mappingreadcanvas_lms.content_migrations.get_content_migration_accountsGet a content migrationread- and 31 more in this area
Outcome groups37
canvas_lms.outcome_groups.create_link_outcome_accountsCreate/link an outcomewritecanvas_lms.outcome_groups.create_link_outcome_accounts_outcome_idCreate/link an outcomewritecanvas_lms.outcome_groups.create_link_outcome_coursesCreate/link an outcomewritecanvas_lms.outcome_groups.create_link_outcome_courses_outcome_idCreate/link an outcomewritecanvas_lms.outcome_groups.create_link_outcome_globalCreate/link an outcomewritecanvas_lms.outcome_groups.create_link_outcome_global_outcome_idCreate/link an outcomewrite- and 31 more in this area
Lti registrations36
canvas_lms.lti_registrations.bind_lti_registration_to_root_account_appsBind an LTI Registration to a Root Accountwritecanvas_lms.lti_registrations.bind_lti_registration_to_root_account_lti_registrationsBind an LTI Registration to a Root Accountwritecanvas_lms.lti_registrations.create_lti_registration_appsCreate an LTI Registrationwritecanvas_lms.lti_registrations.create_lti_registration_lti_registrationsCreate an LTI Registrationwritecanvas_lms.lti_registrations.apply_lti_registration_update_requst_appsApply LTI Registration Update Requstwritecanvas_lms.lti_registrations.apply_lti_registration_update_requst_lti_registrationsApply LTI Registration Update Requstwrite- and 30 more in this area
Courses31
canvas_lms.courses.copy_course_contentCopy course contentwritecanvas_lms.courses.create_new_courseCreate a new coursewritecanvas_lms.courses.list_courses_for_userList courses for a userreadcanvas_lms.courses.list_recently_logged_in_studentsList recently logged in studentsreadcanvas_lms.courses.course_activity_streamCourse activity streamreadcanvas_lms.courses.course_activity_stream_summaryCourse activity stream summaryread- and 25 more in this area
Groups25
canvas_lms.groups.create_group_group_categoriesCreate a groupwritecanvas_lms.groups.create_group_groupsCreate a groupwritecanvas_lms.groups.get_single_groupGet a single groupreadcanvas_lms.groups.list_group_s_usersList group's usersreadcanvas_lms.groups.list_groups_available_in_context_accountsList the groups available in a context.readcanvas_lms.groups.list_groups_available_in_context_coursesList the groups available in a context.read- and 19 more in this area
Pages23
canvas_lms.pages.create_page_coursesCreate pagewritecanvas_lms.pages.create_page_groupsCreate pagewritecanvas_lms.pages.duplicate_pageDuplicate pagewritecanvas_lms.pages.list_pages_coursesList pagesreadcanvas_lms.pages.list_pages_groupsList pagesreadcanvas_lms.pages.delete_page_coursesDelete pagedestructive- and 17 more in this area
Accounts21
canvas_lms.accounts.create_new_sub_accountCreate a new sub-accountwritecanvas_lms.accounts.get_accounts_that_admins_can_manageGet accounts that admins can managereadcanvas_lms.accounts.get_accounts_that_users_can_create_courses_inGet accounts that users can create courses inreadcanvas_lms.accounts.get_sub_accounts_of_accountGet the sub-accounts of an accountreadcanvas_lms.accounts.delete_multiple_users_from_root_accountDelete multiple users from the root accountdestructivecanvas_lms.accounts.delete_sub_accountDelete a sub-accountdestructive- and 15 more in this area
Assignments20
canvas_lms.assignments.batch_create_overrides_in_courseBatch create overrides in a coursewritecanvas_lms.assignments.batch_retrieve_overrides_in_courseBatch retrieve overrides in a coursereadcanvas_lms.assignments.create_assignmentCreate an assignmentwritecanvas_lms.assignments.create_assignment_overrideCreate an assignment overridewritecanvas_lms.assignments.batch_update_overrides_in_courseBatch update overrides in a coursewritecanvas_lms.assignments.bulk_update_assignment_datesBulk update assignment dateswrite- and 14 more in this area
Rubrics20
canvas_lms.rubrics.create_rubricassociationCreate a RubricAssociationwritecanvas_lms.rubrics.create_single_rubricCreate a single rubricwritecanvas_lms.rubrics.create_single_rubric_assessmentCreate a single rubric assessmentwritecanvas_lms.rubrics.creates_rubric_using_csv_file_accountsCreates a rubric using a CSV filewritecanvas_lms.rubrics.creates_rubric_using_csv_file_coursesCreates a rubric using a CSV filewritecanvas_lms.rubrics.delete_rubricassociationDelete a RubricAssociationdestructive- and 14 more in this area
External tools19
canvas_lms.external_tools.add_tool_to_top_navigation_favoritesAdd tool to Top Navigation Favoriteswritecanvas_lms.external_tools.create_external_tool_accountsCreate an external toolwritecanvas_lms.external_tools.create_external_tool_coursesCreate an external toolwritecanvas_lms.external_tools.list_external_tools_accountsList external toolsreadcanvas_lms.external_tools.list_external_tools_coursesList external toolsreadcanvas_lms.external_tools.list_external_tools_groupsList external toolsread- and 13 more in this area
Analytics18
canvas_lms.analytics.get_course_level_assignment_dataGet course-level assignment datareadcanvas_lms.analytics.get_course_level_participation_dataGet course-level participation datareadcanvas_lms.analytics.get_course_level_student_summary_dataGet course-level student summary datareadcanvas_lms.analytics.get_department_level_grade_data_completedGet department-level grade datareadcanvas_lms.analytics.get_department_level_grade_data_currentGet department-level grade datareadcanvas_lms.analytics.get_department_level_grade_data_termsGet department-level grade dataread- and 12 more in this area
Modules17
canvas_lms.modules.create_moduleCreate a modulewritecanvas_lms.modules.create_module_itemCreate a module itemwritecanvas_lms.modules.list_module_itemsList module itemsreadcanvas_lms.modules.list_module_s_overridesList a module's overridesreadcanvas_lms.modules.delete_moduleDelete moduledestructivecanvas_lms.modules.delete_module_itemDelete module itemdestructive- and 11 more in this area
Feature flags16
canvas_lms.feature_flags.list_enabled_features_accountsList enabled featuresreadcanvas_lms.feature_flags.list_enabled_features_coursesList enabled featuresreadcanvas_lms.feature_flags.list_enabled_features_usersList enabled featuresreadcanvas_lms.feature_flags.list_environment_featuresList environment featuresreadcanvas_lms.feature_flags.get_feature_flag_accountsGet feature flagreadcanvas_lms.feature_flags.get_feature_flag_coursesGet feature flagread- and 10 more in this area
Group categories16
canvas_lms.group_categories.assign_unassigned_membersAssign unassigned memberswritecanvas_lms.group_categories.bulk_manage_differentiation_tagsBulk manage differentiation tagswritecanvas_lms.group_categories.create_group_category_accountsCreate a Group Categorywritecanvas_lms.group_categories.create_group_category_coursesCreate a Group Categorywritecanvas_lms.group_categories.delete_group_categoryDelete a Group Categorydestructivecanvas_lms.group_categories.export_groups_in_and_users_in_categoryexport groups in and users in categoryread- and 10 more in this area
Enrollments14
canvas_lms.enrollments.accept_course_invitationAccept Course Invitationwritecanvas_lms.enrollments.enroll_multiple_users_to_one_or_more_coursesEnroll multiple users to one or more courseswritecanvas_lms.enrollments.enroll_user_coursesEnroll a userwritecanvas_lms.enrollments.enroll_user_sectionsEnroll a userwritecanvas_lms.enrollments.add_last_attended_dateAdd last attended datewritecanvas_lms.enrollments.bulk_temporary_enrollment_statusBulk Temporary Enrollment Statusread- and 8 more in this area
Blackout dates13
canvas_lms.blackout_dates.create_blackout_date_accountsCreate Blackout Datewritecanvas_lms.blackout_dates.create_blackout_date_coursesCreate Blackout Datewritecanvas_lms.blackout_dates.list_blackout_dates_accountsList blackout datesreadcanvas_lms.blackout_dates.list_blackout_dates_coursesList blackout datesreadcanvas_lms.blackout_dates.delete_blackout_date_accountsDelete Blackout Datedestructivecanvas_lms.blackout_dates.delete_blackout_date_coursesDelete Blackout Datedestructive- and 7 more in this area
Blueprint courses13
canvas_lms.blueprint_courses.begin_migration_to_push_to_associated_coursesBegin a migration to push to associated courseswritecanvas_lms.blueprint_courses.get_associated_course_informationGet associated course informationreadcanvas_lms.blueprint_courses.get_import_detailsGet import detailsreadcanvas_lms.blueprint_courses.get_migration_detailsGet migration detailsreadcanvas_lms.blueprint_courses.get_blueprint_informationGet blueprint informationreadcanvas_lms.blueprint_courses.get_unsynced_changesGet unsynced changesread- and 7 more in this area
Conversations13
canvas_lms.conversations.add_messageAdd a messagewritecanvas_lms.conversations.add_recipientsAdd recipientswritecanvas_lms.conversations.create_conversationCreate a conversationwritecanvas_lms.conversations.list_conversationsList conversationsreadcanvas_lms.conversations.batch_update_conversationsBatch update conversationswritecanvas_lms.conversations.delete_conversationDelete a conversationdestructive- and 7 more in this area
Calendar events12
canvas_lms.calendar_events.create_calendar_eventCreate a calendar eventwritecanvas_lms.calendar_events.get_single_calendar_event_or_assignmentGet a single calendar event or assignmentreadcanvas_lms.calendar_events.list_calendar_eventsList calendar eventsreadcanvas_lms.calendar_events.update_calendar_eventUpdate a calendar eventwritecanvas_lms.calendar_events.create_or_update_events_directly_for_course_timetableCreate or update events directly for a course timetablewritecanvas_lms.calendar_events.delete_calendar_eventDelete a calendar eventdestructive- and 6 more in this area
Media objects12
canvas_lms.media_objects.list_media_objects_courses_media_attachmentsList Media Objectsreadcanvas_lms.media_objects.list_media_objects_courses_media_objectsList Media Objectsreadcanvas_lms.media_objects.list_media_objects_groups_media_attachmentsList Media Objectsreadcanvas_lms.media_objects.list_media_objects_groups_media_objectsList Media Objectsreadcanvas_lms.media_objects.list_media_objects_media_attachmentsList Media Objectsreadcanvas_lms.media_objects.list_media_objects_media_objectsList Media Objectsread- and 6 more in this area
Planner12
canvas_lms.planner.create_planner_noteCreate a planner notewritecanvas_lms.planner.create_planner_overrideCreate a planner overridewritecanvas_lms.planner.list_planner_items_plannerList planner itemsreadcanvas_lms.planner.list_planner_items_usersList planner itemsreadcanvas_lms.planner.delete_planner_noteDelete a planner notedestructivecanvas_lms.planner.delete_planner_overrideDelete a planner overridedestructive- and 6 more in this area
Learning object dates11
canvas_lms.learning_object_dates.get_learning_object_s_date_information_assignmentsGet a learning object's date informationreadcanvas_lms.learning_object_dates.get_learning_object_s_date_information_discussion_topicsGet a learning object's date informationreadcanvas_lms.learning_object_dates.get_learning_object_s_date_information_filesGet a learning object's date informationreadcanvas_lms.learning_object_dates.get_learning_object_s_date_information_modulesGet a learning object's date informationreadcanvas_lms.learning_object_dates.get_learning_object_s_date_information_pagesGet a learning object's date informationreadcanvas_lms.learning_object_dates.get_learning_object_s_date_information_quizzesGet a learning object's date informationread- and 5 more in this area
Assignment presets10
canvas_lms.assignment_presets.create_assignment_preset_accountsCreate an assignment presetwritecanvas_lms.assignment_presets.create_assignment_preset_coursesCreate an assignment presetwritecanvas_lms.assignment_presets.list_assignment_presets_accountsList assignment presetsreadcanvas_lms.assignment_presets.list_assignment_presets_coursesList assignment presetsreadcanvas_lms.assignment_presets.delete_assignment_preset_accountsDelete an assignment presetdestructivecanvas_lms.assignment_presets.delete_assignment_preset_coursesDelete an assignment presetdestructive- and 4 more in this area
Grading standards10
canvas_lms.grading_standards.create_new_grading_standard_accountsCreate a new grading standardwritecanvas_lms.grading_standards.create_new_grading_standard_coursesCreate a new grading standardwritecanvas_lms.grading_standards.list_grading_standards_available_in_context_accountsList the grading standards available in a context.readcanvas_lms.grading_standards.list_grading_standards_available_in_context_coursesList the grading standards available in a context.readcanvas_lms.grading_standards.delete_grading_standard_accountsDelete a grading standarddestructivecanvas_lms.grading_standards.delete_grading_standard_coursesDelete a grading standarddestructive- and 4 more in this area
Notification preferences10
canvas_lms.notification_preferences.get_preference_communication_channel_idGet a preferencereadcanvas_lms.notification_preferences.get_preference_typeGet a preferencereadcanvas_lms.notification_preferences.list_of_preference_categoriesList of preference categoriesreadcanvas_lms.notification_preferences.list_preferences_communication_channel_idList preferencesreadcanvas_lms.notification_preferences.list_preferences_typeList preferencesreadcanvas_lms.notification_preferences.update_multiple_preferences_communication_channel_idUpdate multiple preferenceswrite- and 4 more in this area
AI conversations9
canvas_lms.ai_conversations.create_ai_conversationCreate AI conversationwritecanvas_lms.ai_conversations.create_feedback_on_conversation_messageCreate feedback on a conversation messagewritecanvas_lms.ai_conversations.generate_conversation_evaluationGenerate conversation evaluationwritecanvas_lms.ai_conversations.post_message_to_conversationPost message to conversationwritecanvas_lms.ai_conversations.delete_ai_conversationDelete AI conversationdestructivecanvas_lms.ai_conversations.delete_feedback_on_conversation_messageDelete feedback on a conversation messagedestructive- and 3 more in this area
AI experiences 9Authentication providers 9Content exports 9Peer reviews 9Poll sessions 9Roles 9Sections 9Appointment groups 8Content security policy settings 8Content shares 8Custom gradebook columns 8Favorites 8Grading periods 8Moderated grading 8User observees 8E portfolios 7Quiz submissions 7Quizzes 7Sis imports 7Account calendars 6Account reports 6Announcement external feeds 6Logins 6Lti context controls 6Lti resource links 6New quiz items 6Outcome imports 6Outcome results 6Quiz question groups 6Access tokens 5Account notifications 5Assignment groups 5Bookmarks 5Collaborations 5Communication channels 5Developer keys 5Enrollment terms 5Grade change log 5New quizzes 5Poll choices 5Polls 5Quiz questions 5Quiz submission questions 5Tabs 5Temporary enrollment pairings 5Admins 4Canvas career experiences 4Course pace 4Gradebook history 4Grading period sets 4Live assessments 4Proficiency ratings 4Quiz reports 4Submission comments 4Assessment question banks 3Authentications log 3Brand configs 3Conferences 3Course reports 3Discovery pages 3E pub exports 3Late policy 3Outcomes 3Search 3Shared brand configs 3Sis integration 3Accessibility course scans 2Accessibility course statistics 2Course audit log 2JW TS 2Lti launch definitions 2Module organization 2New quizzes accommodations 2Poll submissions 2Progress 2Quiz assignment overrides 2Quiz submission events 2Services 2Sis import errors 2What if grades 2Account domain lookups 1Announcements 1API token scopes 1Assignment extensions 1Block editor template 1Canvas career user context 1Cohorts 1Comm messages 1Course quiz extensions 1Developer key account bindings 1Error reports 1History 1Inst access tokens 1New quizzes reports 1Portfolio notifications 1Quiz extensions 1Quiz ip filters 1Quiz statistics 1Quiz submission files 1Quiz submission user list 1Smart search 1Study assist 1
This index shows a sample of each area. All 1,098 actions, with their inputs and prices, are in the catalogue, which a free sandbox key can search.
Questions
The Canvas LMS MCP server, answered.
Is there a Canvas LMS MCP server for Claude?
Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 1,098 Canvas LMS actions across discussion topics, files, users and submissions, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by Canvas LMS.
What do I need to connect Canvas LMS?
Canvas access token: in Canvas, Account > Settings > Approved Integrations > + New Access Token (or an OAuth2 access…. Plus your host. The free call account { op: "connections.requirements", service: "canvas_lms" } lists exactly what to paste.
Can an AI agent delete or change things in Canvas LMS?
Only if its key allows it, and only with an explicit confirmation. 127 Canvas LMS actions are destructive, including delete a group, delete file and delete folder. Each runs only with confirm: true. Under the human confirm policy, or an approval rule on the key, the run waits until a named person approves it.
Will an AI agent use up my Canvas LMS API limit?
actionlake paces every call to the limits in the Canvas LMS service file: 100 calls per 10 seconds per connection. Repeated reads are answered from cache (548 Canvas LMS actions can be), which never reaches Canvas LMS.
What does a Canvas LMS action cost?
One upstream call, the only unit actionlake bills. A list that pages bills one call per page (1,098 Canvas LMS actions page). Cache hits, searches, dry runs and calls Canvas LMS refused with 401, 403, 429 or a 5xx are free. The Free plan includes 100,000 calls a month with no card. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.
Which Canvas LMS API does it cover?
The Canvas LMS REST API v1 (Swagger 1.2 docs, 147 resource files) at your Canvas LMS instance's API base URL, which you enter when connecting (path /api). It is built from Canvas LMS's documentation as read on 22 October 2026. 1,098 actions in 132 areas, each one in the signed service file (version 1.0.0).
Does actionlake keep my Canvas LMS data, and where?
actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to 5 minutes, and a write clears the reads it affects. Each run's request and response is kept, sealed, for your plan's trace window: 1 day on Free, 3 days on Starter, 7 days on Pro, 14 days on Team, 30 days on Business and 30 days on Enterprise. Your Canvas LMS credential is sealed under your tenant's key, never logged and never returned. Your traffic is not used to train models.
Which AI clients can use it?
Claude Code, tested by us end to end, and the Claude app as a custom connector, tested by us with an existing key. Other MCP clients that support remote servers over Streamable HTTP (MCP revisions 2025-06-18 and 2025-11-25) and OAuth dynamic client registration, or a bearer header, should connect the same way; we have not tested them. Or plain REST, under the same action names.
Give your agent Canvas LMS today.
Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.