io.github.Fireiscoolsolo/canvas-lms-mcp-server
NPM · CANVAS-LMS-MCP-REMOTE
Self-hosted Canvas LMS for every device: 237 student tools over HTTP with OAuth and phone alerts.
Available components
Last scanned (9 hours ago)
Scores higher than 55% of npm servers
Category Education and Research
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security98
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- No install/post-install scripts declared.Pass
- 39 of 106 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency48
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 0 days ago).Pass
- Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability88
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 24831 tokens (~104/item across 237 items; 237 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management30
- Stability observed for 9 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
- Structured output schemas are declared (1% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- All 10 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
- An AI judge read all 238 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Checks we ran (16)
- Malware scan
- Known CVEs
- Install scripts
- Dependency health
- Source repository
- Provenance
- License
- Maintenance
- Security disclosure
- Schema quality
- Stability
- Tool coverage
- Injection markers
- Destructive annotations
- Judged manipulation
- MCP protocol
Does not apply to this package (2)
- Endpoint SecurityScored on hosted endpoints only. A package has no live endpoint of its own for us to probe.
- Transport & ReachabilityScored on hosted endpoints only. A package has no live endpoint of its own for us to probe.
The score does not measure everything. What the score does not measure →
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 5 Nov 26 0
- Package version: 1.3.0 → 1.3.1 functional
- 4 Nov 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.
- 3 Nov 26 0
- Schema quality: pass → fail ▼ functional
- First check of Tool coverage: 1 functional
- Package version: 1.2.3 → 1.3.0 functional
- 2 Nov 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.
- 1 Nov 26 +15
- Malware scan: unverified → pass ▲ security
- 31 Oct 26 −14
- Malware scan: pass → unverified ▼ security
- Package version: 1.2.2 → 1.2.3 functional
- 30 Oct 26 0
- Package version: 1.2.0 → 1.2.2 functional
- 29 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 5 Nov 2026 · Analysed npm/canvas-lms-mcp-remote@1.3.1
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | npm |
Background: How many MCP packages publish verified provenance →
Dependencies 106 packages
| Packages resolved | 106 |
|---|---|
| Stale | 39 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
get_rubric Get Rubric ~104
Get a full rubric: every criterion, rating level and point value. Read-only. Read it before starting work to know how it will be scored; get_rubric_assessment shows how your submission was scored.
| Name | Type | Req | Description |
|---|---|---|---|
| course_id | string | yes | Canvas course ID, a numeric string such as "12345". Get it from list_courses. |
| rubric_id | string | yes | Rubric ID (numeric string). Get it from list_rubrics or get_assignment. |
No output schema declared.
No examples provided.
get_rubric_assessment Get Rubric Assessment ~99
Get the rubric scoring applied to your submission, criterion by criterion, with points and comments. Read-only. Use get_rubric to see the full rubric before you submit.
| Name | Type | Req | Description |
|---|---|---|---|
| assignment_id | string | yes | Assignment ID (numeric string). Get it from list_assignments or list_upcoming_assignments. |
| course_id | string | yes | Canvas course ID, a numeric string such as "12345". Get it from list_courses. |
No output schema declared.
No examples provided.
get_score_statistics Get Score Statistics ~102
Get class statistics for an assignment (mean, min, max, quartiles) next to your own score. Read-only. Canvas only shows these once enough students are graded and if the instructor allows it.
| Name | Type | Req | Description |
|---|---|---|---|
| assignment_id | string | yes | Assignment ID (numeric string). Get it from list_assignments or list_upcoming_assignments. |
| course_id | string | yes | Canvas course ID, a numeric string such as "12345". Get it from list_courses. |
No output schema declared.
No examples provided.
get_server_config Get Server Config ~66
Show this server's settings (school URL, profile, write mode, cache, time zone, download folder) and whether a token is present, without revealing it. Read-only, makes no Canvas calls and works before a token is set, so use it first to diagnose setup problems.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_storage_quota Get Storage Quota ~27
Get your personal Canvas storage quota and how much of it is used. Read-only.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_submission_history Get Submission History ~94
Get every past attempt of your submission for one assignment, oldest to newest, with scores and timestamps. Read-only. Use get_my_submission for just the latest attempt.
| Name | Type | Req | Description |
|---|---|---|---|
| assignment_id | string | yes | Assignment ID (numeric string). Get it from list_assignments or list_upcoming_assignments. |
| course_id | string | yes | Canvas course ID, a numeric string such as "12345". Get it from list_courses. |
No output schema declared.
No examples provided.
get_submission_summary Get Submission Summary ~92
Get counts of graded, ungraded and not-submitted submissions for an assignment. Read-only. Often instructor-only, so students may get a permission error.
| Name | Type | Req | Description |
|---|---|---|---|
| assignment_id | string | yes | Assignment ID (numeric string). Get it from list_assignments or list_upcoming_assignments. |
| course_id | string | yes | Canvas course ID, a numeric string such as "12345". Get it from list_courses. |
No output schema declared.
No examples provided.
get_syllabus Get Syllabus ~84
Get a course syllabus as plain text, converted from Canvas HTML. Read-only. The text is fenced as untrusted. If the instructor uploaded the syllabus as a file instead, look in list_course_files; syllabus_digest pulls out dates and weights.
| Name | Type | Req | Description |
|---|---|---|---|
| course_id | string | yes | Canvas course ID, a numeric string such as "12345". Get it from list_courses. |
No output schema declared.
No examples provided.
get_todo_count Get Todo Count ~39
Get the number of items on your Canvas to-do list without fetching them. Read-only and cheap. Use list_todo to see the items.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_tool_launch_url Get Tool Launch URL ~122
Get a one-time launch URL for an external (LTI) tool in a course, so you can open it directly in a browser. Read-only. Get tool_id from list_external_tools. The URL expires quickly.
| Name | Type | Req | Description |
|---|---|---|---|
| course_id | string | yes | Canvas course ID, a numeric string such as "12345". Get it from list_courses. |
| tool_id | string | – | External tool ID (numeric string). Get it from list_external_tools. |
| url | string | – | Optional launch URL of a specific tool resource, if the tool needs one. |
No output schema declared.
No examples provided.
get_topic Get Topic ~105
Get one discussion topic: its prompt, author, posting rules and unread count, without the replies. Read-only. The prompt is fenced as untrusted text. Use get_full_topic_view to read the whole thread, or list_topics to find topic IDs.
| Name | Type | Req | Description |
|---|---|---|---|
| course_id | string | yes | Canvas course ID, a numeric string such as "12345". Get it from list_courses. |
| topic_id | string | yes | Discussion topic ID (numeric string). Get it from list_topics. |
No output schema declared.
No examples provided.
get_unposted_grades Get Unposted Grades ~122
Get scores your instructor entered but has not released yet, where your enrollment can see them. Read-only. Usually empty for students; use get_all_grades for released grades.
| Name | Type | Req | Description |
|---|---|---|---|
| course_id | string | – | Canvas course ID, a numeric string such as "12345". Get it from list_courses. |
| limit | integer | – | Maximum number of items to return (one page of results). Smaller is faster. |
| page | integer | – | Which page of results to show, starting at 1. Use it when a result says there are more. |
No output schema declared.
No examples provided.
get_unread_conversation_count Get Unread Conversation Count ~38
Get the number of unread Canvas Inbox conversations. Read-only and very cheap. Use list_conversations with scope unread to see them.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_unread_discussion_count Get Unread Discussion Count ~116
Get the unread entry count for each discussion topic in a course. Read-only and cheap. Use get_full_topic_view to read a topic.
| Name | Type | Req | Description |
|---|---|---|---|
| course_id | string | yes | Canvas course ID, a numeric string such as "12345". Get it from list_courses. |
| limit | integer | – | Maximum number of items to return (one page of results). Smaller is faster. |
| page | integer | – | Which page of results to show, starting at 1. Use it when a result says there are more. |
No output schema declared.
No examples provided.
get_user_in_course Get User In Course ~86
Get one person's profile within a course: name, role, section and avatar. Read-only. Get user_id from list_course_users. Your institution's privacy settings may limit what is returned.
| Name | Type | Req | Description |
|---|---|---|---|
| course_id | string | yes | Canvas course ID, a numeric string such as "12345". Get it from list_courses. |
| user_id | string | – | Defaults to 'self' |
No output schema declared.
No examples provided.
get_week_ahead Get Week Ahead ~59
Get the coming week in one call: everything due, anything already missing, unread announcements and your unread inbox count. Read-only. Merges the Planner feed, missing submissions, calendar and inbox.
| Name | Type | Req | Description |
|---|---|---|---|
| days | integer | – | Default 7 |
No output schema declared.
No examples provided.
get_workload_forecast Get Workload Forecast ~64
Show points at stake per week for the next few weeks across all active courses, so you can see crunch weeks coming. Read-only. Use get_week_ahead for item-level detail on the next 7 days.
| Name | Type | Req | Description |
|---|---|---|---|
| weeks | integer | – | Default 6 |
No output schema declared.
No examples provided.
grade_impact_ranking Grade Impact Ranking ~78
Rank a course's ungraded and upcoming assignments by how much each point moves your final grade. Read-only. Shows where effort pays most; study_priority_ranking does this across all courses with urgency added.
| Name | Type | Req | Description |
|---|---|---|---|
| course_id | string | yes | Canvas course ID, a numeric string such as "12345". Get it from list_courses. |
No output schema declared.
No examples provided.
grep_all_courses Grep All Courses ~68
Search every active course by keyword in one call. Read-only but uses many API calls; prefer search_course_content when you know the course.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Maximum number of items to return (one page of results). Smaller is faster. |
| query | string | yes | Search text. |
No output schema declared.
No examples provided.
join_group Join Group ~103
Join a self-signup student group. Groupmates and instructors see that you joined. [IRREVERSIBLE: call without confirm=true first to preview, then re-call with confirm=true. Apps that can ask the user directly will show a confirmation instead.]
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | – | Must be true to actually execute. Omit or set false to get a dry-run preview first. |
| group_id | string | yes | ID of the open group to join (numeric string). |
No output schema declared.
No examples provided.
leave_group Leave Group ~104
Leave a student group you belong to. You lose access to its workspace. [IRREVERSIBLE: call without confirm=true first to preview, then re-call with confirm=true. Apps that can ask the user directly will show a confirmation instead.]
| Name | Type | Req | Description |
|---|---|---|---|
| confirm | boolean | – | Must be true to actually execute. Omit or set false to get a dry-run preview first. |
| group_id | string | yes | Student group ID (numeric string). Get it from list_my_groups. |
No output schema declared.
No examples provided.
list_announcements List Announcements ~185
List announcements from one or more courses in a date range, newest first, with title, author and body. Read-only. Bodies are fenced as untrusted text. Without dates it covers the last 30 days; without course_ids it covers all active courses.
| Name | Type | Req | Description |
|---|---|---|---|
| course_ids | array | – | Course IDs; omit for all active courses |
| end_date | string | – | End of the range, as an ISO 8601 date or date-time, e.g. "2026-11-30". |
| limit | integer | – | Maximum number of items to return (one page of results). Smaller is faster. |
| start_date | string | – | Start of the range, as an ISO 8601 date or date-time, e.g. "2026-11-01". |
| unread_only | boolean | – | If true, only announcements you have not read yet. |
No output schema declared.
No examples provided.
list_appointment_groups List Appointment Groups ~139
List appointment groups you can sign up for, such as office hours or advising slots, with open time slots. Read-only. Book a slot with reserve_appointment_slot.
| Name | Type | Req | Description |
|---|---|---|---|
| include_past | boolean | – | If true, also include appointment groups whose slots are in the past. |
| limit | integer | – | Maximum number of items to return (one page of results). Smaller is faster. |
| page | integer | – | Which page of results to show, starting at 1. Use it when a result says there are more. |
| scope | string | – | "reservable" (default: groups you can still book) or "manageable". |
No output schema declared.
No examples provided.
list_assignment_groups List Assignment Groups ~155
List a course's assignment groups (e.g. Homework, Exams) with their grade weights and drop rules, optionally with each group's assignments. Read-only. Explains how your final grade is weighted; get_course_grade_breakdown does the math for you.
| Name | Type | Req | Description |
|---|---|---|---|
| course_id | string | yes | Canvas course ID, a numeric string such as "12345". Get it from list_courses. |
| include_assignments | boolean | – | If true, include each group's assignments in the result. |
| limit | integer | – | Maximum number of items to return (one page of results). Smaller is faster. |
| page | integer | – | Which page of results to show, starting at 1. Use it when a result says there are more. |
No output schema declared.
No examples provided.
list_assignment_overrides List Assignment Overrides ~147
List due-date overrides on an assignment: different dates or extensions for sections, groups or individual students. Read-only. Use get_my_override for the dates that apply to you.
| Name | Type | Req | Description |
|---|---|---|---|
| assignment_id | string | yes | Assignment ID (numeric string). Get it from list_assignments or list_upcoming_assignments. |
| course_id | string | yes | Canvas course ID, a numeric string such as "12345". Get it from list_courses. |
| limit | integer | – | Maximum number of items to return (one page of results). Smaller is faster. |
| page | integer | – | Which page of results to show, starting at 1. Use it when a result says there are more. |
No output schema declared.
No examples provided.
list_assignments List Assignments ~191
List assignments in a course with due dates, points and your submission status, optionally filtered by bucket (e.g. upcoming, overdue) or name. Read-only. Use get_assignment for one assignment's full instructions and rubric.
| Name | Type | Req | Description |
|---|---|---|---|
| bucket | string | – | Optional filter: "past", "overdue", "undated", "ungraded", "unsubmitted", "upcoming" or "future". |
| course_id | string | yes | Canvas course ID, a numeric string such as "12345". Get it from list_courses. |
| limit | integer | – | Maximum number of items to return (one page of results). Smaller is faster. |
| page | integer | – | Which page of results to show, starting at 1. Use it when a result says there are more. |
| search_term | string | – | Optional text filter on names or titles (at least 2 characters, case-insensitive). |
No output schema declared.
No examples provided.
list_blackout_dates List Blackout Dates ~66
List no-work days (blackout dates) in a course used by course pacing. Read-only. Returns an empty list when pacing is not used.
| Name | Type | Req | Description |
|---|---|---|---|
| course_id | string | yes | Canvas course ID, a numeric string such as "12345". Get it from list_courses. |
No output schema declared.
No examples provided.
list_bookmarks List Bookmarks ~83
List your saved Canvas bookmarks with their names, URLs and IDs. Read-only. Use the IDs with delete_bookmark.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Maximum number of items to return (one page of results). Smaller is faster. |
| page | integer | – | Which page of results to show, starting at 1. Use it when a result says there are more. |
No output schema declared.
No examples provided.
list_calendar_events List Calendar Events ~188
List calendar events, or assignment due dates with type=assignment, in a date range (default: the next 14 days). Read-only. Filter to specific courses with course_ids.
| Name | Type | Req | Description |
|---|---|---|---|
| course_ids | array | – | Course IDs (numeric strings) to include. Get them from list_courses. |
| end_date | string | – | End of the range, as an ISO 8601 date or date-time, e.g. "2026-11-30". |
| limit | integer | – | Maximum number of items to return (one page of results). Smaller is faster. |
| page | integer | – | Which page of results to show, starting at 1. Use it when a result says there are more. |
| start_date | string | – | YYYY-MM-DD |
| type | string | – | "event" (default) for calendar events, or "assignment" for assignment due dates. |
No output schema declared.
No examples provided.
list_collaborations List Collaborations ~109
List collaborative documents in a course (Google Docs or Microsoft 365 integrations) with titles and links. Read-only.
| Name | Type | Req | Description |
|---|---|---|---|
| course_id | string | yes | Canvas course ID, a numeric string such as "12345". Get it from list_courses. |
| limit | integer | – | Maximum number of items to return (one page of results). Smaller is faster. |
| page | integer | – | Which page of results to show, starting at 1. Use it when a result says there are more. |
No output schema declared.
No examples provided.
list_conferences List Conferences ~119
List web conferences in a course (BigBlueButton or similar) with titles, status and join links. Read-only. Returns an empty list if conferences are not enabled.
| Name | Type | Req | Description |
|---|---|---|---|
| course_id | string | yes | Canvas course ID, a numeric string such as "12345". Get it from list_courses. |
| limit | integer | – | Maximum number of items to return (one page of results). Smaller is faster. |
| page | integer | – | Which page of results to show, starting at 1. Use it when a result says there are more. |
No output schema declared.
No examples provided.
list_content_shares List Content Shares ~98
List course content (assignments, pages, quizzes) that other Canvas users shared directly with you, with sender and share date. Read-only. Returns an empty list if nothing was shared.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Maximum number of items to return (one page of results). Smaller is faster. |
| page | integer | – | Which page of results to show, starting at 1. Use it when a result says there are more. |
No output schema declared.
No examples provided.
list_conversations List Conversations ~146
List your Canvas Inbox conversations, newest first, with subject, participants, last message preview and unread state. Read-only. Use get_conversation for the full thread.
| Name | Type | Req | Description |
|---|---|---|---|
| filter | array | – | Optional filter by course or user, e.g. "course_12345". |
| limit | integer | – | Maximum number of items to return (one page of results). Smaller is faster. |
| page | integer | – | Which page of results to show, starting at 1. Use it when a result says there are more. |
| scope | string | – | Which mailbox: "inbox" (default), "unread", "starred", "archived" or "sent". |
No output schema declared.
No examples provided.
list_course_files List Course Files ~169
List files in a course (slides, readings, handouts) with names, sizes, types and IDs, optionally filtered by name or type. Read-only. Save one with download_file, or all with download_all_course_files.
| Name | Type | Req | Description |
|---|---|---|---|
| content_types | array | – | e.g. application/pdf |
| course_id | string | yes | Canvas course ID, a numeric string such as "12345". Get it from list_courses. |
| limit | integer | – | Maximum number of items to return (one page of results). Smaller is faster. |
| page | integer | – | Which page of results to show, starting at 1. Use it when a result says there are more. |
| search_term | string | – | Optional text filter on names or titles (at least 2 characters, case-insensitive). |
No output schema declared.
No examples provided.
list_course_nicknames List Course Nicknames ~93
List the personal nicknames you have given courses. Read-only. Only you see nicknames. Change them with set_course_nickname or remove_course_nickname.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Maximum number of items to return (one page of results). Smaller is faster. |
| page | integer | – | Which page of results to show, starting at 1. Use it when a result says there are more. |
No output schema declared.
No examples provided.
list_course_tabs List Course Tabs ~79
List the navigation tabs visible to you in a course (Home, Assignments, Files, Quizzes…). Read-only. Check this first to see whether a feature such as Files or Pages is enabled before calling its tools.
| Name | Type | Req | Description |
|---|---|---|---|
| course_id | string | yes | Canvas course ID, a numeric string such as "12345". Get it from list_courses. |
No output schema declared.
No examples provided.
list_course_users List Course Users ~162
List people in a course with names, roles and user IDs, optionally filtered by role or name. Read-only. Your school's privacy settings often limit or block this for students.
| Name | Type | Req | Description |
|---|---|---|---|
| course_id | string | yes | Canvas course ID, a numeric string such as "12345". Get it from list_courses. |
| enrollment_type | array | – | student, teacher, ta, observer, designer |
| limit | integer | – | Maximum number of items to return (one page of results). Smaller is faster. |
| page | integer | – | Which page of results to show, starting at 1. Use it when a result says there are more. |
| search_term | string | – | Optional text filter on names or titles (at least 2 characters, case-insensitive). |
No output schema declared.
No examples provided.
list_courses List Courses ~131
List the courses you are enrolled in with IDs, names, codes, term and your current grade. Read-only. Only active courses unless include_concluded is set. Start here to get course_id values for other tools.
| Name | Type | Req | Description |
|---|---|---|---|
| include_concluded | boolean | – | If true, also include courses from finished terms. |
| include_grades | boolean | – | Default true |
| limit | integer | – | Maximum number of items to return (one page of results). Smaller is faster. |
| page | integer | – | Which page of results to show, starting at 1. Use it when a result says there are more. |
No output schema declared.
No examples provided.
list_entries List Entries ~141
List top-level entries in a discussion topic, page by page. Read-only. Entry text is fenced as untrusted. Prefer get_full_topic_view to read a whole thread at once.
| Name | Type | Req | Description |
|---|---|---|---|
| course_id | string | yes | Canvas course ID, a numeric string such as "12345". Get it from list_courses. |
| limit | integer | – | Maximum number of items to return (one page of results). Smaller is faster. |
| page | integer | – | Which page of results to show, starting at 1. Use it when a result says there are more. |
| topic_id | string | yes | Discussion topic ID (numeric string). Get it from list_topics. |
No output schema declared.
No examples provided.
list_entry_replies List Entry Replies ~168
List the replies under one discussion entry, oldest first. Read-only. Bodies are fenced as untrusted text. To read a whole thread at once, use get_full_topic_view instead.
| Name | Type | Req | Description |
|---|---|---|---|
| course_id | string | yes | Canvas course ID, a numeric string such as "12345". Get it from list_courses. |
| entry_id | string | yes | Discussion entry ID (numeric string). Get it from get_full_topic_view or list_entries. |
| limit | integer | – | Maximum number of items to return (one page of results). Smaller is faster. |
| page | integer | – | Which page of results to show, starting at 1. Use it when a result says there are more. |
| topic_id | string | yes | Discussion topic ID (numeric string). Get it from list_topics. |
No output schema declared.
No examples provided.
list_eportfolios List Eportfolios ~109
Your Canvas ePortfolios (showcase sites of your work). Read-only; Canvas does not let other apps add entries, so edit them in Canvas itself.
| Name | Type | Req | Description |
|---|---|---|---|
| include_deleted | boolean | – | If true, also list deleted ePortfolios. |
| limit | integer | – | Maximum number of items to return (one page of results). Smaller is faster. |
| page | integer | – | Which page of results to show, starting at 1. Use it when a result says there are more. |
No output schema declared.
No examples provided.
list_external_tools List External Tools ~122
List external (LTI) tools enabled in a course, such as publisher platforms or proctoring apps, with their IDs. Read-only. Open one with get_tool_launch_url.
| Name | Type | Req | Description |
|---|---|---|---|
| course_id | string | yes | Canvas course ID, a numeric string such as "12345". Get it from list_courses. |
| limit | integer | – | Maximum number of items to return (one page of results). Smaller is faster. |
| page | integer | – | Which page of results to show, starting at 1. Use it when a result says there are more. |
No output schema declared.
No examples provided.
list_favorite_courses List Favorite Courses ~93
List the courses you have starred as favorites; these decide what appears on your dashboard. Read-only. Change them with add_favorite_course and remove_favorite_course.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Maximum number of items to return (one page of results). Smaller is faster. |
| page | integer | – | Which page of results to show, starting at 1. Use it when a result says there are more. |
No output schema declared.
No examples provided.
list_folders List Folders ~120
List every folder in a course's Files area with its path, file count and ID. Read-only. Use get_folder_tree for a readable outline of folders and files together.
| Name | Type | Req | Description |
|---|---|---|---|
| course_id | string | yes | Canvas course ID, a numeric string such as "12345". Get it from list_courses. |
| limit | integer | – | Maximum number of items to return (one page of results). Smaller is faster. |
| page | integer | – | Which page of results to show, starting at 1. Use it when a result says there are more. |
No output schema declared.
No examples provided.
list_global_announcements List Global Announcements ~40
School-wide announcements: the banners your school shows everyone on the Canvas dashboard (closures, outages, deadlines). Read-only. Messages are provenance-fenced.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_grading_periods List Grading Periods ~73
List a course's grading periods (e.g. quarters) with start, end and close dates. Read-only. Returns an empty list if the course does not use grading periods.
| Name | Type | Req | Description |
|---|---|---|---|
| course_id | string | yes | Canvas course ID, a numeric string such as "12345". Get it from list_courses. |
No output schema declared.
No examples provided.
list_group_categories List Group Categories ~119
List the group sets in a course (e.g. "Project teams") and whether you can sign up yourself. Read-only. Join an open group with join_group.
| Name | Type | Req | Description |
|---|---|---|---|
| course_id | string | yes | Canvas course ID, a numeric string such as "12345". Get it from list_courses. |
| limit | integer | – | Maximum number of items to return (one page of results). Smaller is faster. |
| page | integer | – | Which page of results to show, starting at 1. Use it when a result says there are more. |
No output schema declared.
No examples provided.
list_group_discussions List Group Discussions ~106
List discussion topics inside a group workspace with titles and unread counts. Read-only. Post to one with post_group_discussion.
| Name | Type | Req | Description |
|---|---|---|---|
| group_id | string | yes | Student group ID (numeric string). Get it from list_my_groups. |
| limit | integer | – | Maximum number of items to return (one page of results). Smaller is faster. |
| page | integer | – | Which page of results to show, starting at 1. Use it when a result says there are more. |
No output schema declared.
No examples provided.
list_group_files List Group Files ~103
List files shared in a group workspace with names, sizes and IDs. Read-only. Save one with download_file.
| Name | Type | Req | Description |
|---|---|---|---|
| group_id | string | yes | Student group ID (numeric string). Get it from list_my_groups. |
| limit | integer | – | Maximum number of items to return (one page of results). Smaller is faster. |
| page | integer | – | Which page of results to show, starting at 1. Use it when a result says there are more. |
No output schema declared.
No examples provided.
list_group_members List Group Members ~104
List the members of a student group with names and user IDs. Read-only. Get group_id from list_my_groups.
| Name | Type | Req | Description |
|---|---|---|---|
| group_id | string | yes | Student group ID (numeric string). Get it from list_my_groups. |
| limit | integer | – | Maximum number of items to return (one page of results). Smaller is faster. |
| page | integer | – | Which page of results to show, starting at 1. Use it when a result says there are more. |
No output schema declared.
No examples provided.
How do I install the io.github.Fireiscoolsolo/canvas-lms-mcp-server server?
io.github.Fireiscoolsolo/canvas-lms-mcp-server runs locally as an npm package, launched with npx -y canvas-lms-mcp-remote --stdio. Ready-made configuration for Claude, Cursor, VS Code, Codex and 3 more is on this page, copied from each client's own documentation.
npm · canvas-lms-mcp-remote
claude mcp add fireiscoolsolo-canvas-lms-mcp-server -- npx -y canvas-lms-mcp-remote --stdio
What is the io.github.Fireiscoolsolo/canvas-lms-mcp-server server?
io.github.Fireiscoolsolo/canvas-lms-mcp-server is listed in the public MCP registry as io.github.Fireiscoolsolo/canvas-lms-mcp-server. Self-hosted Canvas LMS for every device: 237 student tools over HTTP with OAuth and phone alerts. This page covers its npm package (canvas-lms-mcp-remote).
Is the io.github.Fireiscoolsolo/canvas-lms-mcp-server server safe to use?
io.github.Fireiscoolsolo/canvas-lms-mcp-server scores 77 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the io.github.Fireiscoolsolo/canvas-lms-mcp-server server expose?
io.github.Fireiscoolsolo/canvas-lms-mcp-server exposes 237 tools: whoami, get_my_profile, get_my_settings, check_token_expiry, get_rate_limit_status, and 232 more. Their descriptions and schemas cost roughly 24,732 tokens of context every time the server is loaded.
Is the io.github.Fireiscoolsolo/canvas-lms-mcp-server server still maintained?
io.github.Fireiscoolsolo/canvas-lms-mcp-server is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the io.github.Fireiscoolsolo/canvas-lms-mcp-server server under?
io.github.Fireiscoolsolo/canvas-lms-mcp-server declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.
What did VerifyMCP test on the io.github.Fireiscoolsolo/canvas-lms-mcp-server server?
VerifyMCP ran 16 checks on io.github.Fireiscoolsolo/canvas-lms-mcp-server, covering Malware scan, Known CVEs, Install scripts, Dependency health and 12 more. Endpoint Security and Transport & Reachability do not apply to an npm package, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.