io.github.bruchris/canvas-lms-mcp
io-github-bruchris-canvas-lms-mcp declares 181 capabilities across 181 tools, with 2 critical issues.
Issues
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.
58 tools are classified as irreversible and declare no limit.
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.
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.
123 tools can read data and declare no limit.
Declared capabilities
| Tool | Read as | Basis |
|---|---|---|
health_check | read |
declared |
list_courses | read |
declared |
get_course | read |
declared |
get_syllabus | read |
declared |
create_course | destructive |
declared |
update_course | destructive |
declared |
list_assignments | read |
declared |
get_assignment | read |
declared |
list_assignment_groups | read |
declared |
create_assignment | destructive |
declared |
update_assignment | destructive |
declared |
delete_assignment | destructive |
declared |
list_submissions | read |
declared |
get_submission | read |
declared |
grade_submission | destructive |
declared |
comment_on_submission | destructive |
declared |
list_course_submission_files | read |
declared |
list_submissions_awaiting_grading | read |
declared |
list_rubrics | read |
declared |
get_rubric | read |
declared |
get_rubric_assessment | read |
declared |
submit_rubric_assessment | destructive |
declared |
create_rubric | destructive |
declared |
attach_rubric | destructive |
declared |
delete_rubric | destructive |
declared |
list_quizzes | read |
declared |
get_quiz | read |
declared |
list_quiz_submissions | read |
declared |
list_quiz_questions | read |
declared |
get_quiz_submission_answers | read |
declared |
score_quiz_question | destructive |
declared |
get_quiz_submission_events | read |
declared |
delete_quiz | destructive |
declared |
delete_quiz_question | destructive |
declared |
create_new_quiz | destructive |
declared |
update_new_quiz | destructive |
declared |
delete_new_quiz | destructive |
declared |
list_new_quiz_items | read |
declared |
get_new_quiz_item | read |
declared |
create_new_quiz_item | destructive |
declared |
update_new_quiz_item | destructive |
declared |
delete_new_quiz_item | destructive |
declared |
get_quiz_question_responses | read |
declared |
list_files | read |
declared |
list_folders | read |
declared |
get_file | read |
declared |
upload_file | destructive |
declared |
delete_file | destructive |
declared |
download_file | read |
declared |
find_duplicate_files | read |
declared |
list_gradebook_history_days | read |
declared |
get_gradebook_history_day | read |
declared |
list_gradebook_history_submissions | read |
declared |
get_gradebook_history_feed | read |
declared |
list_students | read |
declared |
get_user | read |
declared |
get_profile | read |
declared |
search_users | read |
declared |
list_course_users | read |
declared |
list_groups | read |
declared |
list_group_members | read |
declared |
list_group_categories | read |
declared |
create_group_category | destructive |
declared |
create_group | destructive |
declared |
delete_group | destructive |
declared |
add_group_member | destructive |
declared |
remove_group_member | destructive |
declared |
list_enrollments | read |
declared |
list_course_enrollments | read |
declared |
enroll_user | destructive |
declared |
remove_enrollment | destructive |
declared |
list_discussions | read |
declared |
get_discussion | read |
declared |
list_group_discussions | read |
declared |
get_group_discussion | read |
declared |
list_announcements | read |
declared |
post_discussion_entry | destructive |
declared |
create_discussion | destructive |
declared |
update_discussion | destructive |
declared |
delete_discussion | destructive |
declared |
list_modules | read |
declared |
get_module | read |
declared |
list_module_items | read |
declared |
get_course_structure | read |
declared |
view_course_structure | read |
declared |
create_module | destructive |
declared |
update_module | destructive |
declared |
delete_module | destructive |
declared |
create_module_item | destructive |
declared |
update_module_item | destructive |
declared |
delete_module_item | destructive |
declared |
list_pages | read |
declared |
get_page | read |
declared |
create_page | destructive |
declared |
update_page | destructive |
declared |
delete_page | destructive |
declared |
list_calendar_events | read |
declared |
create_calendar_event | destructive |
declared |
update_calendar_event | destructive |
declared |
list_conversations | read |
declared |
get_conversation | read |
declared |
get_conversation_unread_count | read |
declared |
send_conversation | destructive |
declared |
list_peer_reviews | read |
declared |
get_submission_peer_reviews | read |
declared |
create_peer_review | destructive |
declared |
delete_peer_review | destructive |
declared |
get_account | read |
declared |
list_accounts | read |
declared |
list_sub_accounts | read |
declared |
list_account_courses | read |
declared |
list_account_users | read |
declared |
get_account_reports | read |
declared |
list_account_notifications | read |
declared |
view_account_notifications | read |
declared |
search_course_content | read |
declared |
get_course_analytics | read |
declared |
get_student_analytics | read |
declared |
get_course_activity_stream | read |
declared |
get_assignment_analytics | read |
declared |
get_root_outcome_group | read |
declared |
list_outcome_groups | read |
declared |
list_outcome_group_links | read |
declared |
get_outcome_group | read |
declared |
list_outcome_group_outcomes | read |
declared |
list_outcome_group_subgroups | read |
declared |
get_outcome | read |
declared |
get_outcome_alignments | read |
declared |
get_outcome_results | read |
declared |
get_outcome_rollups | read |
declared |
get_outcome_contributing_scores | read |
declared |
get_outcome_mastery_distribution | read |
declared |
get_my_courses | read |
declared |
get_my_grades | read |
declared |
get_my_submissions | read |
declared |
get_my_upcoming_assignments | read |
declared |
get_my_submission_feedback | read |
declared |
get_my_activity_stream_summary | read |
declared |
get_my_activity_stream | read |
declared |
list_my_planner_items | read |
declared |
find_student_across_courses | read |
declared |
get_dashboard_cards | read |
declared |
get_todo_items | read |
declared |
get_upcoming_events | read |
declared |
get_missing_submissions | read |
declared |
list_submission_comments_needing_attention | read |
declared |
list_students_needing_attention | read |
declared |
create_content_export | destructive |
declared |
get_content_export | read |
declared |
list_content_exports | read |
declared |
list_content_migrations | read |
declared |
get_content_migration | read |
declared |
list_content_migration_types | read |
declared |
get_migration_selective_data | read |
declared |
get_migration_asset_id_mapping | read |
declared |
list_migration_issues | read |
declared |
create_content_migration | destructive |
declared |
list_grading_standards | read |
declared |
create_grading_standard | destructive |
declared |
apply_grading_standard_to_course | destructive |
declared |
set_student_quiz_accommodation | destructive |
declared |
list_student_quiz_accommodations | read |
declared |
set_student_new_quiz_accommodation | destructive |
declared |
list_student_new_quiz_accommodations | read |
declared |
list_assignment_overrides | read |
declared |
create_assignment_override | destructive |
declared |
set_student_assignment_dates | destructive |
declared |
check_course_setup | read |
declared |
explain_grade | read |
declared |
explain_grading_policy | read |
declared |
project_grade | read |
declared |
audit_course_links | read |
declared |
audit_course_accessibility | read |
declared |
list_appointment_groups | read |
declared |
get_appointment_group | read |
declared |
create_appointment_group | destructive |
declared |
update_appointment_group | destructive |
declared |
delete_appointment_group | destructive |
declared |
list_appointment_group_users | read |
declared |
list_appointment_group_groups | read |
declared |
next_appointment | read |
declared |
Record history
| Recorded | Exposure | Source |
|---|---|---|
| 2026-10-21 | 100 | 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-15 | 100 | 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 |
tools/list response and it will be re-scored and dated.
Corrections are published alongside the original, not in place of it.