canvas-lms-mcp

MCPattesté
v2.2.0Christian BruMITMis à jour il y a 2 jnpmGitHub

TypeScript MCP 1.x server for Canvas LMS — 172 tools across Canvas courses, assignments, grades, gradebook history, quizzes, New Quizzes (LTI), outcomes, discussions, admin workflows, and more.

Fonctionne dans
ClaudeCursorCopilotGemini

Déduit des transports déclarés par cette annonce (stdio). Un client absent de cette liste n’est pas écarté pour autant — c’est simplement quelque chose que Forge ne peut pas confirmer.

Build attesté
Une attestation de provenance vérifiée lie cet artefact au dépôt indiqué. Personne n’a encore revendiqué l’annonce — cela prouve où le code a été construit, pas qui le soutient.
4kTéléch./sem.
9Étoiles GitHub
4Forks
il y a 2 jDernière mise à jour
Nécessite 1 identifiant avant de pouvoir fonctionner
  • CANVAS_API_TOKENClé d’APIobligatoire

    Canvas personal access token (Account → Settings → Approved Integrations → New Access Token)

Déclaré par l’auteur dans le registre MCP officiel. Forge does not store, broker, or ever see these values — the config below is scaffolded with placeholders you fill in locally.

Paquet
AuteurChristian Bru
LicenceMIT
Version2.2.0
Sourcenpm+mcp-registry
Statut de confiance
A
85/100Fiable
✓Listé dans l’index Forge+10/10
✓Identité vérifiée · build attesté+20/20
—Signature de publication Ed25519+0/5
→ Incluse automatiquement quand l’éditeur exécute `forge publish`
—Vérification de domaine+0/5
→ Éditeur : hébergez /.well-known/forge.json sur la page d’accueil du paquet avec { "publisher": "<github-login>" }
✓npm Trusted Publishing (Sigstore)+5/5
—Correspondance de mainteneur npm+0/5
→ Éditeur : ajoutez le login GitHub vérifié aux mainteneurs du paquet npm (npm owner add <login>)
✓Analyse CVE · propre+30/30
✓Analyse statique · propre+20/20
Collez-le dans Claude Code, Cursor ou tout assistant d’IA pour combler toutes les lacunes
StatutIdentité vérifiée
ÉditeurNon vérifié
SignatureNon signé
Domaine—
Provenance✓ Vérifié par Sigstore · b7b3605
Dépendances✓ 60 résolues+ · aucune vulnérable
Surface d’outils40 outils · 2 privilégiés
Analyse de sécurité✓ Proprev2.3.0 · aujourd’huiQuelle est l’efficacité de cette analyse ?
ÉvaluationsAucune
Indexé25 juil. 2026

La vérification confirme l’identité de l’éditeur (la propriété du dépôt), pas la sûreté du code. L’analyse de sécurité couvre les CVE connues et les scripts d’installation suspects.

Outils

40 outils · 2 privilégiés
Extrait statiquement du paquet publiév2.3.0 · 7h ago

Lu dans le code que npm livre réellement, au moment de l’analyse. Le paquet n’a jamais été exécuté. Les outils enregistrés dynamiquement à l’exécution, ou cachés dans du code empaqueté ou minifié, peuvent passer inaperçus — c’est donc un plancher de la surface d’outils, pas un recensement complet.

get_accountGet details for a Canvas account by ID.

Get details for a Canvas account by ID.

Aucun schéma d’entrée n’a été publié pour cet outil.

list_accountsList all accounts accessible to the authenticated user.

List all accounts accessible to the authenticated user.

Aucun schéma d’entrée n’a été publié pour cet outil.

list_sub_accountsList sub-accounts under a given Canvas account.

List sub-accounts under a given Canvas account.

Aucun schéma d’entrée n’a été publié pour cet outil.

list_account_coursesList courses under a given Canvas account.

List courses under a given Canvas account.

Aucun schéma d’entrée n’a été publié pour cet outil.

list_account_usersList users in a Canvas account.

List users in a Canvas account.

Aucun schéma d’entrée n’a été publié pour cet outil.

get_account_reportsList available report types for a Canvas account.

List available report types for a Canvas account.

Aucun schéma d’entrée n’a été publié pour cet outil.

list_account_notificationsList active global institution-wide announcements for the current user (maintenance windows, term deadlines, policy notices).

List active global institution-wide announcements for the current user (maintenance windows, term deadlines, policy notices).

Aucun schéma d’entrée n’a été publié pour cet outil.

view_account_notificationsInteractive panel of active institution-wide announcements. Returns the same payload as `list_account_notifications` and additionally links to an MCP Apps UI resource that renders scannable announcement cards with type filters and search. Hosts that do not support MCP Apps fall back to the JSON pay…

Interactive panel of active institution-wide announcements. Returns the same payload as `list_account_notifications` and additionally links to an MCP Apps UI resource that renders scannable announcement cards with type filters and search. Hosts that do not support MCP Apps fall back to the JSON pay…

Aucun schéma d’entrée n’a été publié pour cet outil.

upload_submission_fileprivilégiéUpload a file to the authenticated student's own submission area for one assignment, as step 1 of an online_upload submission (step 2: pass the returned file id to submit_assignment). Opt-in tool: only available when the server was started with CANVAS_ENABLE_ASSIGNMENT_SUBMISSION. Content must be b…

Upload a file to the authenticated student's own submission area for one assignment, as step 1 of an online_upload submission (step 2: pass the returned file id to submit_assignment). Opt-in tool: only available when the server was started with CANVAS_ENABLE_ASSIGNMENT_SUBMISSION. Content must be b…

Aucun schéma d’entrée n’a été publié pour cet outil.

submit_assignmentAucune description publiée

Cet outil n’a publié aucune description. Forge n’en invente pas.

search_course_contentSearch for content within a course. Searches pages, assignments, discussions, and announcements by keyword.

Search for content within a course. Searches pages, assignments, discussions, and announcements by keyword.

Aucun schéma d’entrée n’a été publié pour cet outil.

get_course_analyticsGet course-level activity analytics. Returns daily page view and participation counts.

Get course-level activity analytics. Returns daily page view and participation counts.

Aucun schéma d’entrée n’a été publié pour cet outil.

get_student_analyticsGet per-student activity analytics for a course. Returns page views, participations, and submission timeline for a specific student.

Get per-student activity analytics for a course. Returns page views, participations, and submission timeline for a specific student.

Aucun schéma d’entrée n’a été publié pour cet outil.

get_course_activity_streamGet a summary of recent activity in a course. Returns counts of recent events grouped by type (submissions, discussions, announcements, etc.).

Get a summary of recent activity in a course. Returns counts of recent events grouped by type (submissions, discussions, announcements, etc.).

Aucun schéma d’entrée n’a été publié pour cet outil.

get_assignment_analyticsGet score distribution analytics for assignments in a course. Returns statistical summary (min, max, median, first/third quartile), submission count, and tardiness breakdown (on_time, late, missing) for each assignment. Provide assignment_id to scope to one assignment; omit to return analytics for…

Get score distribution analytics for assignments in a course. Returns statistical summary (min, max, median, first/third quartile), submission count, and tardiness breakdown (on_time, late, missing) for each assignment. Provide assignment_id to scope to one assignment; omit to return analytics for…

Aucun schéma d’entrée n’a été publié pour cet outil.

list_submission_comments_needing_attentionList submissions where the most recent comment is from the student and has not been addressed by grading or a reply — i.e. comments the instructor has likely not seen. Returns a triage list, oldest-unaddressed first. Requires instructor/TA permissions in the course.

List submissions where the most recent comment is from the student and has not been addressed by grading or a reply — i.e. comments the instructor has likely not seen. Returns a triage list, oldest-unaddressed first. Requires instructor/TA permissions in the course.

Aucun schéma d’entrée n’a été publié pour cet outil.

list_students_needing_attentionReport students who may need instructor attention based on inactivity, missing or late submissions, and low current score. Each finding lists the exact signals that fired and the thresholds used — this is a factual report, not a prediction. Requires instructor/TA permissions in the course.

Report students who may need instructor attention based on inactivity, missing or late submissions, and low current score. Each finding lists the exact signals that fired and the thresholds used — this is a factual report, not a prediction. Requires instructor/TA permissions in the course.

Aucun schéma d’entrée n’a été publié pour cet outil.

list_assignmentsList all assignments in a course. Use fields="slim" when enumerating assignments for selection; switch to "full" once you've identified the target. slim returns id, name, due_at, points_possible, published, and course_id only. "full" (default) includes all Canvas fields plus `include` extras (submi…

List all assignments in a course. Use fields="slim" when enumerating assignments for selection; switch to "full" once you've identified the target. slim returns id, name, due_at, points_possible, published, and course_id only. "full" (default) includes all Canvas fields plus `include` extras (submi…

Aucun schéma d’entrée n’a été publié pour cet outil.

get_assignmentGet details for a single assignment by ID. Use `include` to request submission, overrides, all_dates, score_statistics, and other optional fields.

Get details for a single assignment by ID. Use `include` to request submission, overrides, all_dates, score_statistics, and other optional fields.

Aucun schéma d’entrée n’a été publié pour cet outil.

list_assignment_groupsList assignment groups (categories like Homework, Exams) in a course. Use `include=assignments` to nest assignments under each group; other includes add submission, overrides, score_statistics, etc.

List assignment groups (categories like Homework, Exams) in a course. Use `include=assignments` to nest assignments under each group; other includes add submission, overrides, score_statistics, etc.

Aucun schéma d’entrée n’a été publié pour cet outil.

create_assignmentCreate a new assignment in a course.

Create a new assignment in a course.

Aucun schéma d’entrée n’a été publié pour cet outil.

update_assignmentUpdate an existing assignment in a course.

Update an existing assignment in a course.

Aucun schéma d’entrée n’a été publié pour cet outil.

delete_assignmentprivilégiéDelete an assignment from a course. This action is permanent.

Delete an assignment from a course. This action is permanent.

Aucun schéma d’entrée n’a été publié pour cet outil.

list_assignment_overridesList all due-date / availability overrides for a specific assignment in a course. Returns overrides targeting individual students, sections, or groups. Useful for auditing before creating a new override — Canvas returns a 422 if a student-set override already exists for the same students on the sam…

List all due-date / availability overrides for a specific assignment in a course. Returns overrides targeting individual students, sections, or groups. Useful for auditing before creating a new override — Canvas returns a 422 if a student-set override already exists for the same students on the sam…

Aucun schéma d’entrée n’a été publié pour cet outil.

create_assignment_overrideAucune description publiée

Cet outil n’a publié aucune description. Forge n’en invente pas.

set_student_assignment_datesAucune description publiée

Cet outil n’a publié aucune description. Forge n’en invente pas.

list_calendar_eventsList calendar events for a course, unbounded by the ~1-week/20-item caps that `get_upcoming_events` and `get_my_upcoming_assignments` are stuck with. By default Canvas only returns `type="event"` items for today alone (end_date defaults to start_date) — pass both start_date and end_date to cover a…

List calendar events for a course, unbounded by the ~1-week/20-item caps that `get_upcoming_events` and `get_my_upcoming_assignments` are stuck with. By default Canvas only returns `type="event"` items for today alone (end_date defaults to start_date) — pass both start_date and end_date to cover a…

Aucun schéma d’entrée n’a été publié pour cet outil.

create_calendar_eventCreate a new calendar event in Canvas.

Create a new calendar event in Canvas.

Aucun schéma d’entrée n’a été publié pour cet outil.

update_calendar_eventUpdate an existing calendar event. Only provided fields are changed.

Update an existing calendar event. Only provided fields are changed.

Aucun schéma d’entrée n’a été publié pour cet outil.

create_content_exportStart a Canvas course content export (Common Cartridge / QTI / zip). Exports are asynchronous — this tool returns immediately with an export ID and initial workflow_state ("created"). Call get_content_export to poll progress and retrieve the time-limited download link when the export finishes.

Start a Canvas course content export (Common Cartridge / QTI / zip). Exports are asynchronous — this tool returns immediately with an export ID and initial workflow_state ("created"). Call get_content_export to poll progress and retrieve the time-limited download link when the export finishes.

Aucun schéma d’entrée n’a été publié pour cet outil.

get_content_exportGet the status of a content export. When workflow_state is "exported", attachment.url contains a time-limited download link — download it promptly, as the URL expires (re-fetch to get a fresh one). Returns attachment: null while still "created"/"exporting" or on "failed".

Get the status of a content export. When workflow_state is "exported", attachment.url contains a time-limited download link — download it promptly, as the URL expires (re-fetch to get a fresh one). Returns attachment: null while still "created"/"exporting" or on "failed".

Aucun schéma d’entrée n’a été publié pour cet outil.

list_content_exportsList all content exports for a course (most recent first).

List all content exports for a course (most recent first).

Aucun schéma d’entrée n’a été publié pour cet outil.

list_content_migrationsList all content migrations for a course (most recent first).

List all content migrations for a course (most recent first).

Aucun schéma d’entrée n’a été publié pour cet outil.

get_content_migrationGet the status of a single content migration. When workflow_state is "running", poll progress_url for live updates. When "completed", the migration is done.

Get the status of a single content migration. When workflow_state is "running", poll progress_url for live updates. When "completed", the migration is done.

Aucun schéma d’entrée n’a été publié pour cet outil.

list_content_migration_typesList available migration types (migrators) for a course. Returns migrator type keys such as course_copy_importer, common_cartridge_importer, zip_file_importer, qti_converter, moodle_converter.

List available migration types (migrators) for a course. Returns migrator type keys such as course_copy_importer, common_cartridge_importer, zip_file_importer, qti_converter, moodle_converter.

Aucun schéma d’entrée n’a été publié pour cet outil.

get_migration_selective_dataGet the selective import tree for a migration — the list of content items available to selectively import. Only meaningful for migrations in the "waiting_for_select" state.

Get the selective import tree for a migration — the list of content items available to selectively import. Only meaningful for migrations in the "waiting_for_select" state.

Aucun schéma d’entrée n’a été publié pour cet outil.

get_migration_asset_id_mappingGet the old-to-new asset ID mapping for a completed migration. Useful for resolving references to content that existed in the source course.

Get the old-to-new asset ID mapping for a completed migration. Useful for resolving references to content that existed in the source course.

Aucun schéma d’entrée n’a été publié pour cet outil.

list_migration_issuesList issues encountered during a content migration. Each issue has a type (todo, warning, or error) and a description.

List issues encountered during a content migration. Each issue has a type (todo, warning, or error) and a description.

Aucun schéma d’entrée n’a été publié pour cet outil.

create_content_migrationStart a content migration (course copy, Common Cartridge import, zip import, QTI conversion, or Moodle conversion). Migrations are asynchronous — this tool returns immediately with a migration ID and progress_url. Poll get_content_migration or progress_url to track completion.

Start a content migration (course copy, Common Cartridge import, zip import, QTI conversion, or Moodle conversion). Migrations are asynchronous — this tool returns immediately with a migration ID and progress_url. Poll get_content_migration or progress_url to track completion.

Aucun schéma d’entrée n’a été publié pour cet outil.

list_conversationsList conversations (inbox messages) for the authenticated user.

List conversations (inbox messages) for the authenticated user.

Aucun schéma d’entrée n’a été publié pour cet outil.

37 outils sur 40 ont publié une description.

Les noms et descriptions d’outils sont écrits par l’éditeur et affichés tels quels, comme du texte inerte. Ce sont les chaînes qu’un client MCP transmet à un modèle, alors Forge y recherche des motifs d’injection de prompt — tout constat apparaît avec l’analyse de sécurité ci-dessus. « Privilégié » est une correspondance de mot-clé sur le nom de l’outil, pas un audit de ce qu’il fait : un nom anodin peut tout de même tout faire.

À propos

TypeScript MCP 1.x server for Canvas LMS — 172 tools across Canvas courses, assignments, grades, gradebook history, quizzes, New Quizzes (LTI), outcomes, discussions, admin workflows, and more.

Mots-clés
canvascanvas-lmslmsmcpmodel-context-protocoleducationgradingai-agentai-toolsclaude-desktopcursorvscodeinstructureeducation-technologyedtechteacherstudentgrading-automationtypescript
Alternatives
Comparaison des surfaces d’outils…

Arbre de dépendances

Ce qu'une analyse Forge a résolu à partir des métadonnées npm le 2026-10-12 — résolution observée, et non une déclaration de l'éditeur.

60 paquets résolus · 4 directs · aucun porteur d'avis de sécurité La résolution s'arrête à la profondeur 4 et à 60 paquets.

L'exploration s'est arrêtée à la limite de 60 paquets. Le reste de l'arbre n'a jamais été résolu.

36 autres paquets résolus ne sont pas dessinés ici (limite d'affichage : 24). Toute dépendance porteuse d'un avis de sécurité est dessinée quelle que soit la limite. Inventaire complet (SBOM CycloneDX)

Déclarées mais non résolues

57 dépendances déclarées ne sont jamais arrivées dans l'arbre. Elles manquent à la résolution de Forge, pas au paquet.

+45 de plus non listées. Les comptes par motif ci-dessus les couvrent toutes.

Non suivies : peerDependencies. Cet arbre ne couvre que les dépendances d'exécution ; ce qu'elles entraînent n'a jamais été résolu.

Thèmes

Apparentés dans design tools