canvas-student-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| canvas_auth_statusA | Diagnose the Canvas connection: which credential is in use, where it's stored, and whether it still works. Run this first when something fails, or before a scheduled job, to distinguish an expired session from a real error. |
| canvas_get_profileA | Fetch the authenticated user's Canvas profile (name, primary email, id). Use this to verify the API token works. |
| canvas_list_coursesA | List the user's Canvas courses with current score/grade per course. state='active' (default) for this semester, 'completed' for past courses, 'all' for everything. |
| canvas_get_courseA | Get one course's details including the full syllabus text, term, and current score. course_id comes from canvas_list_courses. |
| canvas_list_assignmentsA | List a course's assignments ordered by due date, each with the user's submission status (submitted/score/late/missing). Optional bucket filters: upcoming, past, overdue, undated, ungraded, unsubmitted, future. |
| canvas_get_assignmentA | Get one assignment's full details: description (as text), due/lock dates, rubric, and the user's submission with score and grade. |
| canvas_get_gradesA | Without course_id: current score/grade for every active course. With course_id: every graded submission in that course (assignment name, score, points possible, late/missing flags) — useful for 'what's my grade breakdown'. |
| canvas_list_announcementsA | List announcements. Defaults to all active courses over the last 30 days; pass course_id and/or start_date (ISO) to narrow or widen. |
| canvas_list_modulesA | List a course's modules with their items (pages, files, assignments, quizzes, links) in order — the course's content outline. |
| canvas_list_pagesB | List a course's wiki pages. Use search_term to filter by title. |
| canvas_get_pageA | Read one course page's full content as text. page_url is the 'url' slug from canvas_list_pages or canvas_list_modules. |
| canvas_list_filesA | List files in a course (slides, PDFs, handouts). Use search_term to filter by name. Returns file IDs for canvas_get_file_link. |
| canvas_get_file_linkA | Get a temporary authenticated download URL for a file (file_id from canvas_list_files or module items). The URL expires, so use it promptly. |
| canvas_list_discussionsA | List a course's discussion topics with unread counts and due dates. |
| canvas_get_discussionA | Read a discussion topic's full thread, including replies. |
| canvas_list_quizzesA | List a course's quizzes with due dates, time limits, allowed attempts, and points. |
| canvas_list_todoA | The user's Canvas to-do list: assignments and quizzes needing submission, across all courses. |
| canvas_list_upcomingA | The user's upcoming Canvas events and assignment due dates across all courses (next ~2 weeks). |
| canvas_list_calendar_eventsA | Calendar events (lectures, office hours, deadlines) between two dates. type='assignment' shows assignment due dates instead of plain events. |
| canvas_list_inboxA | List conversations from the Canvas inbox (messages from instructors, TAs, and classmates) with sender, course, preview, and read state. Use scope='unread' for just unread messages. |
| canvas_get_conversationA | Read the full message thread of one conversation, including every reply. Does NOT mark the conversation as read. |
| canvas_get_feedbackA | Get grader comments and rubric assessments on your submissions — what the instructor or TA actually wrote. Omit course_id to check every active course. Only returns submissions that have feedback or a grade. |
| canvas_grade_breakdownA | Break a course grade down by assignment group (with weights), showing what's graded, what's left, and your current standing. Pass target_grade (e.g. 90) to compute the average you need on all remaining work to finish at that grade. |
| canvas_list_plannerA | Canvas planner feed across all courses — assignments, quizzes, discussions, announcements, and calendar events in date order, each flagged with whether it has new activity and your submission state. Richer than canvas_list_todo. |
| canvas_read_fileA | Download a Canvas file and extract its text — PDF, Word (.docx), PowerPoint (.pptx), Excel (.xlsx), HTML, and plain-text formats. Use this to read syllabi, lecture slides, and handouts. file_id comes from canvas_list_files or a module item's content_id. |
| canvas_read_syllabusA | Get a course's syllabus as text. Handles both cases automatically: syllabus typed into Canvas, or posted as an attached PDF/Word file (common) — in which case the file is downloaded and its text extracted. |
| canvas_list_groupsA | List the Canvas groups you belong to (project teams, study groups, sections) with member counts and their course. |
| canvas_get_module_progressA | Show module-by-module progress: which modules are locked, started, or completed, and for each item what Canvas requires to mark it done (view it, submit it, contribute, or score a minimum) and whether you've done it. |
| canvas_list_peer_reviewsA | Find peer reviews you've been asked to complete, and their status. Scans the course's peer-review assignments; pass assignment_id to check just one. |
| canvas_export_courseA | One-shot export of a course as a single markdown document: details, syllabus, grade, all assignments with submission status, module outline, and recent announcements. Designed for archiving to Notion or notes apps. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/xmike04/canvas-student-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server