Canvas MCP server
Manage courses, submissions, grades, and student data in Canvas LMS
31 stars152 downloads/wk
Reviews
Write oneNobody has reviewed Canvas yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Canvas tools (100, 24 write)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
bulk_update_courseswrite actionBulk update multiple courses within an account by applying a single action (publish, conclude, delete, or recover) to all specified courses. This operation runs asynchronously; use the progress endpoint to monitor completion status.
check_account_permissionsRetrieve permission information for the authenticated user within a specified account. Use 'self' as the account ID to check permissions against the domain root account.
copy_outcome_groupDuplicates an outcome group's structure and outcome links into a new subgroup. Recursively imports all nested subgroups while creating new links to existing outcomes rather than copying the outcomes themselves.
create_coursewrite actioncreate_external_toolwrite actioncreate_grading_standardwrite actionCreate a new grading standard for an account with custom grade-to-score mappings. If no grading scheme entries are provided, a default scheme (A: 94, A-: 90, ... F: 0) will be applied.
create_group_categorywrite actionCreate a new group category for organizing students into groups within a course or account. Group categories define how students are allocated, who can lead groups, and enrollment limits.
create_loginwrite actionCreate a new login credential for an existing user within an account. The login can be associated with a specific authentication provider and optionally linked to SIS integration identifiers.
create_notificationwrite actionCreate and distribute a global notification to an account. The notification will be displayed to specified user roles (or all users if roles are omitted) during the specified time window.
create_outcome_subgroupwrite actionCreates a new empty subgroup within an outcome group. The subgroup is initialized with the provided title and description.
deactivate_roleDeactivates a custom role, hiding it from the user interface and preventing assignment to new users. Existing users with this role retain their current permissions. Built-in roles cannot be deactivated.
delete_grading_periodwrite actionDelete a grading period from an account. Returns a 204 No Content response on successful deletion.
delete_outcome_group_accountwrite actionDelete an outcome group and its descendant groups and links. Deletion fails if any remaining links to aligned outcomes are included in the group's descendants, as aligned outcomes cannot be deleted.
delete_reportwrite actionPermanently deletes a generated report instance from the specified account. This action cannot be undone.
delete_webhook_subscriptionwrite actionDelete a webhook subscription by its ID. This removes the subscription and stops delivery of webhook events to the configured endpoint.
disable_sis_grade_exportsDisable all assignments currently flagged for grade export to SIS in a course, with optional filtering by grading period.
dismiss_notificationDismiss a notification for the current user so it no longer appears in their notification list. This allows users to hide notifications they no longer wish to see.
generate_reportInitiates generation of a report instance for the specified account. The report type must match an available report name; use the list_available_reports operation to retrieve valid report names and their supported parameters.
get_assignment_ltiRetrieve a single Canvas assignment by its Canvas ID or LTI ID. Tool providers can only access assignments associated with their tool.
get_authentication_providerRetrieve a specific authentication provider configuration for the given account. Use this to inspect the details and settings of an authentication provider.
get_content_migrationRetrieve detailed information about a specific content migration by its ID within an account. Returns the current status, progress, and metadata for the migration.
get_course_accountRetrieve detailed information about a single course within an account. Supports optional parameters to include permissions, observed users, course images, and recently deleted courses.
get_department_statisticsRetrieves numeric statistics for a department, aggregated by term or applied filters. Provides insights into department-level performance and activity metrics.
get_department_statistics_currentRetrieves numeric statistics for a department, including metrics for the current term or specified filter criteria. Provides aggregated performance and engagement data at the department level.
get_department_statistics_termRetrieve numeric statistics for a department within a specific term or filter. Returns aggregated metrics and analytics data at the department level.
get_enrollmentRetrieve a specific enrollment record by its ID within an account. Returns the complete enrollment object with all associated details.
get_external_toolRetrieve details for a specific external tool configured in an account. Returns the external tool's configuration and metadata.
get_external_tool_sessionless_launch_urlGenerate a sessionless launch URL for an external tool, enabling direct access without requiring an active user session. Either the tool id or launch URL must be provided, unless launching an assessment or module item.
get_feature_flagRetrieve the feature flag configuration for a specific account, course, or user. The flag may be defined directly on the object or inherited from a parent account; check the context_id and context_type fields to determine the source.
get_grading_standardRetrieve a specific grading standard within an account context. Returns the grading standard details if it is visible to the authenticated user.
get_group_members_ltiRetrieve all Canvas users that are members of a specific group. Tool providers can only access groups within their installed context.
get_lti_userRetrieve a single Canvas user by their Canvas ID or LTI ID. Tool providers can only access users who have been assigned an assignment associated with their tool.
get_migration_issueRetrieve detailed information about a specific migration issue within a content migration. Returns the issue data including status, error details, and resolution information.
get_notificationRetrieve a specific global notification for the current user. Closed notifications are not returned.
get_originality_reportRetrieve a single originality report for a specific file within an assignment. This report contains plagiarism detection and similarity analysis results.
get_originality_report_submissionRetrieve a single originality report for a student submission. This report contains plagiarism detection results and analysis for the specified assignment submission.
get_outcome_group_accountRetrieve details for a specific outcome group within an account. Returns the outcome group configuration and associated metadata.
get_outcome_import_statusRetrieve the status of an outcome import for an account. Use 'latest' as the import ID to fetch the most recent import.
get_report_statusRetrieves the current status of a specific report within an account. Use this to check whether a report is pending, processing, completed, or failed.
get_roleRetrieve detailed information about a specific role within an account. Use this to fetch role configuration, permissions, and metadata.
get_root_outcome_group_accountRetrieve the root outcome group for a specific account. This operation redirects to the root outcome group's URL for the given account context.
get_rubricRetrieve a specific rubric by ID, optionally including associated assessments and their details. Use the include and style parameters to control what assessment data is returned.
get_submissionRetrieve a specific student submission for an LTI assignment. Use this to access submission details, content, and metadata by providing the assignment and submission identifiers.
get_webhook_subscriptionRetrieve details for a specific webhook subscription by its ID. Use this to view the configuration and status of an individual LTI webhook subscription.
import_outcomesImport learning outcomes into a Canvas account using CSV format. Supports both multipart form uploads and raw POST requests with CSV data.
initiate_content_migrationlink_outcomeLink an existing outcome into an outcome group, or create and link a new outcome. When linking an existing outcome, only the outcome_id is required. When creating a new outcome, provide at least a title, and optionally description, ratings, and mastery points.
link_outcome_existingLink an existing outcome to an outcome group, or create and link a new outcome. When linking an existing outcome, only the outcome_id is required; when creating a new outcome, a title is required along with optional description, ratings, and mastery points.
list_account_featuresRetrieve a paginated list of all features available for a specific account. Features define capabilities and functionality enabled for the account.
list_accountsRetrieve a paginated list of accounts accessible to the current user. Only account administrators can view accounts; students and teachers typically receive an empty list.
list_active_notificationsRetrieves all active global notifications for the current user in the specified account. Closed or dismissed notifications are excluded from the results.
list_adminsRetrieve a paginated list of administrators for the specified account. Use pagination parameters to control the number of results returned.
list_authentication_providersRetrieve a paginated list of authentication providers configured for an account. Use pagination parameters to control the number of results returned.
list_content_migrationsRetrieve a paginated list of content migrations for the specified account. Use pagination parameters to control the number of results returned.
list_courses_by_accountlist_department_grade_distributionRetrieve the distribution of current student grades across all courses in a department. Grades are binned to the nearest integer (0-100 range), with each student contributing one grade per course regardless of multiple enrollments in the same course.
list_department_grade_distribution_completedRetrieve the distribution of student grades across all courses in a department. Returns raw grade counts binned to the nearest integer (0-100 range), where each student contributes one grade per course regardless of enrollment in multiple sections.
list_department_grade_distributionsRetrieve the distribution of student grades across all courses within a department for a specific term. Grade data is binned to the nearest integer (0-100 range), with each student contributing one grade per course regardless of multiple enrollments in the same course.
list_department_participation_by_termRetrieve department-level participation metrics for a specific term, aggregated across all courses and grouped by date and content category. Returns page view hits with breakdowns by announcements, assignments, collaborations, conferences, discussions, files, general, grades, groups, modules, other, pages, and quizzes.
list_department_participation_completedRetrieve department-level participation metrics for concluded courses in the default term, aggregated by date and content category. Returns page view hits across all courses in the department.
list_department_participation_dataRetrieve aggregated page view participation metrics for all courses in a department, grouped by date and content category. Includes data from all available courses in the default term.
list_enabled_featuresRetrieve a paginated list of all features currently enabled for a specific account. Only feature names are returned.
list_external_toolsRetrieve a paginated list of external tools available in the specified account. Optionally filter by name, selectability, and include tools from parent accounts.
list_grading_periodsRetrieves a paginated list of grading periods for the specified account. Use pagination parameters to control the number of results returned.
list_grading_standardsRetrieve a paginated list of grading standards available in the specified account context. Only standards visible to the authenticated user are returned.
list_group_categoriesRetrieve a paginated list of group categories within a specified account context. Use pagination parameters to control result size and navigate through large datasets.
list_groups_in_accountRetrieve a paginated list of active groups available in the specified account context that are visible to the authenticated user. Optionally filter to only groups the user belongs to and include additional group configuration details.
list_loginsRetrieve a paginated list of login records for a specific account. Use pagination parameters to control the number of results returned.
list_migration_issuesRetrieve a paginated list of migration issues for a specific content migration within an account. Use this to monitor and track problems encountered during the content migration process.
list_migration_systemsRetrieves the list of currently available migration system types for an account. Available migration types may change over time.
list_outcome_groupsRetrieve all outcome groups associated with a specific account. Outcome groups organize related outcomes for tracking and reporting purposes.
list_outcome_linksRetrieve all outcome links associated with a specific account, with configurable detail levels for outcomes and outcome groups.
list_outcomes_accountRetrieve a paginated list of outcomes linked to a specific outcome group. Use outcome_style to control the detail level of returned outcome information.
list_proficiency_ratingsRetrieve account-level proficiency ratings for learning outcomes. If ratings are not defined for the specified account, the operation returns ratings from the nearest parent super-account. Returns 404 if no proficiency ratings are found in the account hierarchy.
list_reportsRetrieves a paginated list of available reports for the specified account. Use pagination parameters to control the number of results returned.
list_reports_by_typeRetrieves all reports of a specific type that have been run for the given account. Use this to view the history and details of previously generated reports.
list_rolesRetrieve a paginated list of roles available to an account, with optional filtering by state and inheritance from parent accounts.
list_rubricsRetrieves a paginated list of active rubrics for the specified account. Use pagination parameters to control the number of results returned.
list_scopesRetrieve a list of available scopes that can be applied to developer keys and access tokens. Optionally group scopes by resource name for better organization.
list_sis_export_assignmentsRetrieve published assignments enabled for grade export to SIS within an account. Results include assignment group and section information, with optional course cross-listing and student override details.
list_sis_export_assignments_by_courseRetrieve published assignments enabled for grade export to SIS. Returns assignment details including group and section information, with optional student override data when the Differentiated Assignments feature is enabled.
list_subgroupsRetrieve a paginated list of immediate child outcome groups within a specified outcome group. Use pagination parameters to control result size and navigate through large datasets.
list_submission_attemptsRetrieve the complete history of all attempts made for a specific submission, including details about each submission attempt.
list_webhook_subscriptionsRetrieve a paginated list of all webhook subscriptions for a tool proxy. Use the 'EndKey' from the response to set 'StartKey' in subsequent requests to fetch additional pages.
promote_account_adminPromote an existing user to admin status within an account. Optionally sends a confirmation email to the newly promoted admin.
reactivate_roleRe-activates an inactive role, allowing it to be assigned to new users again. This operation restores a previously deactivated role to active status.
register_userwrite actionCreate a new user account through self-registration when enabled on the account. Returns the newly created user and associated pseudonym.
remove_external_toolwrite actionPermanently delete an external tool integration from the specified account. This action cannot be undone.
resolve_migration_issuewrite actionUpdate the workflow state of a migration issue to mark it as active or resolved. Use this to track and manage issues discovered during content migrations.
search_domainsSearch for account domains by name or domain value. Returns up to 5 matching results using partial string matching.
set_proficiency_ratingswrite actionCreate or update proficiency ratings at the account level. These ratings apply to all sub-accounts unless they define their own account-level proficiency ratings.
submit_originality_reportwrite actionSubmit an originality report for a student submission file, including an originality score and optional report URL or LTI launch configuration.
unlink_outcomeUnlink an outcome from an outcome group. The outcome is only deleted if this is the last link to it across all groups and contexts; aligned outcomes cannot be deleted and will cause the operation to fail if this is their final link.
update_content_migrationwrite actionUpdate an existing content migration with new settings or file upload parameters. Most settings cannot be changed after the migration process has started, but you can supply new file attachment values to retry a failed upload.
update_external_toolwrite actionUpdate an external tool's configuration and settings. Accepts the same parameters as tool creation.
update_notificationwrite actionUpdate a global notification for an account, including its message, subject, icon, and target recipient roles.
update_originality_reportwrite actionUpdate an existing originality report for a submitted file in an assignment. Modify the report URL, originality score, workflow state, or LTI tool configuration.
update_originality_report_submissionwrite actionUpdate an existing originality report for a submission, including the originality score, report URL, and workflow state. This operation allows modification of plagiarism detection results and LTI tool configuration.
update_outcome_groupwrite actionModify an existing outcome group by updating its title, description, parent group, or vendor GUID. Unspecified fields remain unchanged, and the new parent group must be in the same context without creating circular dependencies.
update_user_loginwrite actionUpdate an existing user login in the specified account. Allows modification of login credentials, identifiers, and integration mappings based on caller permissions.
Public scan report
scanner v0.1.9 · 2026-09-27 · same rubric, same numbers if you re-run it
- Code scan5 source files scanned25/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 138 days ago8/15
- Maintainer identityregistry namespace matches repository owner7/10
How Canvas compares
Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 80/100
- higher than 60% of 48,255 servers
- Tools
- 100
- the typical server has 7
- Tools that change things
- 24%
- typical: 0%. Fewer write tools means less an agent can break
- GitHub stars
- 31
- more than 92% of 28,688 servers
- Downloads a week
- 152
- more than 71% of 12,191 servers with a package
What its tools let an agent do: 73 read · 10 create · 12 change · 5 delete
Install Canvas in Claude Code, Cursor or VS Code
claude mcp add canvas -- uvx mcparmory-canvas
What the publisher says
From the Canvas repository's README, as published. We do not edit it. Read it on GitHub
MCP Armory Registry
Production-ready MCP servers for popular APIs, generated by MCP Blacksmith.
Servers · Install & Usage · Features · How it works · License
MCP servers that connect AI agents to real-world APIs. Each server is a standalone Python package — generated from the upstream OpenAPI spec using MCP Blacksmith and tested against the live API before release. Hosted on MCP Armory or run independently.
<!-- SERVERS:BEGIN -->
Servers
🧠 AI & Machine Learning   ElevenLabs · Linkup · Parallel · Perplexity AI · Ragie · Replicate
📊 Analytics   Ahrefs · Datadog · Google Analytics · Google Search Console · Linkly · Mixpanel · PostHog
⛓️ Blockchain & Crypto   Alchemy NFT
💼 CRM & Sales   Apollo
💬 Communication   Atlassian Confluence · Google Gmail · MailerSend · Mailtrap · Postmark · Resend · Slack
🗄️ Data & Databases   Enigma · Pinecone
🛠️ Developer Tools   AgentQL · Apify · Bitbucket · Bright Data · Browserbase · BuiltWith · Canvas · CircleCI · Codacy · Contentful Management · ConvertAPI · E2B · Firecrawl · GitHub · GitLab · LaunchDarkly · Postman · Scrapingant · Semrush AppCenter · Sentry
📄 Documents & Printing   PDF.co
🛒 E-commerce   Shopify Admin
💰 Finance   Alpha Vantage · Polygon · Ramp
👥 HR & Recruiting   BambooHR
☁️ Infrastructure   Globalping · Grafana · PagerDuty · Rootly · Runpod
⚖️ Legal & Compliance   NetLicensing
🗺️ Maps & Location   Google Maps Platform · IP2Location.io IP Geolocation · OpenCage Geocoding
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
Canvas: common questions
- Is Canvas MCP server safe?
- Mostly: it is graded B (80/100). Read the Canvas safety report
- How do I install Canvas?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop 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 176 days ago (2026-05-12). The latest release is v1.0.3.
- How does Canvas compare with other MCP servers?
- safety score 80/100 (higher than 60% of 48,255 servers); tools 100 (the typical server has 7); tools that change things 24% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.