# Canvas LMS MCP for AI Agents MCP

> Canvas LMS lets your AI agent manage every aspect of an educational platform—from building entire courses to tracking student grades. Connect it once and automate administrative tasks like creating user accounts, setting up assignments, or listing course modules directly from your chat window.

## Overview
- **Category:** collaboration
- **Price:** Free
- **Tags:** canvas-lms, course-management, e-learning, student-administration, assignment-tracking

## Description

Need to handle the messy backend work of a Learning Management System? This Canvas LMS connector lets your agent manage all your course administration and student data without ever opening the web interface. You can build courses, list every module they contain, and set up assignments or quizzes for entire classes. It handles user accounts, letting you create new users or adjust roles across different campus departments. Your agent keeps track of who needs to do what by pulling activity streams and personal 'To Do' lists. If your current setup is complicated, connecting it via Vinkius helps centralize control; you manage the whole educational workflow from one place.

This means an admin can update organizational details or a tutor can pull up specific course metadata in seconds, all using natural language commands.

## Tools

### create_admin
Designates a specific user account to have administrator permissions within an entire account.

### create_assignment
Sets up a brand new assessment or task for use in a specific course.

### create_conversation
Opens a new, dedicated discussion thread between two users or groups.

### create_course
Establishes and launches an entirely new course container within the Canvas LMS.

### create_discussion_topic
Plants a starting discussion thread in a specific course area so students can respond to it.

### create_quiz
Builds and publishes a new graded quiz within an existing course structure.

### create_role
Defines a specific permission set or job title for users in the account.

### create_sis_import
Initiates the process of bringing Student Information System data into Canvas records.

### create_user
Registers a brand new individual account and user profile in the LMS.

### delete_course
Marks an existing course as completed or deletes it entirely from the system.

### execute_graphql
Runs a custom, complex data query against the Canvas backend for highly specific information retrieval.

### get_account
Retrieves detailed metadata and ownership information for a single account ID.

### get_activity_stream
Pulls the current sequence of actions and events performed by a specific user across the platform.

### get_assignment
Fetches all details, due dates, and instructions for a single assignment ID.

### get_conversation
Displays the full thread history and participants of an existing discussion conversation.

### get_course
Retrieves all metadata—including syllabus, name, and settings—for a specific course ID.

### get_file
Gets details on a file uploaded to the system, including its content type and size.

### get_folder
Retrieves details about a specific folder container within a course module.

### get_page
Gets the full text content and configuration for a single page within a course.

### get_quiz
Retrieves all questions, answers, and settings for a specific quiz ID.

### get_sis_import_status
Checks the current status (e.g., pending, failed) of a previously initiated SIS data import.

### get_sub_accounts
Lists all associated sub-accounts that fall under a primary account ID.

### get_todo
Displays the current set of outstanding tasks and reminders assigned to the logged-in user.

### get_user
Retrieves all core profile information, including name, email, and enrollment status, for a specific user ID.

### grade_submission
Applies a final grade to an assignment submission after reviewing the work.

### list_accounts
Retrieves a list of all top-level and sub-accounts managed by the institution.

### list_admins
Shows every user account that has been granted administrative rights within an account.

### list_announcements
Fetches a list of all announcements made to the course or department.

### list_assignments
Pulls a comprehensive roster of every assignment set up within a given course.

### list_conversations
Lists the subject lines and participants of all ongoing conversations in the user's inbox.

### list_courses
Shows every course the current user has access to or is enrolled in.

### list_discussion_topics
Retrieves a list of all discussion threads created within a specific course module.

### list_files
Lists every digital file uploaded or attached to a given course structure.

### list_folders
Shows all the sub-folder containers nested within a primary folder.

### list_module_items
Retrieves a list of every item (page, quiz, file) contained within an educational module.

### list_modules
Lists all the sequential learning modules that make up a course curriculum.

### list_pages
Shows all the static content pages created and hosted within a specific course.

### list_quizzes
Lists every quiz that has been built into a given course, along with their dates.

### list_roles
Retrieves all defined roles and permission types available across the entire account structure.

### list_submissions
Lists every piece of work submitted by a student for a given assignment.

### submit_assignment
Submits the current user's completed work to an existing course assignment.

### update_account
Modifies specific details (like name or department) for an entire institutional account.

### update_assignment
Edits the instructions, due date, or grading weight of a previously created assignment.

### update_course
Makes general changes to an existing course's settings, name, or visibility status.

### update_user
Modifies a specific user's profile details, such as their department affiliation or contact info.

## Prompt Examples

**Prompt:** 
```
Pull up all my courses and tell me which ones are missing announcements.
```

**Response:** 
```
Here's a breakdown of your active classes: 

*   **Advanced Calculus (ID 202):** Announcements available. Last post: 'Midterm Reminder'. 
*   **Intro to History (ID 303):** No recent announcements found. You should add one about the next reading.
*   **Chemistry Lab (ID 101):** Announcement posted yesterday regarding safety protocols.
```

**Prompt:** 
```
Who is enrolled in 'Advanced Calculus' and what are their current todo items?
```

**Response:** 
```
**Students in Advanced Calculus:**

1.  Sarah Chen: Due tomorrow - Submit Problem Set 3.
2.  Mark Davis: Overdue - Midterm Exam feedback required.
3.  Javier Rios: No outstanding tasks.
```

**Prompt:** 
```
Show me the details for the 'Final Project Proposal' assignment.
```

**Response:** 
```
**Assignment Details: Final Project Proposal**

*   **Course:** Advanced Calculus (ID 202)
*   **Due Date:** Friday, November 15th.
*   **Weight:** 30% of final grade.
*   **Instructions:** Submit a 5-page proposal outlining your methodology. Remember to cite sources using MLA format.
```

## Capabilities

### Creating Content and Assessments
The agent can set up new courses, build quizzes or assignments, and populate the curriculum by listing modules, files, pages, and discussion topics.

### Managing Account Hierarchy
You pull detailed account information using `get_account` and list all associated sub-accounts to understand the full institutional structure.

### User Profile Management
The MCP lets you create, update, or retrieve user profiles, ensuring accurate contact details and enrollment statuses are always available.

## Use Cases

### Auditing User Permissions
A department head needs to know who has admin rights in a specific campus area. Instead of running manual reports, they ask the agent to `list_admins` and get an instant roster of every user with elevated permissions.

### Building a New Curriculum
A faculty member starts designing a new course. They use the agent to first call `create_course`, then populate it by listing modules via `list_modules` and creating all necessary assignments using `create_assignment`.

### Checking Student Progress
A tutor needs to know if a student has completed their mandatory work. They check the user's activity stream with `get_activity_stream`, which instantly confirms recent submissions or overdue items.

## Benefits

- Instead of clicking through five different menus to check student grades, you simply ask your agent to grade a submission using `grade_submission`, instantly pulling up the required data.
- When onboarding new classes, use `create_course` or `update_course` to set up and modify course structures in bulk, saving hours of manual setup time.
- Student records are always current. With `get_user` and `update_user`, you ensure every user profile reflects the latest departmental affiliation or contact information.
- Content management gets faster. You can list all components using `list_module_items`, making it easy to map out a curriculum's required steps before building it.
- Compliance is easier when managing roles. Use `create_role` and `list_roles` to ensure only the right people have administrative access across sub-accounts.

## How It Works

The bottom line is, you treat your entire LMS as a single API endpoint accessible via conversation.

1. Subscribe to this MCP and provide your Canvas Domain (e.g., school.instructure.com) along with a Personal Access Token.
2. Your AI agent connects using the provided credentials, establishing an authenticated link to your institution's backend.
3. You issue commands through your preferred client; for example, 'Show me all courses where John Doe is enrolled.' The MCP executes the action and returns structured data.

## Frequently Asked Questions

**How does the Canvas LMS MCP help me manage multiple departmental accounts?**
It lets you list all sub-accounts under a main institution account, so you can run reports or make updates across departments without logging in dozens of times. You're managing the whole structure from one place.

**Can I use the Canvas LMS MCP to create and assign new quizzes?**
Yes, you can easily generate a brand-new quiz for any course using the agent. It handles setting up the question banks and assigning the correct weight in the final grade.

**What if I need to check what students are currently working on?**
You can pull up the activity stream or list specific assignments for a course. This shows you exactly who has submitted work, when it was viewed, and what their current outstanding tasks are.

**Is this MCP only for creating new content, or can I modify existing material?**
It handles both creation and modification. You can update a course's name using `update_course` or edit the instructions on an old assignment using `update_assignment`.

**Does Canvas LMS MCP handle user roles and permissions?**
Absolutely. It lets you list existing roles, create new ones for specific jobs, and assign administrative rights to users across sub-accounts efficiently.