Skip to main content
Glama

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 install

Add 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 tools
export-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

    B3.4/5.0

    Scored across 29 tools

    Disambiguation4/5

    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.

    Naming Consistency4/5

    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.

    Tool Count4/5

    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.

    Completeness4/5

    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

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables 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 npm
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables 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 npm
      MIT