4,500+ servers built on MCP Fusion
Vinkius

Canvas LMS MCP. Manage users, courses, and assignments with a single conversation.

Claude Claude
ChatGPT ChatGPT
Cursor Cursor
Gemini Gemini
Windsurf Windsurf
VS Code VS Code
JetBrains JetBrains
Vercel Vercel
See Vinkius in Action

Works with every AI agent you already use

…and any MCP-compatible client

Canvas LMS MCP on Cursor AI Code Editor MCP Client Canvas LMS MCP on Claude Desktop App MCP Integration Canvas LMS MCP on OpenAI Agents SDK MCP Compatible Canvas LMS MCP on Visual Studio Code MCP Extension Client Canvas LMS MCP on GitHub Copilot AI Agent MCP Integration Canvas LMS MCP on Google Gemini AI MCP Integration Canvas LMS MCP on Lovable AI Development MCP Client Canvas LMS MCP on Mistral AI Agents MCP Compatible Canvas LMS MCP on Amazon AWS Bedrock MCP Support

Just plug in your AI agents and start using Vinkius.

Canvas LMS MCP Server manages all your course administration, user accounts, and content within Canvas directly through your AI agent.

List courses, create assignments, update student profiles, and manage account roles using natural language commands—no need to click through complex menus.

What your AI agents can do

Create admin

Assigns administrative privileges to a specific user within an account.

Create assignment

Adds a new, graded assignment directly into the course content.

Create conversation

Starts a brand-new message thread within Canvas messaging.

+ 42 more capabilities included
Manage Course Content

You can list, create, read, update, and delete courses, modules, assignments, quizzes, files, and discussion topics.

Handle User Accounts & Roles

Create user profiles, manage account roles, list admins, and retrieve specific student or organizational details.

Track Student Progress

View a student's activity stream (get_activity_stream), check their 'To Do' items (get_todo), and grade submitted assignments using grade_submission.

Automate Account Structure

List accounts, get sub-accounts for a specific domain, or update organizational details across the institution.

Supported MCP Clients

Claude Claude
ChatGPT ChatGPT
Cursor Cursor
Gemini Gemini
Windsurf Windsurf
VS Code VS Code
JetBrains JetBrains
Vercel Vercel
+ other MCP clients
Free for Subscribers

Waiting for input…

AI Agent

Canvas LMS: 45 Tools for Course & User Management

This collection of tools gives your agent access to every administrative function in Canvas—from creating content to managing roles and users.

create019e3874

create admin

Assigns administrative privileges to a specific user within an account.

create019e3874

create assignment

Adds a new, graded assignment directly into the course content.

create019e3874

create conversation

Starts a brand-new message thread within Canvas messaging.

create019e3874

create course

Sets up and publishes an entirely new course shell in the LMS.

create019e3874

create discussion topic

Posts a new discussion topic within a specified course area.

create019e3874

create quiz

Generates and publishes a new quiz instance for the course.

create019e3874

create role

Defines and sets up a specific user role within an organizational account.

create019e3874

create sis import

Initiates the process to import student information system (SIS) data into Canvas.

create019e3874

create user

Creates a brand-new, active user profile account in Canvas.

delete019e3874

delete course

Archives or permanently removes an existing course from the catalog.

execute019e3874

execute graphql

Allows running custom GraphQL queries against the entire Canvas database for specialized data retrieval.

get019e3874

get account

Retrieves detailed metadata and structure information for a specific institutional account.

get019e3874

get activity stream

Fetches the current list of actions performed by the user in Canvas.

get019e3874

get assignment

Pulls all details for a single, existing assignment instance.

get019e3874

get conversation

Retrieves all message history and metadata from a specific conversation thread.

get019e3874

get course

Gets the full structure and details for an existing course ID.

get019e3874

get file

Downloads or views metadata for a specific file within Canvas storage.

get019e3874

get folder

Retrieves the contents and structure of a specified folder.

get019e3874

get page

Fetches the full content and metadata for a specific page in a course.

get019e3874

get quiz

Retrieves all question banks, settings, and results for a given quiz ID.

get019e3874

get sis import status

Checks if the SIS data import job is still running or if it completed successfully.

get019e3874

get sub accounts

Lists all affiliated sub-accounts linked to a primary organizational account.

get019e3874

get todo

Retrieves the user's current list of administrative or academic 'To Do' items.

get019e3874

get user

Shows detailed profile information and enrollment status for a specific Canvas user ID.

grade019e3874

grade submission

Submits a grade score against a student's assignment attempt.

list019e3874

list accounts

Shows a list of all institutional accounts connected to the domain.

list019e3874

list admins

Returns a list of users who currently hold admin privileges in an account.

list019e3874

list announcements

Retrieves all recent official announcements posted to the course or account.

list019e3874

list assignments

Shows a list of every assignment associated with an active course.

list019e3874

list conversations

Retrieves all message threads from the user's general inbox view.

list019e3874

list courses

Lists every course currently visible to the user in their primary catalog view.

list019e3874

list discussion topics

Retrieves all active discussion topics for a specific course area.

list019e3874

list files

Lists the files saved in a given folder or within a course module.

list019e3874

list folders

Shows all sub-folders contained within a specific directory structure.

list019e3874

list module items

Retrieves the full list of items (pages, assignments) inside a defined module.

list019e3874

list modules

Lists all structured modules used to organize content within a course.

list019e3874

list pages

Retrieves the titles and locations of all pages in a specific course.

list019e3874

list quizzes

Shows all quizzes that have been created for a given course.

list019e3874

list roles

Retrieves all defined roles (e.g., TA, Instructor) available in an account.

list019e3874

list submissions

Lists every submission attempt a student made for a particular assignment.

submit019e3874

submit assignment

Sends a completed file or text entry as a final grade submission for an assignment.

update019e3874

update account

Modifies general settings and details across the entire Canvas account structure.

update019e3874

update assignment

Edits the parameters (due date, points, instructions) of an existing assignment.

update019e3874

update course

Makes changes to the overall settings or structure of a course.

update019e3874

update user

Modifies specific profile data, names, or permissions for an existing user account.

Choose How to Get Started

Build a custom MCP for your own tools, or connect a ready-made integration from our catalog.

Build Your Own

Turn any API into an MCP. Import a spec, define Agent Skills, or deploy with MCPFusion.

  • Import from OpenAPI, Swagger, or YAML specs
  • Create Agent Skills with progressive disclosure
  • Deploy to edge with MCPFusion framework
  • Built in DLP, auth, and compliance on every call
  • Real time usage dashboard and cost metering
  • Publish to catalog or keep private
Start building

Make Your AI Do More

Start with Canvas LMS, then connect any of our 4,700+ other servers whenever your AI needs more. One click, no limits.

  • Use this MCP plus 4,700+ others, all in one place
  • Add new capabilities to your AI anytime you want
  • Every connection is secured and compliant automatically
  • Track usage and costs across all your servers
  • Works with Claude, ChatGPT, Cursor, and more
  • New servers added to the catalog every week

What you can do with this MCP connector

Canvas LMS MCP Server manages everything in your Canvas account directly through your AI agent. You can run admin tasks—the kind that usually takes clicking through a dozen menus—using natural language commands. It's built to handle the full lifecycle of courses, users, and content across institutional accounts.

Course Structure and Content Management

The list_courses tool shows every course visible in your primary catalog view; you can then grab the full structure and details for any specific class using get_course. You don't just read courses, either. You can set up an entirely new course shell with create_course, or archive/remove a whole thing using delete_course.

Need to adjust how old classes run? Use update_course to modify overall settings and structure. The system lets you manage content depth by listing structured modules with list_modules, then fetching the full list of items—pages, assignments—inside a module via list_module_items. You can read specific pages using get_page or grab titles and locations for all pages in a course with list_pages.

For assignments, you've got it covered: you can see every assignment active in a course using list_assignments, pull details for one assignment instance using get_assignment, or create brand-new ones with create_assignment. You'll need to update them sometimes; use update_assignment to change due dates, points, or instructions. When students turn stuff in, you can list all their attempts through list_submissions and submit the final grade score using grade_submission.

Quizzes, Discussions, and Files

When it comes to quizzes, you can see every quiz created for a course using list_quizzes. You'll generate new ones with create_quiz, or retrieve all question banks, settings, and results for an existing one with get_quiz. For discussions, the list_discussion_topics tool retrieves all active topics in a specific area; you can then post a brand-new thread using create_discussion_topic.

You can also check out general messaging. Use list_conversations to see your whole inbox, or get detailed message history and metadata from any single chat thread using get_conversation; remember, you'll start new chats with create_conversation.

The content storage is easy too. You can list files saved in a module or folder using list_files, and view the metadata for a specific file by running get_file. If you need to know what's inside a directory, use get_folder after getting the contents via list_folders.

User Accounts, Roles, and Admin Rights

Managing people is key. The create_user tool builds brand-new user profiles in Canvas. You can update specific profile details—like names or permissions—for any existing account using update_user. To check on a person's record, use get_user to see their detailed profile and enrollment status. For admin work, you don't have to guess; the server lets you list all users who hold admin privileges with list_admins, or assign new admin powers directly using create_admin.

You can define roles—like TA or Instructor—by running create_role and retrieving a full list of available roles using list_roles.

The system also helps you manage the institution's structure. Use list_accounts to see all connected institutional accounts, and if your domain has affiliates, get_sub_accounts lists them for you. You can modify general settings across the entire account framework with update_account, or get detailed metadata about a specific institutional account using get_account.

Data Flow and Progress Tracking

Need to bring in student data? Run create_sis_import to start the process, then check its status—running or done—with get_sis_import_status. You can track what's happening across the board by checking the user's current list of administrative or academic 'To Do' items using get_todo, or fetching a timeline of all actions taken in Canvas via get_activity_stream.

Finally, for highly specialized data retrieval that doesn't fit standard commands, you can run custom GraphQL queries against the whole database using execute_graphql.

How Canvas LMS MCP Works

  1. 1 Subscribe to the Canvas LMS server and provide your required credentials: the Canvas Domain and Personal Access Token.
  2. 2 Direct your AI client (Claude, Cursor, etc.) to execute a specific task using natural language (e.g., 'Create a new quiz for Advanced Math').
  3. 3 The agent invokes the appropriate tool (create_quiz), sends the data to Canvas, and returns the confirmation or updated record.

The bottom line is that you tell your AI client what administrative action needs doing in Canvas, and it executes the API calls for you.

Who Is Canvas LMS MCP For?

This server is built for people who spend too much time clicking through complex LMS dashboards. It helps administrators who need to provision users across multiple sub-accounts or educators who just want to quickly check assignments without getting lost in the course menu.

LMS Administrator

Use list_accounts and get_sub_accounts to manage user creation, assign roles (create_role), and update organizational settings for entire departments.

Educator/Course Designer

Quickly list courses (list_courses) or create new content like assignments (create_assignment) and quizzes (create_quiz) without manual setup time.

Tutor/Grader

Retrieve student work submissions (list_submissions), check the activity stream, and grade assignments using grade_submission.

What Changes When You Connect

  • Speed up grading. Instead of manually checking grades across multiple tabs, run list_submissions and then use grade_submission to record scores directly from your agent's output.
  • Automate user onboarding. When a department grows, you don't navigate the console; you just tell your AI client to create_user, and it handles setting up the profile and initial access.
  • Control course structure instantly. Need to add a quiz? Use create_quiz instead of clicking through module settings. You get the quiz published and ready in seconds.
  • Maintain organizational integrity. If you need to adjust global rules or create new departments, use list_accounts, then get_sub_accounts to map out the structure before calling update_account.
  • Get context immediately. Instead of guessing what happened last week, run get_activity_stream and get a clean summary of recent changes in your account or course.

Real-World Use Cases

01

Student Enrollment Audit

The administrator needs to confirm which users are active across all departments. They ask the agent to list_accounts first, then use get_sub_accounts on each one to map out every linked department and verify that user accounts exist for everyone who should be enrolled.

02

Course Update Workflow

A professor realizes the due date for a major project is wrong. Instead of finding the course, navigating to assignments, and editing it, they simply say 'Update Assignment X' and call update_assignment, specifying the new deadline and point value.

03

Content Gap Analysis

A developer needs to know what materials are in a specific unit. They ask the agent to list_modules for the target course, then use get_page on each module item and list_files to get a complete inventory of existing content.

04

Onboarding New Staff

A new TA starts. The manager asks the agent to create_user for them, then immediately calls create_role to assign 'TA' status and ensures they get added to the correct course using update_user.

The Tradeoffs

Trying to find a user profile manually

The user logs into Canvas, clicks on 'Users,' filters by department, scrolls through pages of names, and finally finds the ID they needed.

Just ask your agent: 'Show me details for User X.' It runs get_user immediately. You get the profile data without any clicking.

Updating course settings piece by piece

The admin needs to change the default grade weight, then update the syllabus page, and finally adjust the main module sequence—all requiring multiple logins and different menus.

Use get_course first to check current settings. Then use a single call: 'Update Course Y with these changes.' The agent handles all necessary updates using update_course.

Asking for too much data at once

The user tries to dump the entire database contents by running generic queries, leading to an overwhelming and unstructured mess of records.

Use specific tools. If you need submissions, call list_submissions. If you need account structure, use get_sub_accounts. Don't guess; ask for what you know.

When It Fits, When It Doesn't

Use this server when your task involves managing structural data or records (users, courses, assignments) across multiple distinct steps. The key is that the process requires reading current state (get_course, list_courses) and then making a definitive change (create_quiz, update_user). Don't use it if you just need to read unstructured content—for example, reading a long essay submission might require opening the file viewer. For simple viewing tasks like 'What is my current activity?' use get_activity_stream. But if you need to act on that data, this server gives you the tools to do it. If your task can be solved by just browsing the web interface normally, don't bother with an AI agent; stick to the native Canvas site. This is for automation.

Independent Platform Disclaimer: Vinkius is an independent platform and is not affiliated with, endorsed by, sponsored by, verified by, or otherwise authorized by Canvas LMS. All third-party trademarks, logos, and brand names are the property of their respective owners. Their use on this website is strictly for informational purposes to identify service compatibility and interoperability.

VINKIUS INFRASTRUCTURE

Cloud Hosted

Managed infra

V8 Isolated

Sandboxed per request

Zero-Trust Proxy

No stored credentials

DLP Enforced

Policy on every call

GDPR Compliant

EU data residency

Token Compression

~60% cost reduction

How we secure it →

Works with Claude, ChatGPT, Cursor, and more

The Model Context Protocol standardizes how applications expose capabilities to LLMs. Instead of operating in isolation, your AI gains direct access to external platforms, live data, and real-world actions through secure, standardized connections.

This server provides 45 capabilities that interface natively with Claude, ChatGPT, Cursor, and any MCP client. No middleware. No custom integration required.

Available Capabilities

create_admin create_assignment create_conversation create_course create_discussion_topic create_quiz create_role create_sis_import create_user delete_course execute_graphql get_account get_activity_stream get_assignment get_conversation get_course get_file get_folder get_page get_quiz get_sis_import_status get_sub_accounts get_todo get_user grade_submission list_accounts list_admins list_announcements list_assignments list_conversations list_courses list_discussion_topics list_files list_folders list_module_items list_modules list_pages list_quizzes list_roles list_submissions submit_assignment update_account update_assignment update_course update_user

Administrative tasks shouldn't require logging into five different tabs.

Today, updating a course can feel like assembling IKEA furniture: you go to 'Courses,' click on the specific class, then find the 'Modules' tab, open that module, and finally hit 'Assignments.' If you need to adjust the syllabus or change user access, you often have to switch between five different menus just to get one small thing done.

With this MCP server, your agent handles the whole sequence. You tell it: 'Change Course X's due date and add a new quiz.' It runs `get_course` for context, calls `update_course`, then executes `create_quiz`. You get the job finished in three seconds, not ten minutes of clicking.

Canvas LMS MCP Server: Managing Course Content

Think about listing assignments. Manually, you navigate to a course, go into 'Assignments,' and then run through every single filter dropdown to see what's active this semester—it’s tedious and prone to human error.

Now, just ask it: 'List all the assignments for Course ID 123.' The agent runs `list_assignments` and spits out a clean list immediately. You don't touch a menu; you get the data.

Common Questions About Canvas LMS MCP

How do I check if my SIS import job is finished using the get_sis_import_status tool? +

You use get_sis_import_status to see the current status. It tells you if the data transfer is 'Running,' or if it's 'Completed.' If it says complete, you know you can proceed with other tools.

Can I create a new course shell using the create_course tool? +

Yes. create_course sets up the entire structure for a brand-new Canvas class. You just need to specify the title and department details when you call it.

What is the best way to update a user profile? Do I use get_user or update_user? +

To see what's currently there, use get_user. To make changes—like fixing a name or changing their permissions—you must call update_user.

Does list_modules show me everything in the course? +

No. list_modules shows you the container structure (Module 1, Module 2). To see the actual items inside those modules, you have to use list_module_items.

If I use `list_roles` or try to run `create_admin`, what level of account permission is required? +

You need 'Administrator' rights on the target account. The system checks your token's scope before allowing any role creation or assignment changes, so always confirm your permissions first.

For retrieving bulk or complex course data, is `list_courses` better than `execute_graphql`? +

execute_graphql gives you maximum flexibility and performance for custom datasets. Use it when simple list calls don't capture all the related metadata you need in one query.

Before calling `update_assignment`, how can I confirm that the assignment exists and is editable? +

You must run get_assignment first. This retrieves the full details, confirming the ID's validity and showing you if the course or account structure has changed since the data was last available.

When using the `grade_submission` tool, what information is required beyond just the submission ID? +

The tool requires a specific user context (the student who submitted it) and the actual grade value you want to apply. You can't just submit an ID; you have to provide the final score.

Can I see my personal upcoming tasks and deadlines? +

Yes! Use the get_todo tool to retrieve your current todo items or get_activity_stream to see recent updates and announcements across your courses.

How do I list all assignments for a specific course? +

Simply provide the Course ID to the list_assignments tool. The agent will return a list of all assignments configured for that specific course environment.

Is it possible to create or update courses through this integration? +

Yes. You can use create_course to instantiate new courses under an account, or update_course to modify names and codes of existing ones.

More in this category

You might also like

Built & Managed by Vinkius 30s setup 45 tools

We've already built the connector for Canvas LMS. Just plug in your AI agents and start using Vinkius.

No hosting. No infrastructure. No complex setup.
All 45 tools are live and waiting. You're up and running in seconds.

Claude Claude
ChatGPT ChatGPT
Cursor Cursor
Gemini Gemini
Windsurf Windsurf
VS Code VS Code
JetBrains JetBrains
Vercel Vercel
+ other MCP clients

Vinkius gives your AI agents access to the full catalog of app connectors, all fully managed, secure, and enterprise-ready. One subscription, every tool you need.

Zero hosting required Full MCP catalog included Enterprise-grade security Auto-updated by Vinkius

Built, hosted, and secured by Vinkius. You just connect and go.