canvas_me
Return the profile of the Canvas user the connected token belongs to (id, name, email, time zone). Use this first to confirm the connection works and to learn the user's id.
canvas:read
A Model Context Protocol server for your own Canvas LMS account. Add this endpoint to your MCP client, then connect with your Canvas URL and personal access token.
https://canvas.nusmcp.com/mcp
Your Canvas token is stored encrypted and only sent to your Canvas instance. Revoke it in Canvas → Account → Settings → Approved Integrations.
Each tool lists all the scopes your connection needs. These are this MCP server’s permissions, not a guarantee of access in Canvas; course and file restrictions still apply.
canvas:readcanvas:writecanvas:destructivecanvas:submitWrite tools support dry_run, but previews require the same scopes. This public catalogue shows deployment capabilities, not your current connection’s permissions.
Generated from the running server’s tool registry and enabled toolsets. New tools appear here when their code is deployed; no separate list to maintain.
Showing 117 of 117 tools
Reset filterscanvas_meReturn the profile of the Canvas user the connected token belongs to (id, name, email, time zone). Use this first to confirm the connection works and to learn the user's id.
canvas:readcanvas_me_todoList the user's Canvas to-do items: assignments that need submitting (and, for graders, things needing grading). Each item names the course and assignment with its due date.
canvas:readcanvas_me_todo_countCounts of to-do items: assignments needing submission and (for graders) submissions needing grading.
canvas:readcanvas_me_upcoming_eventsUpcoming assignments and calendar events for the user across all courses (roughly the next week or two), sorted by date. Good for 'what is due soon'.
canvas:readcanvas_me_missing_submissionsAssignments that are past due and have not been submitted by the user, across all courses. Optionally include planner overrides and course info.
canvas:readcanvas_me_activity_streamRecent activity for the user: announcements, discussion posts, messages, grade changes, submission comments. Newest first. Use `only_active_courses` to skip concluded courses.
canvas:readcanvas_me_activity_stream_summaryCounts of activity stream items by type (Announcement, DiscussionTopic, Message, Submission, …) with unread counts.
canvas:readcanvas_me_activity_stream_hideHide one item from the user's activity stream (it stays in Canvas, just not in the stream).
canvas:readcanvas:writecanvas_courses_listList courses the user is enrolled in. Defaults to active enrollments; set enrollment_state to 'completed' for past courses. Add includes such as 'term', 'total_scores' (current grade per course), 'course_progress', or 'teachers'.
canvas:readcanvas_courses_getGet one course by id with optional includes (syllabus_body returns the syllabus as Markdown, total_scores returns the user's current grade, course_progress returns module completion).
canvas:readcanvas_courses_syllabusReturn the course syllabus body as Markdown (and raw HTML when verbose).
canvas:readcanvas_courses_tabsList the navigation tabs visible to the user in a course (Modules, Assignments, Grades, external tools, …) with their URLs. Useful to discover which features a course actually uses.
canvas:readcanvas_courses_progressModule-requirement completion for the user in a course: requirements completed vs total, next requirement URL, completion date.
canvas:readcanvas_courses_favorites_listCourses the user has starred as favourites (these appear on the Canvas dashboard).
canvas:readcanvas_courses_favorite_addStar a course so it shows on the user's dashboard.
canvas:readcanvas:writecanvas_courses_favorite_removeUnstar a course so it no longer shows on the user's dashboard. Reversible by adding it again, but it is a deletion so it is gated as destructive.
canvas:readcanvas:writecanvas:destructivecanvas_courses_nicknames_listPersonal nicknames the user has set for courses (shown instead of the official name in their Canvas UI).
canvas:readcanvas_courses_nickname_setSet the user's personal nickname for a course (max 60 characters).
canvas:readcanvas:writecanvas_courses_nickname_removeRemove the user's personal nickname for a course, restoring the official name.
canvas:readcanvas:writecanvas:destructivecanvas_assignments_listList course assignments, including the student's effective due dates and submission state. Use bucket='upcoming' or 'overdue'; paginate for all results.
canvas:readcanvas_assignments_getRead an assignment's instructions as Markdown, rubric, accepted submission types, effective due date and your submission.
canvas:readcanvas_assignments_groups_listList assignment groups and their grade weights, with assignments scoped to the current student.
canvas:readcanvas_assignments_overrides_for_meGet your effective due, unlock and lock dates after Canvas applies individual, group and section overrides. This returns the effective schedule, not other students' override records.
canvas:readcanvas_assignments_peer_reviews_listList peer reviews visible to your student account for an assignment.
canvas:readcanvas_submissions_get_mineGet your own submission, feedback, attachments and rubric for an assignment.
canvas:readcanvas_submissions_list_mineList only your own submissions across assignments in one course.
canvas:readcanvas_submissions_comments_listRead comments on your own assignment submission.
canvas:readcanvas_submissions_submission_summary_mineSummarize your own fetched submissions by state. Counts cover only returned pages; follow next_page_url for more.
canvas:readcanvas_submissions_submitSubmit academic work as text, URL, uploaded file IDs or media. Requires the submit feature, dry-run review and confirmed=true for a real submission. Uploading a file alone does not submit it.
canvas:readcanvas:writecanvas:submitcanvas_submissions_comment_addAdd a text comment to your own submission. Does not change a grade or submit the assignment.
canvas:readcanvas:writecanvas_submissions_mark_readMark your submission feedback as read.
canvas:readcanvas:writecanvas_submissions_mark_unreadUnmark your submission feedback as read.
canvas:readcanvas:writecanvas_submissions_upload_fileUpload up to 5 MiB using Canvas's three-step upload flow. Files with duplicate names are renamed. This uploads bytes only; use submissions_submit with the returned file ID to submit academic work. dry_run previews the initial request and file digest without requesting an upload ticket.
canvas:readcanvas:writecanvas_grades_course_gradesRead your own student enrollment grades for a course.
canvas:readcanvas_grades_assignment_scoresRead actual scores, grades and feedback on your own assignments.
canvas:readcanvas_grades_what_if_listRead your submissions' saved student_entered_score values (what-if scores), alongside actual scores.
canvas:readcanvas_grades_grading_periods_listList the course's grading periods.
canvas:readcanvas_grades_what_if_setSet a hypothetical score on one of your submissions. This recalculates your what-if grade, not the instructor's grade. Use sparingly.
canvas:readcanvas:writecanvas_grades_what_if_resetClear all of your saved what-if scores in a course.
canvas:readcanvas:writecanvas:destructivecanvas_modules_listList modules with your completion state and embedded items. Canvas may omit items in large modules; use items_list then.
canvas:readcanvas_modules_getRead a module, prerequisites and your completion state.
canvas:readcanvas_modules_items_listList items in a module, including completion requirements and content links.
canvas:readcanvas_modules_item_getRead one module item and its completion requirement.
canvas:readcanvas_modules_item_sequenceFind the previous and next module items around an asset.
canvas:readcanvas_modules_progressRead your completed and total module requirements for a course.
canvas:readcanvas_modules_item_mark_doneitem mark done for your own module progress.
canvas:readcanvas:writecanvas_modules_item_mark_readitem mark read for your own module progress.
canvas:readcanvas:writecanvas_modules_item_mark_not_doneitem mark not done for your own module progress.
canvas:readcanvas:writecanvas:destructivecanvas_modules_select_mastery_pathChoose an available mastery-path assignment set for yourself.
canvas:readcanvas:writecanvas_pages_listList visible course pages.
canvas:readcanvas_pages_getRead a course page as Markdown.
canvas:readcanvas_pages_revisions_listList accessible revisions of a course page.
canvas:readcanvas_pages_revision_getRead a specific page revision as Markdown.
canvas:readcanvas_pages_createCreate a course page where student page creation is permitted. Canvas enforces course permissions.
canvas:readcanvas:writecanvas_pages_updateEdit a page's title/body where students may edit it. Requires at least one changed field.
canvas:readcanvas:writecanvas_announcements_listRead announcements across selected courses. Supply start_date/end_date to control the date window; Canvas defaults to recent announcements.
canvas:readcanvas_announcements_getRead an announcement by its discussion topic ID.
canvas:readcanvas_announcements_mark_readMark an announcement as read on your account.
canvas:readcanvas:writecanvas_discussions_listList visible discussion topics in a course.
canvas:readcanvas_discussions_subscribed_listList subscribed topics from each fetched page. Filtering happens after pagination; an empty page may still have next_page_url.
canvas:readcanvas_discussions_getRead a discussion prompt as Markdown, with posting permissions and unread count.
canvas:readcanvas_discussions_viewRead the full discussion thread, participants and unread entry IDs. Canvas may require an initial post before you can read replies.
canvas:readcanvas_discussions_entries_listList top-level discussion entries as Markdown.
canvas:readcanvas_discussions_entry_replies_listList replies to one discussion entry.
canvas:readcanvas_discussions_entry_postPost a new top-level reply to a discussion. message accepts Canvas HTML.
canvas:readcanvas:writecanvas_discussions_entry_replyReply to a specific discussion entry. message accepts Canvas HTML.
canvas:readcanvas:writecanvas_discussions_entry_updateEdit your own discussion entry where Canvas permits editing.
canvas:readcanvas:writecanvas_discussions_entry_deleteDelete your own discussion entry where Canvas permits deletion.
canvas:readcanvas:writecanvas:destructivecanvas_discussions_mark_readmark read for this discussion topic on your account.
canvas:readcanvas:writecanvas_discussions_mark_all_readmark all read for this discussion topic on your account.
canvas:readcanvas:writecanvas_discussions_subscribesubscribe for this discussion topic on your account.
canvas:readcanvas:writecanvas_discussions_unsubscribeunsubscribe for this discussion topic on your account.
canvas:readcanvas:writecanvas:destructivecanvas_discussions_rate_entryLike (1) or remove your like (0) on a discussion entry where ratings are enabled.
canvas:readcanvas:writecanvas_files_folders_listList folders in your own files area, or in a course when course_id is supplied.
canvas:readcanvas_files_folder_getRead folder metadata and child listing URLs.
canvas:readcanvas_files_files_listList files in your own files area, a course, or one folder. Specify at most one of course_id/folder_id.
canvas:readcanvas_files_file_getRead metadata for a file you can access.
canvas:readcanvas_files_download_urlGet Canvas's download URL for an accessible file; the server does not download its contents. URLs may expire.
canvas:readcanvas_files_quotaRead storage quota and usage for your own files.
canvas:readcanvas_files_folder_createCreate a folder in your personal files area.
canvas:readcanvas:writecanvas_files_file_updateRename or move a file you own. Duplicate names are renamed, never overwritten.
canvas:readcanvas:writecanvas_files_file_copyCopy an accessible file into a writable folder. Duplicate filenames are renamed.
canvas:readcanvas:writecanvas_files_file_deleteDelete a file you own.
canvas:readcanvas:writecanvas:destructivecanvas_files_folder_deleteDelete a folder you own. force=true also deletes its contents.
canvas:readcanvas:writecanvas:destructivecanvas_files_uploadUpload up to 5 MiB using Canvas's three-step upload flow. Files with duplicate names are renamed. This uploads bytes only; use submissions_submit with the returned file ID to submit academic work. dry_run previews the initial request and file digest without requesting an upload ticket.
canvas:readcanvas:writecanvas_calendar_events_listList calendar events or assignments in a date range. Include course_<id> context_codes for course events; otherwise Canvas defaults to your personal calendar. Maximum 10 contexts.
canvas:readcanvas_calendar_event_getRead a calendar event or appointment slot.
canvas:readcanvas_calendar_appointment_groups_listList appointment groups you can reserve, including slots and your reserved times.
canvas:readcanvas_calendar_appointment_group_getRead an appointment group's slots and reservation limits.
canvas:readcanvas_calendar_reservations_mineList appointment groups with your reserved_times. Groups without a current reservation are filtered after pagination; follow next_page_url even on an empty page.
canvas:readcanvas_calendar_event_createCreate an event on your personal calendar. context_code must be user_<your Canvas user id> from canvas_me.
canvas:readcanvas:writecanvas_calendar_event_updateUpdate a calendar event you own. Canvas enforces editing permissions.
canvas:readcanvas:writecanvas_calendar_reserve_slotReserve an available appointment slot for yourself. Existing reservations are never automatically cancelled.
canvas:readcanvas:writecanvas_calendar_event_deleteDelete a calendar event you own.
canvas:readcanvas:writecanvas:destructivecanvas_calendar_reservation_cancelCancel your reservation using the child reservation event ID from reserved_times, not the parent appointment slot ID.
canvas:readcanvas:writecanvas:destructivecanvas_planner_items_listFind what's due across your courses in a date range, including assignments, quizzes, discussions and personal notes. Use ISO dates in your time zone and paginate.
canvas:readcanvas_planner_notes_listList your personal planner notes, optionally within a date range.
canvas:readcanvas_planner_note_getRead a personal planner note.
canvas:readcanvas_planner_overrides_listList your planner completion and dismissal overrides.
canvas:readcanvas_planner_note_createCreate a personal to-do note in your Canvas planner.
canvas:readcanvas:writecanvas_planner_note_updateUpdate your planner note. Omitted fields stay unchanged; course_id=null removes its course association.
canvas:readcanvas:writecanvas_planner_override_setSet a planner item's completed/dismissed state. Pass its existing override_id to update; otherwise provide plannable_type and plannable_id to create an override.
canvas:readcanvas:writecanvas_planner_note_deleteDelete a personal planner note.
canvas:readcanvas:writecanvas:destructivecanvas_conversations_listList your Canvas inbox conversations. Filter by unread, starred, archived or sent.
canvas:readcanvas_conversations_getRead a conversation and its messages without marking it as read.
canvas:readcanvas_conversations_unread_countGet your unread conversation count.
canvas:readcanvas_conversations_find_recipientsFind users you can message, optionally restricted to a course or group.
canvas:readcanvas_conversations_createSend a new Canvas inbox message to explicit user IDs. Use find_recipients first and dry_run to review recipients and text.
canvas:readcanvas:writecanvas_conversations_replySend a reply to an existing Canvas inbox conversation.
canvas:readcanvas:writecanvas_conversations_mark_readmark read a conversation on your account.
canvas:readcanvas:writecanvas_conversations_mark_unreadmark unread a conversation on your account.
canvas:readcanvas:writecanvas_conversations_starstar a conversation on your account.
canvas:readcanvas:writecanvas_conversations_unstarunstar a conversation on your account.
canvas:readcanvas:writecanvas_conversations_archivearchive a conversation on your account.
canvas:readcanvas:writecanvas_conversations_unarchiveunarchive a conversation on your account.
canvas:readcanvas:writecanvas_conversations_deleteDelete a conversation from your inbox.
canvas:readcanvas:writecanvas:destructivecanvas_conversations_delete_messageRemove selected messages from a conversation in your inbox.
canvas:readcanvas:writecanvas:destructive