Labsco
MCP SERVER

Run a Canvas course from the conversation — assignments, modules, pages, grading — or check your own coursework.

Education, Tutoring & Study Tools
Summary
The accessibility scanner is the part that pays for the setup.

Twenty WCAG checks across a whole course — headings, tables, link text, contrast, alt text, captions — is work that otherwise does not get done, and it is exactly the kind of pass a model is good at. For educators the day-to-day win is grading and messaging in one place: find who has not submitted, message them, and grade the rest in bulk. Before pointing it at real student data, settle the privacy question deliberately; the anonymization flag exists, it is off by default, and it does not by itself decide what your institution allows.

What it is

An MCP server for the Canvas LMS with three audiences built into it: students checking their own work, educators running a course, and learning designers auditing one. It runs locally and calls Canvas with your own token, so it can do exactly what you can do and no more.

What you get
  • For students — get_my_upcoming_assignments, get_my_todo_items, get_my_submission_status, get_my_course_grades and get_my_peer_reviews_todo
  • Assignments and grading — list_assignments, create_assignment, update_assignment, list_submissions, bulk_grade_submissions and get_assignment_analytics
  • Reaching your students — send_conversation to message them, and create_announcement to post to the course
  • Course structure — create_module, update_module, add_module_item, delete_module, and get_course_structure for the whole module-to-item tree as JSON
  • Pages and content — create_page, edit_page_content, update_page_settings, bulk_update_pages and upload_course_file
  • Reading a course — list_courses, get_course_details, list_pages, get_page_content, list_modules and list_module_items
  • Discussions — list_discussion_topics, list_discussion_entries, post_discussion_entry and reply_to_discussion_entry
  • Accessibility work — scan_course_content_accessibility runs twenty WCAG checks covering headings, tables, links, contrast, alt text and captions, with fetch_ufixit_report, parse_ufixit_violations and format_accessibility_summary for institutional reports
  • search_canvas_tools to find the right tool, and execute_typescript for bulk work that would be slow as thirty separate calls
  • Courses can be named by Canvas id, course code or SIS id, so you can say the name you actually know
Requirements

Python 3.10 or later, a Canvas API token in CANVAS_API_TOKEN and your institution's Canvas URL in CANVAS_API_URL. The server runs on your machine and uses your token's Canvas permissions — a student sees a student's Canvas, an instructor sees an instructor's. For educator workflows there is an optional privacy control, ENABLE_DATA_ANONYMIZATION=true, which anonymizes supported identity fields before results reach the AI client; whether that satisfies your institution's obligations depends on your deployment and your AI provider, so check before working with student data. Install as a desktop extension, from PyPI, or from source.

Setup effort

One command plus a key — pip install -e ., then supply credentials