LeashIndex Get the report

Index / storage

io.github.Fireiscoolsolo/canvas-lms-mcp-local

io-github-fireiscoolsolo-canvas-lms-mcp-local declares 209 capabilities across 209 tools, with 2 critical issues.

100/100 exposureHigh exposure

Manifest recorded 2026-10-15 from tools/list answered by the npm package canvas-lms-mcp-local@1.0.1 (published to npm as canvas-lms-mcp-local, listed in the official MCP registry as io.github.Fireiscoolsolo/canvas-lms-mcp-local 1.0.1), 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 209 tools

209 of 209 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 · 27 of 209 tools

27 tools are classified as irreversible and declare no limit.

high · no-expiry · All 209 tools

209 of 209 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 209 tools

209 of 209 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.

high · uncapped-write · 19 of 209 tools

19 tools can modify data and declare no limit.

low · uncapped-read · 163 of 209 tools

163 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
whoamiread declared
get_my_profileread declared
get_my_settingsread declared
check_token_expiryread declared
get_rate_limit_statusread declared
list_my_enrollmentsread declared
get_activity_streamread declared
get_activity_stream_summaryread declared
list_todoread declared
get_todo_countread declared
list_upcoming_eventsread declared
get_dashboard_cardsread declared
list_favorite_coursesread declared
add_favorite_coursewrite inferred
remove_favorite_coursedelete inferred
get_communication_channelsread declared
get_notification_preferencesread declared
get_my_page_viewsread declared
list_content_sharesread declared
get_custom_dataread declared
set_custom_datawrite inferred
list_bookmarksread declared
create_bookmarkwrite inferred
delete_bookmarkdelete inferred
list_my_observeesread declared
list_coursesread declared
get_courseread declared
get_syllabusread declared
get_course_settingsread declared
list_course_tabsread declared
get_course_activity_streamread declared
list_sectionsread declared
list_course_usersread declared
get_user_in_courseread declared
get_course_permissionsread declared
list_course_nicknamesread declared
set_course_nicknamewrite inferred
remove_course_nicknamedelete inferred
get_course_progressread declared
list_todo_for_courseread declared
list_blackout_datesread declared
list_assignmentsread declared
get_assignmentread declared
list_assignment_groupsread declared
get_assignment_groupread declared
list_assignment_overridesread declared
get_my_overrideread declared
get_assignment_datesread declared
get_score_statisticsread declared
get_late_policyread declared
list_missing_submissionsread declared
list_upcoming_assignmentsread declared
list_overdue_assignmentsread declared
get_my_submissionread declared
list_my_submissionsread declared
get_submission_summaryread declared
get_submission_historyread declared
list_submission_attachmentsread declared
get_originality_reportread declared
get_rubric_assessmentread declared
list_submission_commentsread declared
mark_submission_readread inferred
submit_assignment_textdestructive declared
submit_assignment_urldestructive declared
submit_assignment_filedestructive declared
upload_submission_filewrite inferred
post_submission_commentdestructive declared
upload_comment_attachmentwrite inferred
download_submission_attachmentread declared
get_all_gradesread declared
get_course_grade_breakdownread declared
what_if_graderead inferred
reset_what_if_gradeswrite assumed
get_grading_standardread declared
list_grading_periodsread declared
get_my_assignment_analyticsread declared
get_my_activity_analyticsread declared
get_my_communication_analyticsread declared
get_unposted_gradesread declared
compute_needed_scoreread declared
grade_impact_rankingread declared
get_grade_trendread declared
list_quizzesread declared
get_quizread declared
get_my_quiz_submissionread declared
list_my_quiz_submissionsread declared
get_quiz_submission_timeread declared
list_quiz_questionsread declared
get_quiz_extensionsread declared
get_quiz_ip_filtersread declared
get_quiz_assignment_overridesread declared
list_new_quizzesread declared
get_new_quizread declared
get_new_quiz_itemsread declared
list_topicsread declared
get_topicread declared
get_full_topic_viewread declared
list_entriesread declared
list_entry_repliesread declared
post_entrydestructive declared
reply_to_entrydestructive declared
edit_my_entrydestructive declared
delete_my_entrydestructive declared
rate_entrywrite assumed
mark_topic_readread inferred
mark_all_entries_readread inferred
mark_entry_readread inferred
subscribe_topicread inferred
unsubscribe_topicwrite assumed
list_announcementsread declared
get_unread_discussion_countread declared
list_conversationsread declared
get_conversationread declared
send_messagedestructive declared
reply_to_conversationdestructive declared
find_recipientsread declared
add_recipientsdestructive declared
mark_conversation_readread inferred
mark_conversation_unreadwrite assumed
star_conversationwrite assumed
unstar_conversationwrite assumed
archive_conversationdelete inferred
delete_conversationdestructive declared
get_unread_conversation_countread declared
batch_update_conversationsdestructive declared
list_calendar_eventsread declared
get_calendar_eventread declared
create_personal_eventwrite inferred
update_calendar_eventwrite inferred
delete_calendar_eventdestructive declared
list_appointment_groupsread declared
get_appointment_groupread declared
reserve_appointment_slotdestructive declared
cancel_reservationdestructive declared
list_my_reservationsread declared
get_course_paceread declared
list_course_filesread declared
list_foldersread declared
get_folderread declared
get_folder_treeread declared
get_file_metadataread declared
get_file_public_urlread declared
download_fileread declared
list_my_filesread declared
upload_to_my_fileswrite inferred
get_storage_quotaread declared
delete_my_filedestructive declared
create_folderwrite inferred
list_pagesread declared
get_page_contentread declared
list_page_revisionsread declared
get_page_revisionread declared
list_modulesread declared
get_moduleread declared
list_module_itemsread declared
get_module_itemread declared
mark_module_item_donewrite assumed
mark_module_item_readread inferred
select_mastery_pathdestructive declared
get_module_item_sequenceread declared
list_media_objectsread declared
get_media_captionsread declared
download_media_captionsread declared
create_content_exportwrite inferred
get_content_exportread declared
list_external_toolsread declared
get_tool_launch_urlread declared
list_conferencesread declared
list_collaborationsread declared
list_my_groupsread declared
get_groupread declared
list_group_membersread declared
list_group_discussionsread declared
list_group_filesread declared
list_group_pagesread declared
post_group_discussiondestructive declared
list_group_categoriesread declared
join_groupdestructive declared
leave_groupdestructive declared
get_group_activity_streamread declared
list_rubricsread declared
get_rubricread declared
get_my_rubric_assessmentread declared
list_my_peer_reviewsread declared
get_peer_review_assignmentread declared
submit_peer_reviewdestructive declared
list_outcomesread declared
get_outcomeread declared
list_outcome_groupsread declared
get_my_outcome_resultsread declared
get_outcome_rollupread declared
smart_searchread declared
search_course_contentread declared
grep_all_coursesread declared
get_week_aheadread declared
get_workload_forecastread declared
get_all_unreadread declared
course_health_checkread declared
semester_snapshotread declared
diff_since_last_checkread declared
syllabus_digestread declared
deadline_conflict_checkread declared
study_priority_rankingread declared
download_all_course_fileswrite assumed
export_course_archivedelete inferred
raw_canvas_requestread declared
search_toolsread declared
test_connectionread declared
get_server_configread declared
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.