LeashIndex Get the report

Index / storage

io.github.bruchris/canvas-lms-mcp

io-github-bruchris-canvas-lms-mcp declares 181 capabilities across 181 tools, with 2 critical issues.

100/100 exposureHigh exposure

Manifest recorded 2026-10-22 from tools/list answered by the npm package canvas-lms-mcp@2.8.4 (published to npm as canvas-lms-mcp, listed in the official MCP registry as io.github.bruchris/canvas-lms-mcp 2.8.4), run in an isolated container with no network access and placeholder credentials. The date changes only when the manifest does. Not verified by a maintainer.

Issues

These describe what this server's manifest declares. A product can provide controls that MCP has no way to express — token revocation, an admin console, audit logs — and this page cannot see them. The absence of a declaration is not evidence that a control is absent.

critical · no-revocation · All 181 tools

181 of 181 tools declare no way for the customer to switch them off once granted. This applies to every tool because MCP has no field in which to declare a revocation mechanism; the product may provide one outside MCP that a manifest cannot show.

critical · irreversible-uncapped · 58 of 181 tools

58 tools are classified as irreversible and declare no limit.

high · no-expiry · All 181 tools

181 of 181 tools declare no expiry. This applies to every tool because MCP has no field in which to declare an expiry; the product may provide one outside MCP that a manifest cannot show.

high · no-audit-trail · All 181 tools

181 of 181 tools declare no record of their actions that the customer can read. This applies to every tool because MCP has no field in which to declare an audit requirement; the product may provide one outside MCP that a manifest cannot show.

low · uncapped-read · 123 of 181 tools

123 tools can read data and declare no limit.

Declared capabilities

How each tool was read. declared means the server's own annotation said so — self-reported and unverified. inferred is from the tool's name. assumed means nothing indicated either way.

ToolRead asBasis
health_checkread declared
list_coursesread declared
get_courseread declared
get_syllabusread declared
create_coursedestructive declared
update_coursedestructive declared
list_assignmentsread declared
get_assignmentread declared
list_assignment_groupsread declared
create_assignmentdestructive declared
update_assignmentdestructive declared
delete_assignmentdestructive declared
list_submissionsread declared
get_submissionread declared
grade_submissiondestructive declared
comment_on_submissiondestructive declared
list_course_submission_filesread declared
list_submissions_awaiting_gradingread declared
list_rubricsread declared
get_rubricread declared
get_rubric_assessmentread declared
submit_rubric_assessmentdestructive declared
create_rubricdestructive declared
attach_rubricdestructive declared
delete_rubricdestructive declared
list_quizzesread declared
get_quizread declared
list_quiz_submissionsread declared
list_quiz_questionsread declared
get_quiz_submission_answersread declared
score_quiz_questiondestructive declared
get_quiz_submission_eventsread declared
delete_quizdestructive declared
delete_quiz_questiondestructive declared
create_new_quizdestructive declared
update_new_quizdestructive declared
delete_new_quizdestructive declared
list_new_quiz_itemsread declared
get_new_quiz_itemread declared
create_new_quiz_itemdestructive declared
update_new_quiz_itemdestructive declared
delete_new_quiz_itemdestructive declared
get_quiz_question_responsesread declared
list_filesread declared
list_foldersread declared
get_fileread declared
upload_filedestructive declared
delete_filedestructive declared
download_fileread declared
find_duplicate_filesread declared
list_gradebook_history_daysread declared
get_gradebook_history_dayread declared
list_gradebook_history_submissionsread declared
get_gradebook_history_feedread declared
list_studentsread declared
get_userread declared
get_profileread declared
search_usersread declared
list_course_usersread declared
list_groupsread declared
list_group_membersread declared
list_group_categoriesread declared
create_group_categorydestructive declared
create_groupdestructive declared
delete_groupdestructive declared
add_group_memberdestructive declared
remove_group_memberdestructive declared
list_enrollmentsread declared
list_course_enrollmentsread declared
enroll_userdestructive declared
remove_enrollmentdestructive declared
list_discussionsread declared
get_discussionread declared
list_group_discussionsread declared
get_group_discussionread declared
list_announcementsread declared
post_discussion_entrydestructive declared
create_discussiondestructive declared
update_discussiondestructive declared
delete_discussiondestructive declared
list_modulesread declared
get_moduleread declared
list_module_itemsread declared
get_course_structureread declared
view_course_structureread declared
create_moduledestructive declared
update_moduledestructive declared
delete_moduledestructive declared
create_module_itemdestructive declared
update_module_itemdestructive declared
delete_module_itemdestructive declared
list_pagesread declared
get_pageread declared
create_pagedestructive declared
update_pagedestructive declared
delete_pagedestructive declared
list_calendar_eventsread declared
create_calendar_eventdestructive declared
update_calendar_eventdestructive declared
list_conversationsread declared
get_conversationread declared
get_conversation_unread_countread declared
send_conversationdestructive declared
list_peer_reviewsread declared
get_submission_peer_reviewsread declared
create_peer_reviewdestructive declared
delete_peer_reviewdestructive declared
get_accountread declared
list_accountsread declared
list_sub_accountsread declared
list_account_coursesread declared
list_account_usersread declared
get_account_reportsread declared
list_account_notificationsread declared
view_account_notificationsread declared
search_course_contentread declared
get_course_analyticsread declared
get_student_analyticsread declared
get_course_activity_streamread declared
get_assignment_analyticsread declared
get_root_outcome_groupread declared
list_outcome_groupsread declared
list_outcome_group_linksread declared
get_outcome_groupread declared
list_outcome_group_outcomesread declared
list_outcome_group_subgroupsread declared
get_outcomeread declared
get_outcome_alignmentsread declared
get_outcome_resultsread declared
get_outcome_rollupsread declared
get_outcome_contributing_scoresread declared
get_outcome_mastery_distributionread declared
get_my_coursesread declared
get_my_gradesread declared
get_my_submissionsread declared
get_my_upcoming_assignmentsread declared
get_my_submission_feedbackread declared
get_my_activity_stream_summaryread declared
get_my_activity_streamread declared
list_my_planner_itemsread declared
find_student_across_coursesread declared
get_dashboard_cardsread declared
get_todo_itemsread declared
get_upcoming_eventsread declared
get_missing_submissionsread declared
list_submission_comments_needing_attentionread declared
list_students_needing_attentionread declared
create_content_exportdestructive declared
get_content_exportread declared
list_content_exportsread declared
list_content_migrationsread declared
get_content_migrationread declared
list_content_migration_typesread declared
get_migration_selective_dataread declared
get_migration_asset_id_mappingread declared
list_migration_issuesread declared
create_content_migrationdestructive declared
list_grading_standardsread declared
create_grading_standarddestructive declared
apply_grading_standard_to_coursedestructive declared
set_student_quiz_accommodationdestructive declared
list_student_quiz_accommodationsread declared
set_student_new_quiz_accommodationdestructive declared
list_student_new_quiz_accommodationsread declared
list_assignment_overridesread declared
create_assignment_overridedestructive declared
set_student_assignment_datesdestructive declared
check_course_setupread declared
explain_graderead declared
explain_grading_policyread declared
project_graderead declared
audit_course_linksread declared
audit_course_accessibilityread declared
list_appointment_groupsread declared
get_appointment_groupread declared
create_appointment_groupdestructive declared
update_appointment_groupdestructive declared
delete_appointment_groupdestructive declared
list_appointment_group_usersread declared
list_appointment_group_groupsread declared
next_appointmentread declared

Record history

Earlier records for this server. A correction is added here, never written over the record it corrects.

RecordedExposureSource
2026-10-21100 tools/list answered by the npm package canvas-lms-mcp@2.8.2 (published to npm as canvas-lms-mcp, listed in the official MCP registry as io.github.bruchris/canvas-lms-mcp 2.8.2), run in an isolated container with no network access and placeholder credentials
2026-10-15100 tools/list answered by the npm package canvas-lms-mcp@2.5.1 (published to npm as canvas-lms-mcp, listed in the official MCP registry as io.github.bruchris/canvas-lms-mcp 2.5.1), run in an isolated container with no network access and placeholder credentials
Answering this question about your own agent? The self-serve stack report applies the same reading to your own stack or server and gives you a dated document you can hand to a customer's security review. It is generated in your browser, with nobody to wait for. Buying one does not change this page, its score or its place in the index — see Independence.
Maintain this server? If this page misreads your manifest, or your server has changed, submit its current tools/list response and it will be re-scored and dated. Corrections are published alongside the original, not in place of it.