Mmcp.market

Canvas MCP server

by vishalsachdev·io.github.vishalsachdev/canvas-mcp·v1.12.0

Canvas LMS integration for students and educators with optional privacy controls

A85/100grade A
What users say
No reviews yet
Be the first
Safety scan
A85/100

full report

Adoption
Growing

256 stars

Reviews

Write one

Nobody has reviewed Canvas yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

Canvas tools (100, 33 write)

write = sends, deletes, buys or posts

Read from the package source without running it. The installed server may list more.

  • _capwrite action

    Truncate text to at most max_len characters total, sentinel included.

  • add_module_item

    Add an item to a module.

  • analyze_peer_review_quality

    Analyze the quality and content of peer review comments.

  • assign_peer_review

    Manually assign a peer review to a student for a specific assignment.

  • associate_rubric

    Associate an existing rubric with an assignment.

  • bulk_delete_announcementswrite action

    Delete multiple announcements by ID. Two-step: preview first, then confirm with the token.

  • bulk_grade_submissions

    Grade multiple submissions efficiently with concurrent processing.

  • bulk_update_pageswrite action

    Update settings for multiple pages at once.

  • check_enrollment

    Check whether a specific campus login ID is enrolled in a course.

  • create_announcementwrite action

    Create a new announcement for a course with optional scheduling.

  • create_assignmentwrite action

    Create a new assignment in a course.

  • create_content_migrationwrite action

    Preview or confirm a full course-copy migration request.

  • create_discussion_topicwrite action

    Create a new discussion topic for a course.

  • create_modulewrite action

    Create a new module in a course.

  • create_pagewrite action

    Create a new page in a Canvas course.

  • create_rubricwrite action

    Create a new rubric in a course, optionally associating it with an assignment.

  • create_rubric_from_csvwrite action

    Create one or more rubrics in a course from a CSV string.

  • create_student_anonymization_mapwrite action

    Create a local CSV file mapping real student data to anonymous IDs for a course.

  • delete_announcement_with_confirmationwrite action

    Delete an announcement. Two-step: preview first, then confirm with the token.

  • delete_announcements_by_criteriawrite action

    Delete announcements matching criteria. Two-step: preview first, then confirm with the token.

  • delete_assignment_with_confirmationwrite action

    Delete an assignment. Two-step: preview first, then confirm with the token.

  • delete_modulewrite action

    Delete a module. Two-step: preview first, then confirm with the token.

  • delete_module_itemwrite action

    Remove an item from a module. Two-step: preview first, then confirm with the token.

  • delete_pagewrite action

    Delete a page. Two-step: preview first, then confirm with the token.

  • download_course_file

    Download a file from a Canvas course to the local filesystem.

  • edit_page_content

    Edit the content of a specific page.

  • execute_typescriptwrite action

    Execute TypeScript code in a Node.js environment with access to Canvas API.

  • extract_peer_review_dataset

    Export all peer review data in various formats for analysis.

  • fetch_ufixit_report

    Fetch UFIXIT accessibility report from Canvas course pages.

  • fix_accessibility_issues

    Auto-fix accessibility issues in Canvas course content.

  • format_accessibility_summary

    Format parsed violations into a human-readable summary.

  • generate_peer_review_feedback_reportwrite action

    Create instructor-ready reports on peer review quality.

  • generate_peer_review_report

    Generate peer review completion report with summary, analytics, and follow-up recommendations.

  • get_anonymization_status

    Get current data anonymization status and statistics.

  • get_assignment_analytics

    Get detailed analytics about student performance on a specific assignment.

  • get_assignment_details

    Get detailed information about a specific assignment.

  • get_content_migration_status

    Read one content migration and its current progress snapshot.

  • get_conversation_details

    Get detailed conversation information with messages.

  • get_course_content_overview

    Get a comprehensive overview of course content including pages, modules, and syllabus.

  • get_course_details

    Get detailed information about a specific course.

  • get_course_structure

    Get the full module and item structure for a course in a single call.

  • get_discussion_entry_details

    Get detailed information about a specific discussion entry including all its replies.

  • get_discussion_topic_details

    Get detailed information about a specific discussion topic.

  • get_discussion_with_replies

    Enhanced function to get discussion entries with optional reply fetching.

  • get_front_page

    Get the front page content for a course.

  • get_my_course_grades

    Get your current grades across all enrolled courses.

  • get_my_enrollments

    List the courses YOU are enrolled in, with your role in each.

  • get_my_peer_reviews_todo

    Get peer reviews YOU need to complete.

  • get_my_profile

    Get YOUR own Canvas identity (user ID, name, login ID).

  • get_my_submission

    Get your own submission for an assignment, including attempts used.

  • get_my_submission_status

    Get your submission status for assignments.

  • get_my_todo_items

    Get your Canvas TODO list.

  • get_my_upcoming_assignments

    Get your upcoming assignments across all courses.

  • get_page_content

    Get the full content body of a specific page.

  • get_page_details

    Get a specific page's metadata plus a short text preview.

  • get_peer_review_assignments

    Get peer review assignment mapping showing who reviews whom with completion status.

  • get_peer_review_comments

    Retrieve actual comment text for peer reviews on an assignment.

  • get_peer_review_completion_analytics

    Get peer review completion analytics with student-level breakdown and summary stats.

  • get_peer_review_followup_list

    Get prioritized list of students needing follow-up on peer review completion.

  • get_rubric

    Get detailed rubric criteria, ratings, and points.

  • get_rubric_assessment

    Get rubric assessment scores for a specific submission.

  • get_student_analytics

    Get per-student engagement analytics: page views, participations, and on-time/late/missing assignment counts.

  • get_syllabus

    Get the complete Canvas Syllabus tab content for a course, untruncated.

  • get_unread_count

    Get number of unread conversations.

  • grade_with_rubricwrite action

    Submit grades using rubric criteria.

  • identify_problematic_peer_reviews

    Flag reviews that may need instructor attention.

  • list_announcements

    List a course's announcements, and nothing else.

  • list_assignments

    List assignments for a specific course.

  • list_code_api_modules

    List all available TypeScript modules in the code execution API.

  • list_conversations

    List conversations for the current user.

  • list_course_files

    List files in a Canvas course with optional search.

  • list_courses

    List courses for the authenticated user.

  • list_discussion_entries

    List discussion entries (posts) for a specific discussion topic with optional full content and replies.

  • list_discussion_topics

    List discussion topics for a specific course.

  • list_groups

    List all groups and their members for a specific course.

  • list_module_items

    List items within a specific module, including pages.

  • list_modules

    List all modules in a course.

  • list_pages

    List pages for a specific course.

  • list_peer_reviews

    List all peer review assignments for a specific assignment.

  • list_rubrics

    List all rubrics in a specific course with optional detailed criteria.

  • list_submissions

    List submissions for a specific assignment.

  • list_users

    List users enrolled in a specific course.

  • mark_conversations_read

    Mark multiple conversations as read.

  • parse_ufixit_violations

    Parse UFIXIT report content to extract accessibility violations.

  • post_discussion_entrywrite action

    Post a new top-level entry to a discussion topic.

  • read_course_file

    Read a file from a Canvas course and return its content as base64.

  • reply_to_discussion_entry

    Reply to a student's discussion entry/comment.

  • scan_course_content_accessibility

    Scan Canvas course content for basic accessibility issues.

  • search_canvas_tools

    Search available Canvas tools by keyword — both the registered MCP tools (e.g. list_peer_reviews, create_assignment) and the TypeScript code-execution API used by execute_typescript().

  • send_bulk_messages_from_listwrite action

    Send customized messages to multiple recipients using templates.

  • send_conversationwrite action

    Send messages to students via Canvas conversations.

  • send_peer_review_followup_campaignwrite action

    Complete workflow: analyze peer reviews and send targeted reminders.

  • send_peer_review_inbox_messageswrite action

    Send direct Canvas Inbox messages about incomplete peer reviews.

  • submit_assignmentwrite action

    Submit one of YOUR OWN assignments. Consumes an attempt.

  • update_assignmentwrite action

    Update an existing assignment in a course.

  • update_discussion_topicwrite action

    Update an existing discussion topic or announcement.

  • update_modulewrite action

    Update an existing module's settings.

  • update_module_itemwrite action

    Update an existing module item.

  • update_page_settingswrite action

    Update settings for an existing page (without changing content).

  • upload_course_filewrite action

    Upload a file to Canvas course storage.

Public scan report

scanner v0.1.9 · 2026-09-20 · same rubric, same numbers if you re-run it

1 medium
  • Code scan82 source files scanned20/25
  • Live reliabilityno gateway calls yet and no remote to proben/a
  • Tool poisoningtools not inspected (local package is not executed); not countedn/a
  • Auth qualitylocal package, no credentials required12/15
  • Maintenancelast push 0 days ago15/15
  • Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10

Findings (1)

  • mediumsubprocess with shell=Trueexec.shell-true
    canvas_mcp-1.12.0/src/canvas_mcp/tools/code_execution.py: … asyncio.create_subprocess_exec without shell=True. This function finds the underlying…
Overall 85/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

What the publisher says

From the Canvas repository's README, as published. We do not edit it. Read it on GitHub

Canvas MCP Server

<!--mcp-name: io.github.vishalsachdev/canvas-mcp-->

MCP server for Canvas LMS with up to 103 tools and 8 agent skills. Designed for Claude Desktop, Cursor, Codex, Windsurf, and 40+ other agents; setup and capabilities vary by client.

Quick Start

1. Install the MCP server (everything else, including the skills, needs it running):

  • Claude Desktop: download canvas-mcp.mcpb from the latest release and double-click it. It prompts for your Canvas URL and token; no terminal needed. Details.
  • Cursor, Zed, Windsurf, Continue, Claude Code and other clients: pip install into a virtualenv, add your token to .env, and point your client at the canvas-mcp-server binary. Local Installation has the per-client config blocks.

2. Verify: canvas-mcp-server --test should report a successful Canvas connection. Then restart your client.

3. Optional: add the workflow skills. These teach your agent the multi-step recipes (weekly plan, morning check, bulk grading, peer review, course QC) on top of the tools:

npx skills add vishalsachdev/canvas-mcp

See Agent Skills for the list. If your agent is Claude Code, the same recipes are also available as slash commands.

For AI Agents

<!-- INLINE AGENT GUIDE: Intentionally duplicates AGENTS.md content. WHY: Agents often can't fetch raw.githubusercontent.com or GitHub blob pages. MAINTENANCE: When updating tools, also update AGENTS.md (source of truth). See CLAUDE.md "Documentation Maintenance" for full guidelines. -->

Canvas MCP provides up to 103 tools for interacting with Canvas LMS; the default profile registers fewer, and optional feature-gated tools can raise the total to 103. Tools are organized by user type:

Student Tools (click to expand)

Educator Tools (click to expand)

Shortened. The full README is on GitHub.

Nothing above is checked by us. What we check is on the safety report.

Install directly

claude mcp add canvas-mcp -- uvx canvas-mcp
Add to Cursor

Canvas: common questions

Is Canvas MCP server safe?
Yes, by our scan: it is graded A (85/100). Read the Canvas safety report
How do I install Canvas?
It runs on your machine. Copy the Claude Code, Claude Desktop or Cursor config from the install section.
Does Canvas need an API key?
Not as far as the registry entry and our scan can tell: no credentials are declared or required.
Is Canvas maintained?
The last commit was in the last day (2026-09-20). The latest release is v1.12.0.

More from vishalsachdev