Canvas MCP
Connects to the Canvas LMS API to provide tools for managing courses, deadlines, grades, content, communication, and planning.
Enables exporting schedules as .ics files compatible with Google Calendar.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Canvas MCP what assignments are due this week?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Canvas MCP
MCP server for Claude Desktop that connects to the Canvas LMS API. Ask Claude about your courses, deadlines, grades, and feedback directly from your chat interface.
How it works
Canvas MCP exposes 29 tools across six categories: courses, deadlines, grades, content, communication, and planning. Once connected, you can ask Claude things like "what assignments are due this week" or "how am I doing in my algorithms course" and get answers pulled directly from Canvas.
Deadlines are classified into four urgency levels: critical, urgent, attention, and okay. You can export your schedule as an .ics file compatible with Google Calendar, Apple Calendar, and Outlook. Twelve pre-built prompts cover the most common study workflows, including a morning briefing and a catch-up plan.
Currently configured for Fontys. Other institutions can be added via the CANVAS_BASE_URL environment variable.
Related MCP server: Canvas LMS MCP Server
Setup
Option 1: one-click install
Download canvas-mcp-1.1.0.dxt from releases and open it in Claude Desktop.
Option 2: manual
git clone https://github.com/mehdi6132/canvas-mcp
cd canvas-mcp
npm installAdd to your Claude Desktop config:
{
"mcpServers": {
"canvas": {
"command": "node",
"args": ["path/to/canvas-mcp/index.js"],
"env": {
"CANVAS_API_TOKEN": "your-token-here",
"CANVAS_BASE_URL": "https://canvas.fontys.nl"
}
}
}
}Get your Canvas API token at Account > Settings > New Access Token.
Available Tools
29 toolsexport-to-calendarB
Exporteer deadlines als .ics kalenderbestand voor Google Calendar, Apple Calendar of Outlook
Inputs: days, courseId, onlyOpen.
get-all-announcementsA
Haal alle aankondigingen op across alle vakken, gesorteerd op datum
Inputs: days.
get-all-coursesA
Haal alle vakken op inclusief afgeronde, met metadata zoals semester, status en cijfer
Inputs: includeCompleted.
get-all-feedbackA
Haal alle feedback op across alle vakken, chronologisch gesorteerd
Inputs: days.
get-assignment-detailsA
Haal volledige details op van een opdracht: beschrijving, rubric, deadlines, submission requirements
Inputs: courseId (required), assignmentId (required).
get-assignment-feedbackB
Haal de feedback van de docent op voor een specifieke opdracht
Inputs: courseId (required), assignmentId (required).
get-assignment-rubricA
Haal de rubric criteria op van een opdracht
Inputs: courseId (required), assignmentId (required).
get-course-announcementsC
Haal aankondigingen op voor een specifiek vak
Inputs: courseId (required), limit.
get-course-calendarB
Haal alle events en deadlines op van een vak in kalenderformaat
Inputs: courseId, days.
get-course-filesA
Haal alle bestanden van een vak op, filterbaar op type (pdf, docx, etc)
Inputs: courseId (required), contentType.
get-course-overviewB
Haal een compleet overzicht op van één vak: modules, paginas, opdrachten, aankondigingen en cijfers in één call
Inputs: courseId (required).
get-course-peopleB
Haal de docenten en medestudenten van een vak op
Inputs: courseId (required), enrollmentType.
get-course-syllabusC
Haal de syllabus inhoud op van een vak
Inputs: courseId (required).
get-discussion-postsC
Haal discussie posts op van een vak
Inputs: courseId (required), limit.
get-inbox-messagesC
Haal je Canvas inbox berichten op
Inputs: scope, limit.
get-learning-outcomesB
Bekijk de leerdoelen van een vak
Inputs: courseId (required).
get-missed-deadlinesB
Haal gemiste deadlines op: opdrachten die te laat of niet ingeleverd zijn
Inputs: no named parameters.
get-module-contentB
Haal alle content van een module op inclusief pagina-inhoud, niet alleen titels
Inputs: courseId (required), moduleId (required), includePageContent.
get-my-gradesB
Haal jouw cijfers op per vak, inclusief individuele opdracht scores
Inputs: courseId.
get-page-contentB
Haal de inhoud op van een Canvas pagina via de page slug/URL
Inputs: courseId (required), pageUrl (required).
get-quiz-resultsB
Bekijk de resultaten van gemaakte quizzen
Inputs: courseId (required).
get-recent-updatesC
Bekijk wat er de afgelopen X dagen is aangepast of toegevoegd op Canvas
Inputs: days.
get-rubric-scoresA
Haal jouw rubric scores op per criterium voor een beoordeelde opdracht
Inputs: courseId (required), assignmentId (required).
get-study-progressA
Bekijk jouw studievoortgang per vak: hoeveel modules bekeken, opdrachten gedaan, cijfer status
Inputs: courseId.
get-submission-statusB
Bekijk per vak de submission status: wat is ingeleverd, wat staat open, wat is te laat
Inputs: courseId (required).
get-unread-announcementsA
Haal alleen nieuwe/ongelezen aankondigingen op
Inputs: no named parameters.
get-unread-feedbackB
Haal alleen nieuwe/ongelezen feedback op die je nog niet hebt verwerkt
Inputs: no named parameters.
get-upcoming-deadlinesA
Haal aankomende deadlines op across alle vakken, gesorteerd op datum met urgentie-indicatie
Inputs: days.
search-all-contentA
Zoek door ALLES: paginas, modules, opdrachten, aankondigingen en bestanden across alle vakken
Inputs: query (required), courseId.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 29 tools
Most tools have distinct purposes, but there is some overlap between overview tools (e.g., get-course-overview vs. get-module-content, get-study-progress) and get-all-* vs. get-unread-* tools. Descriptions help differentiate them, but ambiguity is possible.
The vast majority of tools follow a consistent 'get-*' pattern with hyphens. However, 'export-to-calendar' and 'search-all-content' break the pattern, which slightly reduces consistency.
29 tools is on the higher side but appropriate for the Canvas platform's feature set. Each tool covers a distinct aspect of course information, making the count reasonable.
The tool set provides comprehensive read access to courses, assignments, announcements, grades, files, discussions, and more. It lacks write capabilities and some advanced features (e.g., group management, assignment submission), but covers the core student-facing needs.
Maintenance
Related MCP Connectors
Connect Claude to your Platform7n workspaces: chat, links, work and decks. One-click OAuth.
Connect Claude to your Platform7n workspaces: chat, links, work and decks. One-click OAuth.
1AI-powered corporate learning platform — manage courses, users, and insights via Claude.
Manage your Canvas coursework with quick access to courses, assignments, and grades. Track upcomin…
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceConnects Claude to Canvas LMS, enabling students to query their coursework, assignments, grades, deadlines, announcements, and calendar events through natural conversation instead of navigating the Canvas interface.8-
- AlicenseNot gradedqualityDmaintenanceEnables Claude to interact with Canvas LMS to manage coursework, track assignments, and view grades through natural language. It supports comprehensive academic tasks including checking rubrics, participating in discussion boards, and submitting assignments.13 npmMIT
- AlicenseNot gradedqualityDmaintenanceEnables Claude to interact with the Canvas LMS API to manage courses, assignments, grades, and communications. It supports both remote and local deployments, allowing users to query academic data and submit assignments via natural language.13 npmMIT
- FlicenseNot gradedqualityDmaintenanceConnects Claude AI to your Canvas LMS account, enabling natural language interaction with coursework including assignments, grades, announcements, and calendar.-