Skip to content

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/mcp
the first call
do {  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.

  1. 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
  2. 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
  3. 03

    Make the first call. Check before a write.

    Ask in plain words; Claude picks the action. Before anything changes, check validates 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
  1. Discussion topics

    58

    14 read · 32 write · 12 destructive

    Create a new discussion topic · Create a new discussion topic · Duplicate discussion topic · Duplicate discussion topic

  2. Files

    53

    33 read · 15 write · 5 destructive

    List files · List all folders · Create folder · Get file

  3. Users

    49

    25 read · 16 write · 8 destructive

    List users in account · Create a user · Show user details · Edit a user

  4. Submissions

    46

    18 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

  5. Content migrations

    37

    25 read · 12 write · 0 destructive

    Create a content migration · Create a content migration · Create a content migration · Create a content migration

  6. Outcome groups

    37

    16 read · 15 write · 6 destructive

    Create/link an outcome · Create/link an outcome · Create/link an outcome · Create a subgroup

  7. Lti registrations

    36

    20 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

  8. Courses

    31

    20 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.

ActionWhat it doesEffectSame name in
canvas_lms.users.list_users_in_accountList users in accountA paginated list of users associated with this account.readidentity.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.readidentity.group.list262 connectors
canvas_lms.groups.list_group_s_usersList group's usersReturns a paginated list of users in the group.readidentity.group_member.list103 connectors
canvas_lms.users.create_userCreate a userCreate and return a new user and pseudonym for an account.writeidentity.user.create262 connectors
canvas_lms.groups.create_group_groupsCreate a groupCreates a new group.writeidentity.group.create205 connectors
canvas_lms.roles.list_rolesList rolesA paginated list of the roles available to an account.readidentity.role.list184 connectors
canvas_lms.files.list_files_coursesList filesReturns the paginated list of files for the folder or course.readcontent.file.list77 connectors
canvas_lms.files.list_all_folders_coursesList all foldersReturns the paginated list of all folders for the given context.readcontent.folder.list62 connectors
canvas_lms.groups.delete_groupDelete a groupDeletes a group and removes all members.destructiveidentity.group.delete181 connectors
canvas_lms.calendar_events.list_calendar_eventsList calendar eventsRetrieve the paginated list of calendar events or assignments for the current user.readcomm.event.list61 connectors
canvas_lms.files.create_folder_coursesCreate folderCreates a folder in the specified context.writecontent.folder.create62 connectors
canvas_lms.users.meGet the current userThe user the connection's access token belongs to (GET /api/v1/users/self).readidentity.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.

  1. Readread

    What is on the Canvas LMS calendar this week?

    callscanvas_lms.calendar_events.list_calendar_events

  2. Writewrite

    Create a user in Canvas LMS. Show me exactly what you will send before you save it.

    callscanvas_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 groupcanvas_lms.groups.delete_group
  • Delete filecanvas_lms.files.delete_file
  • Delete foldercanvas_lms.files.delete_folder
  • Delete a calendar eventcanvas_lms.calendar_events.delete_calendar_event
  • Delete a quizcanvas_lms.quizzes.delete_quiz
  • Delete modulecanvas_lms.modules.delete_module
  • Delete a singlecanvas_lms.rubrics.delete_single
  • Hide a stream itemcanvas_lms.users.hide_stream_item
  • Delete a sectioncanvas_lms.sections.delete_section
  • Leave a groupcanvas_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.

docanvas_lms.groups.delete_groupconfirm_policy: human

Delete a group?

intent: the user asked me to delete a group

run suspended · waiting for a named person · key canvas-lms-agent cannot confirm itself
In the console, or from an emailed signed link.
a key for this connector
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]" }  ]}
Illustrative. Scoped to Canvas LMS only, capped at 2,000 upstream calls, every write confirmed, and the destructive ones approved by a named person.

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

See pricing

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 topicwrite
  • canvas_lms.discussion_topics.create_new_discussion_topic_groupsCreate a new discussion topicwrite
  • canvas_lms.discussion_topics.duplicate_discussion_topic_coursesDuplicate discussion topicwrite
  • canvas_lms.discussion_topics.duplicate_discussion_topic_groupsDuplicate discussion topicwrite
  • canvas_lms.discussion_topics.delete_entry_coursesDelete an entrydestructive
  • canvas_lms.discussion_topics.delete_entry_groupsDelete an entrydestructive
  • and 52 more in this area
Files53
  • canvas_lms.files.create_folder_accountsCreate folderwrite
  • canvas_lms.files.create_folder_coursesCreate folderwrite
  • canvas_lms.files.create_folder_foldersCreate folderwrite
  • canvas_lms.files.create_folder_groupsCreate folderwrite
  • canvas_lms.files.create_folder_usersCreate folderwrite
  • canvas_lms.files.get_file_coursesGet fileread
  • and 47 more in this area
Users49
  • canvas_lms.users.create_userCreate a userwrite
  • canvas_lms.users.edit_userEdit a userwrite
  • canvas_lms.users.list_users_in_accountList users in accountread
  • canvas_lms.users.show_user_detailsShow user detailsread
  • canvas_lms.users.activity_stream_summaryActivity stream summaryread
  • canvas_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 submissionswrite
  • canvas_lms.submissions.grade_or_comment_on_multiple_submissions_courses_submissionsGrade or comment on multiple submissionswrite
  • canvas_lms.submissions.grade_or_comment_on_multiple_submissions_sections_assignmentsGrade or comment on multiple submissionswrite
  • canvas_lms.submissions.grade_or_comment_on_multiple_submissions_sections_submissionsGrade or comment on multiple submissionswrite
  • canvas_lms.submissions.clear_unread_status_for_all_submissions_coursesClear unread status for all submissions.write
  • canvas_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 migrationwrite
  • canvas_lms.content_migrations.create_content_migration_coursesCreate a content migrationwrite
  • canvas_lms.content_migrations.create_content_migration_groupsCreate a content migrationwrite
  • canvas_lms.content_migrations.create_content_migration_usersCreate a content migrationwrite
  • canvas_lms.content_migrations.get_asset_id_mappingGet asset id mappingread
  • canvas_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 outcomewrite
  • canvas_lms.outcome_groups.create_link_outcome_accounts_outcome_idCreate/link an outcomewrite
  • canvas_lms.outcome_groups.create_link_outcome_coursesCreate/link an outcomewrite
  • canvas_lms.outcome_groups.create_link_outcome_courses_outcome_idCreate/link an outcomewrite
  • canvas_lms.outcome_groups.create_link_outcome_globalCreate/link an outcomewrite
  • canvas_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 Accountwrite
  • canvas_lms.lti_registrations.bind_lti_registration_to_root_account_lti_registrationsBind an LTI Registration to a Root Accountwrite
  • canvas_lms.lti_registrations.create_lti_registration_appsCreate an LTI Registrationwrite
  • canvas_lms.lti_registrations.create_lti_registration_lti_registrationsCreate an LTI Registrationwrite
  • canvas_lms.lti_registrations.apply_lti_registration_update_requst_appsApply LTI Registration Update Requstwrite
  • canvas_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 contentwrite
  • canvas_lms.courses.create_new_courseCreate a new coursewrite
  • canvas_lms.courses.list_courses_for_userList courses for a userread
  • canvas_lms.courses.list_recently_logged_in_studentsList recently logged in studentsread
  • canvas_lms.courses.course_activity_streamCourse activity streamread
  • canvas_lms.courses.course_activity_stream_summaryCourse activity stream summaryread
  • and 25 more in this area
Groups25
  • canvas_lms.groups.create_group_group_categoriesCreate a groupwrite
  • canvas_lms.groups.create_group_groupsCreate a groupwrite
  • canvas_lms.groups.get_single_groupGet a single groupread
  • canvas_lms.groups.list_group_s_usersList group's usersread
  • canvas_lms.groups.list_groups_available_in_context_accountsList the groups available in a context.read
  • canvas_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 pagewrite
  • canvas_lms.pages.create_page_groupsCreate pagewrite
  • canvas_lms.pages.duplicate_pageDuplicate pagewrite
  • canvas_lms.pages.list_pages_coursesList pagesread
  • canvas_lms.pages.list_pages_groupsList pagesread
  • canvas_lms.pages.delete_page_coursesDelete pagedestructive
  • and 17 more in this area
Accounts21
  • canvas_lms.accounts.create_new_sub_accountCreate a new sub-accountwrite
  • canvas_lms.accounts.get_accounts_that_admins_can_manageGet accounts that admins can manageread
  • canvas_lms.accounts.get_accounts_that_users_can_create_courses_inGet accounts that users can create courses inread
  • canvas_lms.accounts.get_sub_accounts_of_accountGet the sub-accounts of an accountread
  • canvas_lms.accounts.delete_multiple_users_from_root_accountDelete multiple users from the root accountdestructive
  • canvas_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 coursewrite
  • canvas_lms.assignments.batch_retrieve_overrides_in_courseBatch retrieve overrides in a courseread
  • canvas_lms.assignments.create_assignmentCreate an assignmentwrite
  • canvas_lms.assignments.create_assignment_overrideCreate an assignment overridewrite
  • canvas_lms.assignments.batch_update_overrides_in_courseBatch update overrides in a coursewrite
  • canvas_lms.assignments.bulk_update_assignment_datesBulk update assignment dateswrite
  • and 14 more in this area
Rubrics20
  • canvas_lms.rubrics.create_rubricassociationCreate a RubricAssociationwrite
  • canvas_lms.rubrics.create_single_rubricCreate a single rubricwrite
  • canvas_lms.rubrics.create_single_rubric_assessmentCreate a single rubric assessmentwrite
  • canvas_lms.rubrics.creates_rubric_using_csv_file_accountsCreates a rubric using a CSV filewrite
  • canvas_lms.rubrics.creates_rubric_using_csv_file_coursesCreates a rubric using a CSV filewrite
  • canvas_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 Favoriteswrite
  • canvas_lms.external_tools.create_external_tool_accountsCreate an external toolwrite
  • canvas_lms.external_tools.create_external_tool_coursesCreate an external toolwrite
  • canvas_lms.external_tools.list_external_tools_accountsList external toolsread
  • canvas_lms.external_tools.list_external_tools_coursesList external toolsread
  • canvas_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 dataread
  • canvas_lms.analytics.get_course_level_participation_dataGet course-level participation dataread
  • canvas_lms.analytics.get_course_level_student_summary_dataGet course-level student summary dataread
  • canvas_lms.analytics.get_department_level_grade_data_completedGet department-level grade dataread
  • canvas_lms.analytics.get_department_level_grade_data_currentGet department-level grade dataread
  • canvas_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 modulewrite
  • canvas_lms.modules.create_module_itemCreate a module itemwrite
  • canvas_lms.modules.list_module_itemsList module itemsread
  • canvas_lms.modules.list_module_s_overridesList a module's overridesread
  • canvas_lms.modules.delete_moduleDelete moduledestructive
  • canvas_lms.modules.delete_module_itemDelete module itemdestructive
  • and 11 more in this area
Feature flags16
  • canvas_lms.feature_flags.list_enabled_features_accountsList enabled featuresread
  • canvas_lms.feature_flags.list_enabled_features_coursesList enabled featuresread
  • canvas_lms.feature_flags.list_enabled_features_usersList enabled featuresread
  • canvas_lms.feature_flags.list_environment_featuresList environment featuresread
  • canvas_lms.feature_flags.get_feature_flag_accountsGet feature flagread
  • canvas_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 memberswrite
  • canvas_lms.group_categories.bulk_manage_differentiation_tagsBulk manage differentiation tagswrite
  • canvas_lms.group_categories.create_group_category_accountsCreate a Group Categorywrite
  • canvas_lms.group_categories.create_group_category_coursesCreate a Group Categorywrite
  • canvas_lms.group_categories.delete_group_categoryDelete a Group Categorydestructive
  • canvas_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 Invitationwrite
  • canvas_lms.enrollments.enroll_multiple_users_to_one_or_more_coursesEnroll multiple users to one or more courseswrite
  • canvas_lms.enrollments.enroll_user_coursesEnroll a userwrite
  • canvas_lms.enrollments.enroll_user_sectionsEnroll a userwrite
  • canvas_lms.enrollments.add_last_attended_dateAdd last attended datewrite
  • canvas_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 Datewrite
  • canvas_lms.blackout_dates.create_blackout_date_coursesCreate Blackout Datewrite
  • canvas_lms.blackout_dates.list_blackout_dates_accountsList blackout datesread
  • canvas_lms.blackout_dates.list_blackout_dates_coursesList blackout datesread
  • canvas_lms.blackout_dates.delete_blackout_date_accountsDelete Blackout Datedestructive
  • canvas_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 courseswrite
  • canvas_lms.blueprint_courses.get_associated_course_informationGet associated course informationread
  • canvas_lms.blueprint_courses.get_import_detailsGet import detailsread
  • canvas_lms.blueprint_courses.get_migration_detailsGet migration detailsread
  • canvas_lms.blueprint_courses.get_blueprint_informationGet blueprint informationread
  • canvas_lms.blueprint_courses.get_unsynced_changesGet unsynced changesread
  • and 7 more in this area
Conversations13
  • canvas_lms.conversations.add_messageAdd a messagewrite
  • canvas_lms.conversations.add_recipientsAdd recipientswrite
  • canvas_lms.conversations.create_conversationCreate a conversationwrite
  • canvas_lms.conversations.list_conversationsList conversationsread
  • canvas_lms.conversations.batch_update_conversationsBatch update conversationswrite
  • canvas_lms.conversations.delete_conversationDelete a conversationdestructive
  • and 7 more in this area
Calendar events12
  • canvas_lms.calendar_events.create_calendar_eventCreate a calendar eventwrite
  • canvas_lms.calendar_events.get_single_calendar_event_or_assignmentGet a single calendar event or assignmentread
  • canvas_lms.calendar_events.list_calendar_eventsList calendar eventsread
  • canvas_lms.calendar_events.update_calendar_eventUpdate a calendar eventwrite
  • canvas_lms.calendar_events.create_or_update_events_directly_for_course_timetableCreate or update events directly for a course timetablewrite
  • canvas_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 Objectsread
  • canvas_lms.media_objects.list_media_objects_courses_media_objectsList Media Objectsread
  • canvas_lms.media_objects.list_media_objects_groups_media_attachmentsList Media Objectsread
  • canvas_lms.media_objects.list_media_objects_groups_media_objectsList Media Objectsread
  • canvas_lms.media_objects.list_media_objects_media_attachmentsList Media Objectsread
  • canvas_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 notewrite
  • canvas_lms.planner.create_planner_overrideCreate a planner overridewrite
  • canvas_lms.planner.list_planner_items_plannerList planner itemsread
  • canvas_lms.planner.list_planner_items_usersList planner itemsread
  • canvas_lms.planner.delete_planner_noteDelete a planner notedestructive
  • canvas_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 informationread
  • canvas_lms.learning_object_dates.get_learning_object_s_date_information_discussion_topicsGet a learning object's date informationread
  • canvas_lms.learning_object_dates.get_learning_object_s_date_information_filesGet a learning object's date informationread
  • canvas_lms.learning_object_dates.get_learning_object_s_date_information_modulesGet a learning object's date informationread
  • canvas_lms.learning_object_dates.get_learning_object_s_date_information_pagesGet a learning object's date informationread
  • canvas_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 presetwrite
  • canvas_lms.assignment_presets.create_assignment_preset_coursesCreate an assignment presetwrite
  • canvas_lms.assignment_presets.list_assignment_presets_accountsList assignment presetsread
  • canvas_lms.assignment_presets.list_assignment_presets_coursesList assignment presetsread
  • canvas_lms.assignment_presets.delete_assignment_preset_accountsDelete an assignment presetdestructive
  • canvas_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 standardwrite
  • canvas_lms.grading_standards.create_new_grading_standard_coursesCreate a new grading standardwrite
  • canvas_lms.grading_standards.list_grading_standards_available_in_context_accountsList the grading standards available in a context.read
  • canvas_lms.grading_standards.list_grading_standards_available_in_context_coursesList the grading standards available in a context.read
  • canvas_lms.grading_standards.delete_grading_standard_accountsDelete a grading standarddestructive
  • canvas_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 preferenceread
  • canvas_lms.notification_preferences.get_preference_typeGet a preferenceread
  • canvas_lms.notification_preferences.list_of_preference_categoriesList of preference categoriesread
  • canvas_lms.notification_preferences.list_preferences_communication_channel_idList preferencesread
  • canvas_lms.notification_preferences.list_preferences_typeList preferencesread
  • canvas_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 conversationwrite
  • canvas_lms.ai_conversations.create_feedback_on_conversation_messageCreate feedback on a conversation messagewrite
  • canvas_lms.ai_conversations.generate_conversation_evaluationGenerate conversation evaluationwrite
  • canvas_lms.ai_conversations.post_message_to_conversationPost message to conversationwrite
  • canvas_lms.ai_conversations.delete_ai_conversationDelete AI conversationdestructive
  • canvas_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.