Canvas LMS MCP server — read courses, assignments, submissions, rubrics, quizzes; grade and comment from any AI agent
- ✓Open-source license (MIT)
- ✓Actively maintained (<30d)
- ✓Clear description
- ✓Topics declared
claude mcp add canvas-lms-mcp -- npx -y canvas-lms-mcp{
"mcpServers": {
"canvas-lms-mcp": {
"command": "npx",
"args": ["-y", "canvas-lms-mcp"]
}
}
}MCP Servers overview
# Canvas LMS MCP Server > The TypeScript MCP server for Canvas LMS. [](https://github.com/bruchris/canvas-lms-mcp/actions/workflows/ci.yml) [](https://www.npmjs.com/package/canvas-lms-mcp) [](https://opensource.org/licenses/MIT) [](https://nodejs.org) [](https://www.npmjs.com/package/canvas-lms-mcp) [](https://registry.modelcontextprotocol.io/v0/servers/io.github.bruchris%2Fcanvas-lms-mcp) MCP server for [Canvas LMS](https://www.instructure.com/canvas). Read courses, assignments, submissions, rubrics, quizzes; grade, comment, manage course content, and handle Canvas admin workflows from any AI agent. 148 tools across Canvas courses, assignments, submissions, gradebook history, rubrics, quizzes, New Quizzes (LTI), files, users, groups, enrollments, discussions, modules, pages, calendar, conversations, peer reviews, accounts, analytics, outcomes, grading standards, grade projection, link audit, accessibility audit, content exports, quiz accommodations, student workflows, student search, dashboard, instructor attention workflows, and health checks. Three deployment modes: stdio, HTTP, and library import. ## One-click install (Claude Desktop) 1. **[Download `canvas-lms-mcp.mcpb`](https://github.com/bruchris/canvas-lms-mcp/releases/latest/download/canvas-lms-mcp.mcpb)** from the latest release. 2. Double-click the file (or drag it into Claude Desktop's Extensions settings). 3. When prompted, paste your Canvas API token and Canvas API base URL (e.g. `https://school.instructure.com/api/v1`). Teachers and staff handling student data can also flip **FERPA mode — pseudonymize students** on in the same dialog ([what it does](#ferpa-mode-student-pseudonymization)). No terminal, no Node.js install, no config-file editing — Claude Desktop bundles the runtime and handles config for you. The same `.mcpb` works in Claude Code and MCP for Windows. Prefer the terminal? Use the [Quick Start](#quick-start) below. ## Comparison | | canvas-lms-mcp | [vishalsachdev/canvas-mcp](https://github.com/vishalsachdev/canvas-mcp) | [DMontgomery40/mcp-canvas-lms](https://github.com/DMontgomery40/mcp-canvas-lms) | |---|---|---|---| | Language | TypeScript | Python | TypeScript | | Tools | 148 | 80+ | 54 | | License | [](https://github.com/bruchris/canvas-lms-mcp/blob/main/LICENSE) | [](https://github.com/vishalsachdev/canvas-mcp/blob/main/LICENSE) | [](https://github.com/DMontgomery40/mcp-canvas-lms/blob/main/LICENSE) | | Last commit | [](https://github.com/bruchris/canvas-lms-mcp) | [](https://github.com/vishalsachdev/canvas-mcp) | [](https://github.com/DMontgomery40/mcp-canvas-lms) | ## Quick Start ### 1. Get a Canvas API Token 1. Log in to your Canvas instance 2. Go to **Account > Settings** 3. Scroll to **Approved Integrations** and click **+ New Access Token** 4. Give it a name (e.g., "MCP Server") and click **Generate Token** 5. Copy the token immediately -- you won't see it again ### 2. Run the Setup Wizard ```bash npx canvas-lms-mcp init ``` The wizard detects your installed AI clients (Claude Desktop, Cursor, VS Code, Windsurf, Codex, Continue, Claude Code), prompts for your Canvas token and base URL, validates the credentials against your Canvas instance, and writes the config for every client you select. `add-mcp` is also supported as a generic alternative: `npx add-mcp canvas-lms-mcp`. For clients not yet supported by the wizard, or if you prefer editing config files by hand, see [docs/manual-setup.md](./docs/manual-setup.md). ## Agent Skills Install reusable Canvas workflows into Claude Code, Cursor, GitHub Copilot, Cline, and 40+ other AI agents: ```bash npx skills add bruchris/canvas-lms-mcp ``` | Skill | Description | |-------|-------------| | `canvas-at-risk-students` | Surface students with missing assignments or declining grades and send targeted outreach | | `canvas-gradebook-audit` | Inspect the full grade-change audit trail — who changed what grade, when, and by how much | | `canvas-outcome-tracker` | Track learning outcome mastery and class-wide proficiency for accreditation and program review | Skills are markdown workflow files (no extra dependencies). They work with the MCP server you already have installed. See the [`skills/` directory](./skills/) for the full list. ## Example Prompts Once configured, try these prompts with your AI client: - "List all my active courses" - "Show me the assignments for course 12345" - "What's the average grade on the midterm exam?" - "Grade Alice's essay submission with a B+ and add feedback" - "Show me the rubric for the final project" - "What discussions are happening in my Biology course?" - "List all upcoming calendar events for course 12345" - "Send a message to student 67890 about their missing assignment" ## Tool Inventory ### All Registered Tools (148) | Category | Tools | |----------|-------| | Health | `health_check` | | Courses | `list_courses`, `get_course`, `get_syllabus`, `create_course`, `update_course` | | Assignments | `list_assignments`, `get_assignment`, `list_assignment_groups`, `create_assignment`, `update_assignment`, `delete_assignment` | | Assignment Overrides | `list_assignment_overrides`, `create_assignment_override`, `set_student_assignment_dates` | | Submissions | `list_submissions`, `get_submission`, `grade_submission`, `comment_on_submission` | | Submissions Awaiting Grading | `list_submissions_awaiting_grading` | | Submission Files | `list_course_submission_files` | | Rubrics | `list_rubrics`, `get_rubric`, `get_rubric_assessment`, `submit_rubric_assessment`, `create_rubric` | | Quizzes | `list_quizzes`, `get_quiz`, `list_quiz_submissions`, `list_quiz_questions`, `get_quiz_submission_answers`, `score_quiz_question`, `get_quiz_submission_events` | | Quiz Question Responses | `get_quiz_question_responses` | | Quiz Accommodations | `list_student_quiz_accommodations`, `set_student_quiz_accommodation` | | New Quizzes (LTI) | `create_new_quiz`, `update_new_quiz`, `delete_new_quiz`, `list_new_quiz_items`, `get_new_quiz_item`, `create_new_quiz_item`, `update_new_quiz_item`, `delete_new_quiz_item` | | New Quiz Accommodations | `list_student_new_quiz_accommodations`, `set_student_new_quiz_accommodation` | | Files | `list_files`, `list_folders`, `get_file`, `upload_file`, `download_file`, `delete_file`, `find_duplicate_files` | | Gradebook History | `list_gradebook_history_days`, `get_gradebook_history_day`, `list_gradebook_history_submissions`, `get_gradebook_history_feed` | | Grade Explanation | `explain_grade` | | Grading Policy | `explain_grading_policy` | | Grade Projection | `project_grade` | | Grading Standards | `list_grading_standards`, `create_grading_standard`, `apply_grading_standard_to_course` | | Users | `list_students`, `get_user`, `get_profile`, `search_users`, `list_course_users` | | Groups | `list_groups`, `list_group_members` | | Enrollments | `list_enrollments`, `list_course_enrollments`, `enroll_user`, `remove_enrollment` | | Discussions | `list_discussions`, `get_discussion`, `list_announcements`, `post_discussion_entry`, `create_discussion`, `update_discussion`, `delete_discussion` | | Modules | `list_modules`, `get_module`, `list_module_items`, `get_course_structure`, `view_course_structure`, `create_module`, `update_module`, `create_module_item` | | Pages | `list_pages`, `get_page`, `create_page`, `update_page`, `delete_page` | | Calendar | `list_calendar_events`, `create_calendar_event`, `update_calendar_event` | | Conversations | `list_conversations`, `get_conversation`, `get_conversation_unread_count`, `send_conversation` | | Peer Reviews | `list_peer_reviews`, `get_submission_peer_reviews`, `create_peer_review`, `delete_peer_review` | | Accounts | `get_account`, `list_accounts`, `list_sub_accounts`, `list_account_courses`, `list_account_users`, `get_account_reports`, `list_account_notifications`, `view_account_notifications` | | Analytics | `search_course_content`, `get_course_analytics`, `get_student_analytics`, `get_course_activity_stream`, `get_assignment_analytics` | | Outcomes | `get_root_outcome_group`, `list_outcome_groups`, `list_outcome_group_links`, `get_outcome_group`, `list_outcome_group_outcomes`, `list_outcome_group_subgroups`, `get_outcome`, `get_outcome_alignments`, `get_outcome_results`, `get_outcome_rollups`, `get_outcome_contributing_scores`, `get_outcome_mastery_distribution` | | Content Exports | `list_content_exports`, `get_content_export`, `create_content_export` | | Course Setup | `check_course_setup` | | Link Audit | `audit_course_links` | | Accessibility Audit | `audit_course_accessibility` | | Student | `get_my_courses`, `get_my_grades`, `get_my_submissions`, `get_my_upcoming_assignments`, `get_my_submission_feedback` | | Student Search | `find_student_across_courses` | | Dashboard | `get_dashboard_cards`, `get_todo_items`, `get_upcoming_events`, `get_missing_submissions` | | Attention | `list_submission_comments_needing_attention`, `list_students_needing_attention` | | FERPA (conditional) | `resolve_pseudonym` — registered only when `CANVAS_PSEUDONYMIZE_STUDENTS=true` | 106 tools are read
What people ask about canvas-lms-mcp
What is bruchris/canvas-lms-mcp?
+
bruchris/canvas-lms-mcp is mcp servers for the Claude AI ecosystem. Canvas LMS MCP server — read courses, assignments, submissions, rubrics, quizzes; grade and comment from any AI agent It has 4 GitHub stars and was last updated today.
How do I install canvas-lms-mcp?
+
You can install canvas-lms-mcp by cloning the repository (https://github.com/bruchris/canvas-lms-mcp) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.
Is bruchris/canvas-lms-mcp safe to use?
+
Our security agent has analyzed bruchris/canvas-lms-mcp and assigned a Trust Score of 87/100 (tier: Trusted). See the full breakdown of passed checks and flags on this page.
Who maintains bruchris/canvas-lms-mcp?
+
bruchris/canvas-lms-mcp is maintained by bruchris. The last recorded GitHub activity is from today, with 1 open issues.
Are there alternatives to canvas-lms-mcp?
+
Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.
Deploy canvas-lms-mcp to your cloud
Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.
Maintain this repo? Add a badge to your README
Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.
[](https://claudewave.com/repo/bruchris-canvas-lms-mcp)<a href="https://claudewave.com/repo/bruchris-canvas-lms-mcp"><img src="https://claudewave.com/api/badge/bruchris-canvas-lms-mcp" alt="Featured on ClaudeWave: bruchris/canvas-lms-mcp" width="320" height="64" /></a>More MCP Servers
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
The fastest path to AI-powered full stack observability, even for lean teams.
Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!