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 (7 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_course ~79

Get full details for one course: name, code, term, start and end dates, syllabus and public description. Read-only. Use list_courses to find course IDs; use get_syllabus for the syllabus as plain text.

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

No output schema declared.

No examples provided.

get_course_activity_stream ~126

Get recent activity in one course: announcements, discussion replies, grade changes and messages. Read-only. Titles and messages are fenced as untrusted. For all courses at once, use get_activity_stream.

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_course_grade_breakdown ~78

Break down your grade in one course: each assignment group's weight, your points earned vs possible, and its weighted contribution to the total. Read-only. Use compute_needed_score to plan toward a target grade.

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

No output schema declared.

No examples provided.

get_course_pace ~69

Get the pacing plan for a self-paced course: suggested days for each module and the resulting dates. Read-only. Returns an error if course 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.

get_course_permissions ~72

Show what your token is allowed to do in a course, such as posting to discussions or sending messages. Read-only. Call it before a write tool to avoid an action failing halfway.

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

No output schema declared.

No examples provided.

get_course_progress ~66

Get your module completion progress in a course: requirements met, total requirements and next item. Read-only. Returns an error for courses without module completion requirements.

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

No output schema declared.

No examples provided.

get_course_settings ~79

Get course-level settings such as whether final grades are hidden, the late policy is shown, or a grading standard is used. Read-only. Some settings may be hidden from students, in which case Canvas returns an error.

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

No output schema declared.

No examples provided.

get_custom_data ~82

Read key-value data you previously stored on your Canvas account with set_custom_data. Read-only. Returns an error if nothing is stored at that namespace and scope.

NameTypeReqDescription
namespacestring–Namespace, default canvas-mcp
scopestring–Optional path inside the namespace, e.g. "settings/theme". Omit to read everything in the namespace.

No output schema declared.

No examples provided.

get_dashboard_cards ~46

Get the course cards on your Canvas dashboard, in dashboard order, with names, colors and links. Read-only. Use list_courses for every enrollment, including ones not on the dashboard.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_eportfolio_pages ~66

The pages of one of your ePortfolios, with their text. Read-only.

NameTypeReqDescription
eportfolio_idstringyesePortfolio ID from list_eportfolios.
limitinteger–Maximum number of items to return (one page of results). Smaller is faster.

No output schema declared.

No examples provided.

get_file_metadata ~70

Get details for one file: name, size, content type, created and updated dates, and download URL. Read-only. Use download_file to save it locally.

NameTypeReqDescription
file_idstringyesFile ID (numeric string). Get it from list_course_files, list_my_files or list_group_files.

No output schema declared.

No examples provided.

get_file_public_url ~69

Get a temporary public download link for a file that works without logging in. Read-only, but anyone with the link can download the file until it expires.

NameTypeReqDescription
file_idstringyesFile ID (numeric string). Get it from list_course_files, list_my_files or list_group_files.

No output schema declared.

No examples provided.

get_folder ~61

Get one folder's details: full path, parent folder, and how many files and subfolders it holds. Read-only. Get folder_id from list_folders.

NameTypeReqDescription
folder_idstringyesFolder ID (numeric string). Get it from list_folders.

No output schema declared.

No examples provided.

get_folder_tree ~84

Show a course's folders and files as an indented outline. Read-only. A good first look at what material exists; use list_course_files for IDs and details.

NameTypeReqDescription
course_idstringyesCanvas course ID, a numeric string such as "12345". Get it from list_courses.
max_depthinteger–How many folder levels deep to go.

No output schema declared.

No examples provided.

get_full_topic_view ~110

Get an entire discussion thread, all entries and nested replies, in one request. Read-only. Much lighter on rate limits than paging through list_entries. All participant text is fenced as untrusted.

NameTypeReqDescription
course_idstringyesCanvas course ID, a numeric string such as "12345". Get it from list_courses.
max_entriesinteger–Maximum number of discussion entries to include.
topic_idstringyesDiscussion topic ID (numeric string). Get it from list_topics.

No output schema declared.

No examples provided.

get_grade_trend ~65

List graded assignments in a course in date order with a running average, so you can see whether your grade is rising or falling. Read-only.

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

No output schema declared.

No examples provided.

get_grading_standard ~114

Get the letter-grade scale for a course, i.e. the percentage needed for each letter such as A- or B+. 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.

get_group ~58

Get one student group: name, description, member count and the course it belongs to. Read-only. Get group_id from list_my_groups.

NameTypeReqDescription
group_idstringyesStudent group ID (numeric string). Get it from list_my_groups.

No output schema declared.

No examples provided.

get_group_activity_stream ~113

Get recent activity in a group workspace: new discussion posts, files and announcements, newest first. Read-only. Text written by others is fenced as untrusted.

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.

get_late_policy ~81

Get a course's late policy: the percentage deducted per late interval, the lowest score a late penalty can reach, and the grade given for missing work. Read-only. Returns an error if the course has no late policy.

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

No output schema declared.

No examples provided.

get_media_captions ~64

List the caption (subtitle) tracks on a recorded lecture with their languages and IDs. Read-only. Captions are the closest thing to a transcript; save one with download_media_captions.

NameTypeReqDescription
media_idstringyesmedia_id from list_media_objects

No output schema declared.

No examples provided.

get_module ~83

Get one module: name, position, unlock date, prerequisites, your completion state and its items. Read-only. Get module_id from list_modules.

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

No output schema declared.

No examples provided.

get_module_item ~113

Get one item inside a module (assignment, page, file, quiz, link…) with its completion requirement and whether you met it. Read-only. Get item_id from list_module_items.

NameTypeReqDescription
course_idstringyesCanvas course ID, a numeric string such as "12345". Get it from list_courses.
item_idstringyesModule item ID (numeric string). Get it from list_module_items.
module_idstringyesModule ID (numeric string). Get it from list_modules.

No output schema declared.

No examples provided.

get_module_item_sequence ~123

Show where a piece of content sits in its module: the previous and next items, so you can work through a module in order. Read-only.

NameTypeReqDescription
asset_idstringyesID of that content (numeric string). For a Page, use its URL slug.
asset_typestringyesKind of content asset_id refers to. Use "ModuleItem" when asset_id is a module item ID from list_module_items.
course_idstringyesCanvas course ID, a numeric string such as "12345". Get it from list_courses.

No output schema declared.

No examples provided.

get_my_activity_analytics ~67

Get your page views and participations in a course, counted per day. Read-only. Returns an error if course analytics are disabled at your school.

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

No output schema declared.

No examples provided.

get_my_assignment_analytics ~75

Get your score on each assignment next to the class median, min and max, plus whether you submitted on time. Read-only. Returns an error if course analytics are disabled at your school.

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

No output schema declared.

No examples provided.

get_my_communication_analytics ~67

Get daily counts of messages between you and the instructor in a course. Read-only. Returns an error if course analytics are disabled at your school.

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

No output schema declared.

No examples provided.

get_my_outcome_results ~73

Get your mastery scores on each of a course's learning outcomes, from rubric-graded work. Read-only. Use get_outcome_rollup for one rolled-up score per outcome.

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

No output schema declared.

No examples provided.

get_my_override ~100

Get the due, lock and unlock dates that actually apply to you for an assignment, after section or individual overrides. Read-only. Use this instead of the default dates when deadlines differ by section.

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_my_page_views ~135

List your own Canvas page views (URL, time and course) in a time range. Read-only. Useful for showing you opened material on a given date. How far back history goes depends on your school.

NameTypeReqDescription
end_timestring–End of the range, ISO 8601. Defaults to now.
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_timestring–ISO 8601

No output schema declared.

No examples provided.

get_my_profile ~43

Get your full Canvas profile: name, bio, avatar, primary email and calendar feed URL. Read-only. For just your ID and name, whoami is cheaper.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_my_quiz_submission ~98

Get your latest submission for a quiz: score, attempt number, state and timing. Read-only. Use list_my_quiz_submissions for every attempt.

NameTypeReqDescription
course_idstringyesCanvas course ID, a numeric string such as "12345". Get it from list_courses.
quiz_idstringyesQuiz ID (numeric string). Get it from list_quizzes, or list_new_quizzes for New Quizzes.

No output schema declared.

No examples provided.

get_my_rubric_assessment ~120

Get how the rubric was applied to your submission: points and comment for each criterion, plus your score. Read-only. Returns no assessment if the instructor did not grade with a rubric. get_rubric_assessment returns the same data plus the compact rubric_assessment form.

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_my_settings ~47

Get your account-level Canvas preferences, such as dashboard view, activity stream visibility and comment notification settings. Read-only. For how often you are notified about each event, use get_notification_preferences.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_my_submission ~96

Get your submission for one assignment: score, grade, submitted time, lateness and deductions, attachments and instructor comments. Read-only. Use get_submission_history for earlier attempts.

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_new_quiz ~111

Get details for one New Quizzes assessment: title, instructions, points and timing. Read-only. Uses the Quiz LTI API, which some schools do not expose to students. For Classic Quizzes use get_quiz.

NameTypeReqDescription
course_idstringyesCanvas course ID, a numeric string such as "12345". Get it from list_courses.
quiz_idstringyesQuiz ID (numeric string). Get it from list_quizzes, or list_new_quizzes for New Quizzes.

No output schema declared.

No examples provided.

get_new_quiz_items ~146

List the questions in a New Quizzes assessment. Read-only. Most schools only allow this for instructors, so students usually get a permission error.

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.
quiz_idstringyesQuiz ID (numeric string). Get it from list_quizzes, or list_new_quizzes for New Quizzes.

No output schema declared.

No examples provided.

get_notification_preferences ~75

Get how often Canvas notifies you about each event type (due dates, grades, announcements…) on one channel: immediately, daily, weekly or never. Read-only. Get channel_id from get_communication_channels first.

NameTypeReqDescription
channel_idstringyesCommunication channel ID (numeric string). Get it from get_communication_channels.

No output schema declared.

No examples provided.

get_originality_report ~98

Get the plagiarism or originality score (e.g. Turnitin) for your submission and its attachments. Read-only. Returns no report if no originality tool is enabled on the assignment.

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_outcome ~53

Get one learning outcome with its description and mastery scale. Read-only. Use list_outcomes to find outcome IDs.

NameTypeReqDescription
outcome_idstringyesLearning outcome ID (numeric string). Get it from list_outcomes.

No output schema declared.

No examples provided.

get_outcome_rollup ~69

Get one rolled-up mastery score per learning outcome for you in a course. Read-only. Use get_my_outcome_results for the individual results behind each score.

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

No output schema declared.

No examples provided.

get_page_content ~89

Read a course page as plain text (converted from HTML), with its title and last-updated time. Read-only. The body is fenced as untrusted. Find page slugs with list_pages.

NameTypeReqDescription
course_idstringyesCanvas course ID, a numeric string such as "12345". Get it from list_courses.
page_urlstringyesPage url slug or page_id

No output schema declared.

No examples provided.

get_page_revision ~157

Get the content of a course page as it was at one past revision, with the editor and date. Read-only. The body is fenced as untrusted text. Use list_page_revisions to find revision numbers, and get_page_content for the current version. Canvas returns a permission error if page history is hidden from students.

NameTypeReqDescription
course_idstringyesCanvas course ID, a numeric string such as "12345". Get it from list_courses.
page_urlstringyesThe page's URL slug, e.g. "week-1-overview" (the last part of the page address). Get it from list_pages.
revision_idstringyesRevision number of the page, from list_page_revisions.

No output schema declared.

No examples provided.

get_peer_review_assignment ~97

Get the peer reviews set up on one assignment: who reviews whom and whether each is complete. Read-only. Use list_my_peer_reviews for just the reviews you still owe.

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_quiz ~101

Get one Classic Quiz: instructions, time limit, allowed attempts, dates and when results are shown. Read-only. Instructions are fenced as untrusted. This server never takes quizzes.

NameTypeReqDescription
course_idstringyesCanvas course ID, a numeric string such as "12345". Get it from list_courses.
quiz_idstringyesQuiz ID (numeric string). Get it from list_quizzes, or list_new_quizzes for New Quizzes.

No output schema declared.

No examples provided.

get_quiz_assignment_overrides ~98

Get section- or student-specific due dates for quizzes in a course. Read-only. Use get_my_override for the dates that apply to you on one assignment.

NameTypeReqDescription
course_idstringyesCanvas course ID, a numeric string such as "12345". Get it from list_courses.
quiz_assignment_overridesarray–Optional quiz IDs to limit the result to, e.g. ["123", "456"].

No output schema declared.

No examples provided.

get_quiz_extensions ~95

Get extra time or extra attempts granted to you on a quiz (accommodations). Read-only. Returns an empty list if none were granted.

NameTypeReqDescription
course_idstringyesCanvas course ID, a numeric string such as "12345". Get it from list_courses.
quiz_idstringyesQuiz ID (numeric string). Get it from list_quizzes, or list_new_quizzes for New Quizzes.

No output schema declared.

No examples provided.

get_quiz_ip_filters ~97

Get IP address restrictions on a quiz (used for lab-only or proctored exams), so you know where you can take it. Read-only.

NameTypeReqDescription
course_idstringyesCanvas course ID, a numeric string such as "12345". Get it from list_courses.
quiz_idstringyesQuiz ID (numeric string). Get it from list_quizzes, or list_new_quizzes for New Quizzes.

No output schema declared.

No examples provided.

get_quiz_submission_time ~117

Get the time remaining and end time for an in-progress timed quiz attempt. Read-only. Needs the submission ID from get_my_quiz_submission.

NameTypeReqDescription
course_idstringyesCanvas course ID, a numeric string such as "12345". Get it from list_courses.
quiz_idstringyesQuiz ID (numeric string). Get it from list_quizzes, or list_new_quizzes for New Quizzes.
submission_idstringyesQuiz submission ID (numeric string), from get_my_quiz_submission.

No output schema declared.

No examples provided.

get_rate_limit_status ~60

Report Canvas rate-limit state from the most recent API call: remaining quota, last request cost and requests this session. Read-only and makes no Canvas call itself. Canvas throttles by cumulative request cost, so check this before expensive tools like semester_snapshot.

Input schema present but exposes no named parameters.

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.