Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

io.github.Fireiscoolsolo/canvas-lms-mcp-local

NPM · CANVAS-LMS-MCP-LOCAL

Student-focused Canvas LMS: 237 tools for grades, deadlines, planning, submissions and study plans.

−7 this week 72 Trust /100

Last scanned (8 hours ago)

Scores higher than 43% of npm servers

Category Education and Research

Trust breakdown (7 categories)

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 Security63
  • No malware found by supply-chain analysis.Pass
  • Known CVEs could not be checked: the version this server declares is not published in its registry.Unverified
  • No install/post-install scripts declared.Pass
  • Dependency health could not be checked: the version this server declares is not published in its registry.Unverified
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 Management70
  • Stability observed for 21 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
What we tested

Checks we ran (14)

  • Malware scan
  • Install scripts
  • Source repository
  • Provenance
  • License
  • Maintenance
  • Security disclosure
  • Schema quality
  • Stability
  • Tool coverage
  • Injection markers
  • Destructive annotations
  • Judged manipulation
  • MCP protocol

Checks we could not complete (2)

These are gaps on our side, not findings about this package. We only credit what we can confirm, so a category made up entirely of them scores 0.

  • Known CVEs in Supply Chain SecurityKnown CVEs could not be checked: the version this server declares is not published in its registry.
  • Dependency health in Supply Chain SecurityDependency health could not be checked: the version this server declares is not published in its registry.

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 →

Changelog

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 −10
    • Known CVEs: pass → unverified ▼ security
    • Dependency health: 0.84 → unverified ▼ functional
    • Package version: 1.2.0 → 1.2.1 functional
  • 3 Nov 26 +1
    • Schema quality: pass → fail ▼ functional
    • First check of Tool coverage: 1 functional
    • Package version: 1.1.3 → 1.2.0 functional
  • 2 Nov 26 +1
    • Security disclosure: unverified → pass ▲ functional
  • 1 Nov 26 +15
    • Malware scan: unverified → pass ▲ security
    • Security disclosure: pass → unverified ▼ functional
  • 31 Oct 26 −15
    • Malware scan: pass → unverified ▼ security
    • Package version: 1.1.2 → 1.1.3 functional
  • 30 Oct 26 +1
    • Package version: 1.1.0 → 1.1.2 functional
  • 28 Oct 26 +17
    • Stability: 0.40 → unverified ▼ security
    • Tool safety: pass → unverified ▼ security
    • Malware scan: unverified → pass ▲ security
    • Capabilities: pass → unverified ▼ functional
    • Tool coverage: 100 → unverified ▼ functional
    • Schema quality: unverified → 100 ▲ functional
    • Package version: 1.0.3 → 1.1.0 functional
  • 27 Oct 26 −12
    • Malware scan: pass → unverified ▼ security
    • Schema quality: 51 → 90 ▼ functional
    • Tool coverage: 78% → 100% ▲ functional
    • Schema quality: good → excellent functional
    • Package version: 1.0.1 → 1.0.3 functional
Diagnostics

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-local@1.2.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 →

MCP tools · 237 exposed · ~24,732 tokens

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 →

Tool Tokens
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.

NameTypeReqDescription
course_idstringyesCanvas course ID, a numeric string such as "12345". Get it from list_courses.
rubric_idstringyesRubric ID (numeric string). Get it from list_rubrics or get_assignment.

No output schema declared.

No examples provided.

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.

NameTypeReqDescription
assignment_idstringyesAssignment ID (numeric string). Get it from list_assignments or list_upcoming_assignments.
course_idstringyesCanvas course ID, a numeric string such as "12345". Get it from list_courses.

No output schema declared.

No examples provided.

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.

NameTypeReqDescription
assignment_idstringyesAssignment ID (numeric string). Get it from list_assignments or list_upcoming_assignments.
course_idstringyesCanvas course ID, a numeric string such as "12345". Get it from list_courses.

No output schema declared.

No examples provided.

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 ~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 ~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.

NameTypeReqDescription
assignment_idstringyesAssignment ID (numeric string). Get it from list_assignments or list_upcoming_assignments.
course_idstringyesCanvas course ID, a numeric string such as "12345". Get it from list_courses.

No output schema declared.

No examples provided.

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.

NameTypeReqDescription
assignment_idstringyesAssignment ID (numeric string). Get it from list_assignments or list_upcoming_assignments.
course_idstringyesCanvas course ID, a numeric string such as "12345". Get it from list_courses.

No output schema declared.

No examples provided.

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.

NameTypeReqDescription
course_idstringyesCanvas course ID, a numeric string such as "12345". Get it from list_courses.

No output schema declared.

No examples provided.

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 ~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.

NameTypeReqDescription
course_idstringyesCanvas course ID, a numeric string such as "12345". Get it from list_courses.
tool_idstring–External tool ID (numeric string). Get it from list_external_tools.
urlstring–Optional launch URL of a specific tool resource, if the tool needs one.

No output schema declared.

No examples provided.

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.

NameTypeReqDescription
course_idstringyesCanvas course ID, a numeric string such as "12345". Get it from list_courses.
topic_idstringyesDiscussion topic ID (numeric string). Get it from list_topics.

No output schema declared.

No examples provided.

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.

NameTypeReqDescription
course_idstring–Canvas course ID, a numeric string such as "12345". Get it from list_courses.
limitinteger–Maximum number of items to return (one page of results). Smaller is faster.
pageinteger–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 ~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 ~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.

NameTypeReqDescription
course_idstringyesCanvas course ID, a numeric string such as "12345". Get it from list_courses.
limitinteger–Maximum number of items to return (one page of results). Smaller is faster.
pageinteger–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 ~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.

NameTypeReqDescription
course_idstringyesCanvas course ID, a numeric string such as "12345". Get it from list_courses.
user_idstring–Defaults to 'self'

No output schema declared.

No examples provided.

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.

NameTypeReqDescription
daysinteger–Default 7

No output schema declared.

No examples provided.

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.

NameTypeReqDescription
weeksinteger–Default 6

No output schema declared.

No examples provided.

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.

NameTypeReqDescription
course_idstringyesCanvas course ID, a numeric string such as "12345". Get it from list_courses.

No output schema declared.

No examples provided.

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.

NameTypeReqDescription
limitinteger–Maximum number of items to return (one page of results). Smaller is faster.
querystringyesSearch text.

No output schema declared.

No examples provided.

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.]

NameTypeReqDescription
confirmboolean–Must be true to actually execute. Omit or set false to get a dry-run preview first.
group_idstringyesID of the open group to join (numeric string).

No output schema declared.

No examples provided.

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.]

NameTypeReqDescription
confirmboolean–Must be true to actually execute. Omit or set false to get a dry-run preview first.
group_idstringyesStudent group ID (numeric string). Get it from list_my_groups.

No output schema declared.

No examples provided.

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.

NameTypeReqDescription
course_idsarray–Course IDs; omit for all active courses
end_datestring–End of the range, as an ISO 8601 date or date-time, e.g. "2026-11-30".
limitinteger–Maximum number of items to return (one page of results). Smaller is faster.
start_datestring–Start of the range, as an ISO 8601 date or date-time, e.g. "2026-11-01".
unread_onlyboolean–If true, only announcements you have not read yet.

No output schema declared.

No examples provided.

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.

NameTypeReqDescription
include_pastboolean–If true, also include appointment groups whose slots are in the past.
limitinteger–Maximum number of items to return (one page of results). Smaller is faster.
pageinteger–Which page of results to show, starting at 1. Use it when a result says there are more.
scopestring–"reservable" (default: groups you can still book) or "manageable".

No output schema declared.

No examples provided.

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.

NameTypeReqDescription
course_idstringyesCanvas course ID, a numeric string such as "12345". Get it from list_courses.
include_assignmentsboolean–If true, include each group's assignments in the result.
limitinteger–Maximum number of items to return (one page of results). Smaller is faster.
pageinteger–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 ~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.

NameTypeReqDescription
assignment_idstringyesAssignment ID (numeric string). Get it from list_assignments or list_upcoming_assignments.
course_idstringyesCanvas course ID, a numeric string such as "12345". Get it from list_courses.
limitinteger–Maximum number of items to return (one page of results). Smaller is faster.
pageinteger–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 ~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.

NameTypeReqDescription
bucketstring–Optional filter: "past", "overdue", "undated", "ungraded", "unsubmitted", "upcoming" or "future".
course_idstringyesCanvas course ID, a numeric string such as "12345". Get it from list_courses.
limitinteger–Maximum number of items to return (one page of results). Smaller is faster.
pageinteger–Which page of results to show, starting at 1. Use it when a result says there are more.
search_termstring–Optional text filter on names or titles (at least 2 characters, case-insensitive).

No output schema declared.

No examples provided.

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.

NameTypeReqDescription
course_idstringyesCanvas course ID, a numeric string such as "12345". Get it from list_courses.

No output schema declared.

No examples provided.

list_bookmarks ~83

List your saved Canvas bookmarks with their names, URLs and IDs. Read-only. Use the IDs with delete_bookmark.

NameTypeReqDescription
limitinteger–Maximum number of items to return (one page of results). Smaller is faster.
pageinteger–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 ~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.

NameTypeReqDescription
course_idsarray–Course IDs (numeric strings) to include. Get them from list_courses.
end_datestring–End of the range, as an ISO 8601 date or date-time, e.g. "2026-11-30".
limitinteger–Maximum number of items to return (one page of results). Smaller is faster.
pageinteger–Which page of results to show, starting at 1. Use it when a result says there are more.
start_datestring–YYYY-MM-DD
typestring–"event" (default) for calendar events, or "assignment" for assignment due dates.

No output schema declared.

No examples provided.

list_collaborations ~109

List collaborative documents in a course (Google Docs or Microsoft 365 integrations) with titles and links. Read-only.

NameTypeReqDescription
course_idstringyesCanvas course ID, a numeric string such as "12345". Get it from list_courses.
limitinteger–Maximum number of items to return (one page of results). Smaller is faster.
pageinteger–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 ~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.

NameTypeReqDescription
course_idstringyesCanvas course ID, a numeric string such as "12345". Get it from list_courses.
limitinteger–Maximum number of items to return (one page of results). Smaller is faster.
pageinteger–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 ~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.

NameTypeReqDescription
limitinteger–Maximum number of items to return (one page of results). Smaller is faster.
pageinteger–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 ~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.

NameTypeReqDescription
filterarray–Optional filter by course or user, e.g. "course_12345".
limitinteger–Maximum number of items to return (one page of results). Smaller is faster.
pageinteger–Which page of results to show, starting at 1. Use it when a result says there are more.
scopestring–Which mailbox: "inbox" (default), "unread", "starred", "archived" or "sent".

No output schema declared.

No examples provided.

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.

NameTypeReqDescription
content_typesarray–e.g. application/pdf
course_idstringyesCanvas course ID, a numeric string such as "12345". Get it from list_courses.
limitinteger–Maximum number of items to return (one page of results). Smaller is faster.
pageinteger–Which page of results to show, starting at 1. Use it when a result says there are more.
search_termstring–Optional text filter on names or titles (at least 2 characters, case-insensitive).

No output schema declared.

No examples provided.

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.

NameTypeReqDescription
limitinteger–Maximum number of items to return (one page of results). Smaller is faster.
pageinteger–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 ~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.

NameTypeReqDescription
course_idstringyesCanvas course ID, a numeric string such as "12345". Get it from list_courses.

No output schema declared.

No examples provided.

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.

NameTypeReqDescription
course_idstringyesCanvas course ID, a numeric string such as "12345". Get it from list_courses.
enrollment_typearray–student, teacher, ta, observer, designer
limitinteger–Maximum number of items to return (one page of results). Smaller is faster.
pageinteger–Which page of results to show, starting at 1. Use it when a result says there are more.
search_termstring–Optional text filter on names or titles (at least 2 characters, case-insensitive).

No output schema declared.

No examples provided.

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.

NameTypeReqDescription
include_concludedboolean–If true, also include courses from finished terms.
include_gradesboolean–Default true
limitinteger–Maximum number of items to return (one page of results). Smaller is faster.
pageinteger–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 ~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.

NameTypeReqDescription
course_idstringyesCanvas course ID, a numeric string such as "12345". Get it from list_courses.
limitinteger–Maximum number of items to return (one page of results). Smaller is faster.
pageinteger–Which page of results to show, starting at 1. Use it when a result says there are more.
topic_idstringyesDiscussion topic ID (numeric string). Get it from list_topics.

No output schema declared.

No examples provided.

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.

NameTypeReqDescription
course_idstringyesCanvas course ID, a numeric string such as "12345". Get it from list_courses.
entry_idstringyesDiscussion entry ID (numeric string). Get it from get_full_topic_view or list_entries.
limitinteger–Maximum number of items to return (one page of results). Smaller is faster.
pageinteger–Which page of results to show, starting at 1. Use it when a result says there are more.
topic_idstringyesDiscussion topic ID (numeric string). Get it from list_topics.

No output schema declared.

No examples provided.

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.

NameTypeReqDescription
include_deletedboolean–If true, also list deleted ePortfolios.
limitinteger–Maximum number of items to return (one page of results). Smaller is faster.
pageinteger–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 ~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.

NameTypeReqDescription
course_idstringyesCanvas course ID, a numeric string such as "12345". Get it from list_courses.
limitinteger–Maximum number of items to return (one page of results). Smaller is faster.
pageinteger–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 ~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.

NameTypeReqDescription
limitinteger–Maximum number of items to return (one page of results). Smaller is faster.
pageinteger–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 ~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.

NameTypeReqDescription
course_idstringyesCanvas course ID, a numeric string such as "12345". Get it from list_courses.
limitinteger–Maximum number of items to return (one page of results). Smaller is faster.
pageinteger–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 ~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 ~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.

NameTypeReqDescription
course_idstringyesCanvas course ID, a numeric string such as "12345". Get it from list_courses.

No output schema declared.

No examples provided.

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.

NameTypeReqDescription
course_idstringyesCanvas course ID, a numeric string such as "12345". Get it from list_courses.
limitinteger–Maximum number of items to return (one page of results). Smaller is faster.
pageinteger–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 ~106

List discussion topics inside a group workspace with titles and unread counts. Read-only. Post to one with post_group_discussion.

NameTypeReqDescription
group_idstringyesStudent group ID (numeric string). Get it from list_my_groups.
limitinteger–Maximum number of items to return (one page of results). Smaller is faster.
pageinteger–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 ~103

List files shared in a group workspace with names, sizes and IDs. Read-only. Save one with download_file.

NameTypeReqDescription
group_idstringyesStudent group ID (numeric string). Get it from list_my_groups.
limitinteger–Maximum number of items to return (one page of results). Smaller is faster.
pageinteger–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 ~104

List the members of a student group with names and user IDs. Read-only. Get group_id from list_my_groups.

NameTypeReqDescription
group_idstringyesStudent group ID (numeric string). Get it from list_my_groups.
limitinteger–Maximum number of items to return (one page of results). Smaller is faster.
pageinteger–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.

Install

How do I install the io.github.Fireiscoolsolo/canvas-lms-mcp-local server?

io.github.Fireiscoolsolo/canvas-lms-mcp-local runs locally as an npm package, launched with npx -y canvas-lms-mcp-local. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · canvas-lms-mcp-local

# add to Claude Code
claude mcp add fireiscoolsolo-canvas-lms-mcp-local -- npx -y canvas-lms-mcp-local
Common questions

What is the io.github.Fireiscoolsolo/canvas-lms-mcp-local server?

io.github.Fireiscoolsolo/canvas-lms-mcp-local is listed in the public MCP registry as io.github.Fireiscoolsolo/canvas-lms-mcp-local. Student-focused Canvas LMS: 237 tools for grades, deadlines, planning, submissions and study plans. This page covers its npm package (canvas-lms-mcp-local).

Is the io.github.Fireiscoolsolo/canvas-lms-mcp-local server safe to use?

io.github.Fireiscoolsolo/canvas-lms-mcp-local scores 72 out of 100 on VerifyMCP. 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-local server expose?

io.github.Fireiscoolsolo/canvas-lms-mcp-local 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-local server still maintained?

io.github.Fireiscoolsolo/canvas-lms-mcp-local 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-local server under?

io.github.Fireiscoolsolo/canvas-lms-mcp-local 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-local server?

VerifyMCP ran 14 checks on io.github.Fireiscoolsolo/canvas-lms-mcp-local, covering Malware scan, Install scripts, Source repository, Provenance and 10 more. 2 items could not be completed, a gap on our side rather than a finding about io.github.Fireiscoolsolo/canvas-lms-mcp-local: Known CVEs and Dependency health. 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.