canvas-scholar-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CANVAS_DOMAIN | Yes | Your school's Canvas domain, e.g., school.instructure.com | |
| CANVAS_API_TOKEN | Yes | Your Canvas API token (used to authenticate with the Canvas LMS) |
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_list_coursesA | List the courses you are enrolled in — with your current/final grade, module progress, and teaching staff in one call. |
| canvas_list_assignmentsA | List assignments in a course, with your submission status and — when Canvas allows it — class score statistics (min/max/mean/quartiles) so you can see how you compare. Note: New Quizzes appear here as assignments. |
| canvas_get_assignmentA | Get one assignment (with your submission) by id. |
| canvas_get_submission_feedbackA | Your submission for one assignment WITH the professor's comments, rubric assessment, and attempt history. Use to answer 'what did my professor say / how was I graded?'. |
| canvas_get_gradesA | Your current grade in every active course. |
| canvas_get_course_gradeA | Your grade in a single course (only your own enrollment). |
| canvas_get_late_policyA | A course's late-submission penalty tiers (deduction % per interval). If the course restricts this to instructors, returns a note so you can fall back to the syllabus. |
| canvas_get_assignment_groupsA | Assignment groups with their weights and your submissions — shows the weighted breakdown behind a course grade. Drop rules are reported but not pre-applied. |
| canvas_get_missing_submissionsB | Assignments you have not submitted that are due/overdue. |
| canvas_get_planner_itemsA | Planner items (assignments, quizzes, events) in a date window. Defaults to yesterday..+14 days. Canvas's unified 'what's due/new' feed. |
| canvas_get_activity_streamA | Your recent Canvas activity (announcements, messages, submissions). The social/notification feed; for action items prefer planner or todo. |
| canvas_get_todoA | Your Canvas to-do list — items needing action right now. Overlaps with planner (dated window) and activity stream (feed); prefer this for 'what needs action'. |
| canvas_list_calendar_eventsA | Calendar events and assignment dates across your courses in a date window (defaults to yesterday..+14 days). Course contexts are derived automatically. Use planner for the unified due feed; use this for raw calendar events like office hours. NOTE: live web conferences (BigBlueButton class sessions) do NOT appear here — use canvas_list_conferences for those. |
| canvas_list_conferencesA | Live/scheduled web conferences (BigBlueButton class sessions, etc.) with their join links — across all your courses, or one course. These are NOT in the calendar, so use this to catch live class sessions. |
| canvas_get_calendar_eventA | Get one calendar event or assignment-date by id. |
| canvas_list_discussionsA | List discussion topics in a course (metadata only). |
| canvas_get_discussion_viewA | Full threaded view of a discussion topic, including reply bodies. |
| canvas_list_announcementsA | Recent announcements for a course. |
| canvas_list_conversationsC | List your inbox conversation threads. |
| canvas_get_conversationA | Read one inbox conversation thread. Does not mark it as read (stays read-only). |
| canvas_get_unread_message_countB | How many unread inbox messages you have. |
| canvas_list_my_groupsA | All groups you belong to (course project groups + community). |
| canvas_get_groupA | Details for one group you belong to. |
| canvas_list_group_membersB | The members of a group you belong to. |
| canvas_list_course_filesA | List files in a course. Locked/hidden folders are excluded automatically. |
| canvas_get_fileA | File metadata by id. The returned |
| canvas_list_course_foldersA | List a course's folders (for navigating the file tree). |
| canvas_list_modulesA | List modules in a course, with their items. |
| canvas_list_course_pagesA | List a course's wiki/content pages. |
| canvas_get_course_pageA | Get one wiki page's content (HTML stripped to text). |
| canvas_get_syllabusB | A course's syllabus text (HTML stripped, truncated). |
| canvas_list_course_rubricsB | List a course's rubrics (grading criteria). |
| canvas_get_rubricA | Get one rubric with its criteria and assessments. |
| canvas_list_quizzesA | List classic quizzes in a course. New Quizzes do NOT appear here — they surface via canvas_list_assignments. |
| canvas_get_quizA | Get one classic quiz by id. |
| canvas_list_new_quizzesA | List a course's New Quizzes (the modern Quizzes.Next engine). These don't appear in canvas_list_quizzes; this finds them via their assignment shells. For due dates/points/status — reading a New Quiz's questions needs an instructor-gated API. |
| canvas_get_my_quiz_submissionA | Your own attempt/submission for a classic quiz. |
| canvas_list_peer_reviewsA | Peer reviews for an assignment. By default returns only the ones assigned to YOU (you as the reviewer); pass mineOnly=false for all. |
| canvas_smart_searchA | Semantic search over a course's pages, assignments, announcements and discussions — ranked by meaning, not keywords. Good for 'where did we cover X?'. Beta; returns a note if not enabled for the course. |
| canvas_get_grading_standardsA | A course's letter-grade cutoff scheme (A ≥ 93, etc.), for 'what do I need for an A?'. Returns a note if restricted to instructors. |
| canvas_get_my_profileA | Your Canvas profile (name, avatar, primary email). |
| canvas_api_usageA | How much Canvas API budget you've used this session — request count and Canvas's remaining rate-limit budget. Canvas throttles heavy bursts; this lets you check before running something big. |
| canvas_list_course_peopleA | The student roster for a course. If the course hides the roster, returns a note instead of an error. |
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/Ait0u5hi/canvas-scholar-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server