What Can Canvas MCP Do for You?
Canvas MCP provides AI-powered tools for learning designers who build, audit, and maintain Canvas courses:
🏗️ Course Scaffolding
Build complete course structures from specs, templates, or by cloning existing courses. Create modules, pages, assignments, and discussions in bulk.
✅ Quality Assurance
Pre-semester audits that check module structure, content completeness, publishing state, date consistency, and naming conventions.
♿ Accessibility Compliance
Scan course content for WCAG violations, generate prioritized reports, guide remediation, and verify fixes.
📊 Course Structure Analysis
Get a full module-to-items tree as JSON in a single call. Understand course architecture at a glance.
📄 Page & Module Management
Create, edit, and organize pages and modules. Bulk update content across entire courses.
📋 Content Templates
Clone structures across courses, apply standard templates, and ensure consistency at scale.
Prerequisites
- Python 3.10+ installed on your computer
- An MCP-compatible AI client — Claude Desktop, Claude Code, Cursor, ChatGPT, or others
- Canvas Account with designer or admin permissions
Installation
Option A: Use the Hosted Server (Fastest)
No installation needed. Add this to your MCP client config:
{
"mcpServers": {
"canvas-api": {
"url": "https://mcp.illinihunt.org/mcp",
"headers": {
"X-Canvas-Token": "YOUR_CANVAS_TOKEN",
"X-Canvas-URL": "https://canvas.youruniversity.edu"
}
}
}
}
Option B: Install Locally
git clone https://github.com/vishalsachdev/canvas-mcp.git
cd canvas-mcp
# Create virtual environment
python3 -m venv .venv
. .venv/bin/activate
# Install
pip install -e .
Configure .env:
CANVAS_API_TOKEN=your_token_here
CANVAS_API_URL=https://canvas.youruniversity.edu
Add to your MCP client config:
{
"mcpServers": {
"canvas-api": {
"command": "/path/to/canvas-mcp/.venv/bin/canvas-mcp-server"
}
}
}
Available Tools
Course Structure
get_course_structure— Full module→items tree as JSON (one call)list_modules— List all modules in a courselist_module_items— Items within a specific moduleget_course_details— Course metadata and settings
Accessibility
scan_course_content_accessibility— Scan for WCAG violationsfetch_ufixit_report— Retrieve UFIXIT accessibility reportparse_ufixit_violations— Extract structured violations from reportformat_accessibility_summary— Format violations into readable report
Page Management
create_page— Create a new pageedit_page_content— Update page HTML contentlist_pages— List all pages in a courseget_page_content— Read page contentbulk_update_pages— Update multiple pages at once
Module Management
create_module— Create a new moduleadd_module_item— Add items to a moduleupdate_module— Modify module settingsupdate_module_item— Modify item settings
Assignment & Discussion Setup
create_assignment— Create assignments with due dates, points, and submission typescreate_discussion_topic— Create discussion forumscreate_rubric— Build grading rubricsassociate_rubric_with_assignment— Link rubrics to assignments
AI Skills (Automated Workflows)
Skills are pre-built workflows that combine multiple tools into complete processes. Available via skills.sh or as Claude Code slash commands.
✅ canvas-course-qc
Pre-semester quality audit. Checks structure, content, publishing state, date consistency, and completeness.
Try: "Run a QC check on CS 101"
♿ canvas-accessibility-auditor
WCAG compliance workflow. Scans content, generates prioritized reports, guides remediation.
Try: "Audit accessibility for BADM 350"
🏗️ canvas-course-builder
Scaffold complete course structures from specs, templates, or by cloning existing courses.
Try: "Build a 15-week structure for CS 102"
Installing Skills
# Install skills for 7+ AI agents (Claude Code, Cursor, etc.)
npx skills add vishalsachdev/canvas-mcp
Example Workflows
📊 Course Structure Audit
Ask: "Show me the full structure of BADM 350"
🔧 Bulk Content Update
Ask: "Update all overview pages to include the new syllabus link"
♿ Accessibility Remediation
Ask: "Fix all accessibility issues in BADM 350"
Troubleshooting
"Permission denied" or "Unauthorized"
- Verify your Canvas account has designer or admin role in the course
- Check your API token has sufficient permissions
- Some institutions restrict API access — check with your Canvas admin
"Course not found"
- Use the course code (e.g., "BADM_350") or Canvas course ID
- Verify the course exists and you have access
Need More Help?
Open an issue on GitHub for additional support.
Ready to Streamline Course Design?
Install Canvas MCP and start building, auditing, and optimizing courses with AI assistance.