
Canvas LMS (read-only)
Read-only Canvas LMS for students: what changed in your courses, search across slides and PDFs.
- tools
- 26
- auth
- Secret needed
- transport
- STDIO
- env vars
- 3
- last updated
- Nov 12, 2026
Tools
26 toolsPublic tool metadata for what this MCP can expose to an agent.
canvas_changes_sinceWhat changed since a time (default 26h): new/changed pages, assignments (due dates, grades), announcements, discussions, quizzes, events, files (which PDF pages changed).
What changed since a time (default 26h): new/changed pages, assignments (due dates, grades), announcements, discussions, quizzes, events, files (which PDF pages changed).
No parameter schema in public metadata yet.
canvas_searchFull-text search across your courses: pages, assignments, announcements, discussions, the syllabus, and the text of linked PDFs, slides and documents (with the page/slide number).
Full-text search across your courses: pages, assignments, announcements, discussions, the syllabus, and the text of linked PDFs, slides and documents (with the page/slide number).
No parameter schema in public metadata yet.
canvas_course_snapshotStored state of a course (optionally only some kinds, e.g. assignments). No Canvas calls.
Stored state of a course (optionally only some kinds, e.g. assignments). No Canvas calls.
No parameter schema in public metadata yet.
canvas_snapshot_statusSnapshot health: courses and your role, last run, counts, errors, next run.
Snapshot health: courses and your role, last run, counts, errors, next run.
No parameter schema in public metadata yet.
canvas_run_snapshotTake a snapshot now and return what changed.
Take a snapshot now and return what changed.
No parameter schema in public metadata yet.
canvas_whoamiThe Canvas user the token belongs to; checks that the connection works.
The Canvas user the token belongs to; checks that the connection works.
No parameter schema in public metadata yet.
canvas_list_coursesYour courses, ids and your role in each.
Your courses, ids and your role in each.
No parameter schema in public metadata yet.
canvas_whats_newCanvas's own activity stream since a time, including inbox messages. Live, but doesn't see edits, removals or file changes like canvas_changes_since does.
Canvas's own activity stream since a time, including inbox messages. Live, but doesn't see edits, removals or file changes like canvas_changes_since does.
No parameter schema in public metadata yet.
canvas_list_planner_itemsEverything dated in a window, with submission status.
Everything dated in a window, with submission status.
No parameter schema in public metadata yet.
canvas_list_assignmentsAssignments, due dates, descriptions, rubrics; as a student also your submission, teacher comments and rubric scores.
Assignments, due dates, descriptions, rubrics; as a student also your submission, teacher comments and rubric scores.
No parameter schema in public metadata yet.
canvas_get_assignmentAssignments, due dates, descriptions, rubrics; as a student also your submission, teacher comments and rubric scores.
Assignments, due dates, descriptions, rubrics; as a student also your submission, teacher comments and rubric scores.
No parameter schema in public metadata yet.
canvas_list_quizzesClassic quizzes and New Quizzes: time limit, attempts, lock window, instructions, your latest attempt.
Classic quizzes and New Quizzes: time limit, attempts, lock window, instructions, your latest attempt.
No parameter schema in public metadata yet.
canvas_get_quizClassic quizzes and New Quizzes: time limit, attempts, lock window, instructions, your latest attempt.
Classic quizzes and New Quizzes: time limit, attempts, lock window, instructions, your latest attempt.
No parameter schema in public metadata yet.
canvas_list_announcementsAnnouncements across courses.
Announcements across courses.
No parameter schema in public metadata yet.
canvas_list_discussionsDiscussion topics, and a whole thread with replies (without marking anything read).
Discussion topics, and a whole thread with replies (without marking anything read).
No parameter schema in public metadata yet.
canvas_get_discussionDiscussion topics, and a whole thread with replies (without marking anything read).
Discussion topics, and a whole thread with replies (without marking anything read).
No parameter schema in public metadata yet.
canvas_get_syllabusThe syllabus page.
The syllabus page.
No parameter schema in public metadata yet.
canvas_list_modulesModule structure with items.
Module structure with items.
No parameter schema in public metadata yet.
canvas_list_pagesCourse pages as text, with their file links.
Course pages as text, with their file links.
No parameter schema in public metadata yet.
canvas_get_pageCourse pages as text, with their file links.
Course pages as text, with their file links.
No parameter schema in public metadata yet.
canvas_list_linked_filesEvery file linked from the course (front page, pages, modules, assignments, announcements). Works even when the files tab is hidden.
Every file linked from the course (front page, pages, modules, assignments, announcements). Works even when the files tab is hidden.
No parameter schema in public metadata yet.
canvas_list_filesThe full Files area, including unlinked files (mostly for TAs/teachers); falls back to linked files when your role can't list it.
The full Files area, including unlinked files (mostly for TAs/teachers); falls back to linked files when your role can't list it.
No parameter schema in public metadata yet.
canvas_read_fileText of a PDF (per page), PPTX (per slide + notes), DOCX (per section), text/code file, or ZIP listing. Takes a file id or any Canvas file URL; supports page ranges.
Text of a PDF (per page), PPTX (per slide + notes), DOCX (per section), text/code file, or ZIP listing. Takes a file id or any Canvas file URL; supports page ranges.
No parameter schema in public metadata yet.
canvas_list_calendar_eventsCalendar events.
Calendar events.
No parameter schema in public metadata yet.
canvas_get_gradesYour own scores, grades and comments (as a student).
Your own scores, grades and comments (as a student).
No parameter schema in public metadata yet.
canvas_api_getEscape hatch: any GET /api/v1/... endpoint (can be disabled).
Escape hatch: any GET /api/v1/... endpoint (can be disabled).
No parameter schema in public metadata yet.
Sponsors
Configuration
CANVAS_BASE_URL*Your Canvas address, e.g. https://canvas.yourschool.edu
CANVAS_TOKEN*secretCanvas personal access token (Account → Settings → New access token)
CANVAS_HOST_ALIASESOther hostnames of the same Canvas, comma-separated (optional)
Readme
canvas-readonly-mcp
Ask Claude what changed in your courses, and search every lecture slide. A read-only MCP server for Canvas LMS, built as a study assistant rather than a full Canvas API.
- Knows what changed: daily snapshots of your courses, so "what's new since yesterday?" is one call: new announcements, moved deadlines, new grades, edited pages, even which slides in a lecture PDF changed.
- Searches inside your files: full-text search over pages, assignments, announcements and the text of every linked PDF, slide deck and document, with the page or slide number. It finds files linked from pages and modules even when the Files tab is hidden.
- Read-only by design: it only ever sends
GETrequests to Canvas. It can't submit, post, grade or change anything, and it doesn't even mark discussions as read. - Your token stays with you: one-click Claude Desktop extension (token in your system keychain), local stdio, or your own server for claude.ai. Nothing goes through a third party.
Works with any Canvas instance. Made for students; TAs and teachers can use it too (for reading, e.g. "needs grading" counts).
Details
- Repository
- github.com/rbrtlol/canvas-readonly-mcp
- Website
- github.com/rbrtlol/canvas-readonly-mcp#readme
- Categories
- Design & Creative, Search & Web Crawling
- Package
canvas-readonly-mcp- Transport
- STDIO
- Auth
- Required
- Registry
- MCP registry, active