Canvas

MCP server for Canvas LMS offering 90+ tools and 8 agent skills to interact with Canvas data via MCP-compatible clients.
  • python

69

GitHub Stars

python

Language

6 months ago

First Indexed

2 months ago

Catalog Refreshed

Documentation & install

Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.

Installation

Add the following to your MCP client configuration file.

Configuration

View docs

The Canvas MCP Server lets AI agents securely access Canvas LMS data and perform common classroom tasks through natural language prompts. It provides a scalable, extensible interface with 90+ tools and 8 agent-ready workflows, enabling students, educators, and learning designers to interact with Canvas as part of their AI-assisted workflows.

How to use

Connect to the server using an MCP-compatible client such as Claude Desktop, Cursor, Windsurf, or Claude Code, then start asking questions and issuing actions in natural language. You can retrieve course information, view assignments and grades, manage discussions and announcements, and perform bulk operations like grading or content updates. You have two main deployment options: use the hosted MCP server for quick testing and student-facing work, or run a local MCP server for FERPA-compliant workflows and full control over data.

How to install

Prerequisites: you need Python 3.10 or newer and a Canvas API token with access to your institution’s Canvas instance. You also need an MCP client to connect to the server.

# (1) Create and activate a virtual environment
python3 -m venv .venv
. .venv/bin/activate

# (2) Install the Canvas MCP Server package in editable mode
pip install -e .

# (3) Copy the environment template and customize credentials
cp env.template .env
# Edit .env to set CANVAS_API_TOKEN and CANVAS_API_URL

Optional: set up local environment variables for FERPA compliance and security as needed (see security sections for details). After configuring, you can run and test the server locally using the standard startup flow.

# (4) Start the MCP server locally
canvas-mcp-server

# (5) Test the server configuration
canvas-mcp-server --test

# (6) View the active configuration
canvas-mcp-server --config

Additional sections

Hosted server access provides a convenient way to try Canvas MCP without installing anything. To use the hosted server, provide your Canvas token and Canvas URL to your MCP client as HTTP headers when connecting to the URL https://mcp.illinihunt.org/mcp.

Security and privacy are built-in by default. Tool execution runs in a sandbox, and sensitive data can be anonymized for educator workflows. If you plan to work with FERPA-protected data, consider running a local installation to ensure data stays within your institution’s environment.

Troubleshooting tips: verify the environment file (.env) has the required CANVAS_API_TOKEN and CANVAS_API_URL, check the virtual environment is activated, and confirm the canvas-mcp-server binary is accessible in your PATH. If authentication fails, recheck token permissions in Canvas and ensure token scope matches your needs.

Available tools

canvas-week-plan

Students receive a weekly planner of due dates, submission statuses, grades, and peer reviews.

canvas-morning-check

Educators get a course health dashboard highlighting submission rates, at-risk students, and deadlines.

canvas-bulk-grading

Educators perform grading workflows with a decision tree and optional code execution safeguards.

canvas-peer-review-manager

Educators manage the full peer-review pipeline with analytics, reminders, and reports.

canvas-discussion-facilitator

Facilitate discussions by browsing posts, monitoring participation, and replying.

canvas-course-qc

Learning Designers run a pre-semester quality audit covering structure, content, publishing, and completeness.

canvas-accessibility-auditor

Learning Designers perform WCAG scans, generate prioritized reports, and guide remediation.

canvas-course-builder

Learning Designers scaffold courses from specs, templates, or existing courses.

list_courses

List all enrolled courses and provide summaries.

get_course_details

Fetch course information including syllabus and content.

list_pages

List course pages and their content.

get_page_content

Read the content of a specific course page.

list_modules

List modules within a course.

list_module_items

List items contained in a module.

list_discussion_topics

List discussion topics for a course.

list_discussion_entries

List posts within a discussion.

post_discussion_entry

Add a new discussion post.

reply_to_discussion_entry

Reply to an existing discussion post.

get_course_structure

Return the full module→items tree as JSON for a course.

scan_course_content_accessibility

Run WCAG accessibility checks on course content.

fetch_ufixit_report

Fetch institutional accessibility reports.

parse_ufixit_violations

Extract structured accessibility violations from reports.

format_accessibility_summary

Produce a readable summary of accessibility issues.

search_canvas_tools

Discover available code/API operations for bulk tasks.

execute_typescript

Run TypeScript code for token-efficient bulk operations.

bulk_grade_submissions

Batch-grade multiple submissions with a grading function.

create_assignment

Create a new assignment in a course.

update_assignment

Update details of an existing assignment.

list_submissions

List student submissions for an assignment.

get_assignment_analytics

Show analytics for an assignment or quiz.

send_conversation

Message students or groups within a course.

create_announcement

Post announcements to a course.

create_module

Create a new course module.

update_module

Modify settings of an existing module.

add_module_item

Add content to a module.

delete_module

Remove a module from a course.

create_page

Create a new course page.

edit_page_content

Update the content of a page.

update_page_settings

Publish or unpublish pages in a course.

bulk_update_pages

Apply batch operations to multiple pages.

upload_course_file

Upload a local file to a course.

Built by
VeilStrat
AI signals for GTM teams
© 2026 VeilStrat. All rights reserved.All systems operational