Integrations
Provides tools for interacting with Canvas LMS, enabling management of courses, announcements, assignments, modules, student enrollments, submissions, grades, files, and rubrics through the Canvas API.
Claude Canvas MCP
A Model Context Protocol (MCP) server that enables Claude to interact with Canvas LMS. This server provides tools for managing courses, announcements, assignments, students, and more through the Canvas API.
Features
- List active courses and their details
- Retrieve course modules, pages, and content
- View assignments, quizzes, and discussions
- Access student enrollment information
- Post announcements and comments
- View submission details and grades
- Upload and download files
- Manage rubrics and grades
Prerequisites
- Node.js (v16 or higher)
- A Canvas API token
- Canvas instance URL (defaults to "http://canvas.docker/")
- Claude Desktop application
Installation
- Clone this repository and install dependencies:
- Build the TypeScript project:
- Configure your environment variables:
Claude Desktop Integration
- Open Claude Desktop's configuration file:
MacOS:
Windows:
- Add the Canvas MCP server configuration:
- Restart Claude Desktop to apply changes
Available Tools
list-courses
Lists all active courses for the authenticated user
- No required parameters
- Returns course names, IDs, and term information
get-course
Gets detailed information about a specific course
- Required parameters:
- courseId: string
list-modules
Lists all modules in a course
- Required parameters:
- courseId: string
list-module-items
Lists all items in a module
- Required parameters:
- courseId: string
- moduleId: string
list-assignments
Gets all assignments in a course
- Required parameters:
- courseId: string
- Optional parameters:
- includeContent: boolean (default: false)
get-assignment
Gets detailed information about an assignment
- Required parameters:
- courseId: string
- assignmentId: string
list-students
Gets a complete list of students enrolled in a course
- Required parameters:
- courseId: string
- Optional parameters:
- includeEmail: boolean (default: false)
post-announcement
Posts an announcement to a specific course
- Required parameters:
- courseId: string
- title: string
- message: string
list-submissions
Gets all student submissions for an assignment
- Required parameters:
- courseId: string
- assignmentId: string
get-submission
Gets a specific student's submission for an assignment
- Required parameters:
- courseId: string
- assignmentId: string
- studentId: string
post-submission-comment
Posts a comment on a student's submission
- Required parameters:
- courseId: string
- assignmentId: string
- studentId: string
- comment: string
list-files
Lists files in a course
- Required parameters:
- courseId: string
- Optional parameters:
- folderId: string
upload-file
Uploads a file to a course
- Required parameters:
- courseId: string
- fileName: string
- fileContent: string
- Optional parameters:
- folderId: string
License
MIT License
This server cannot be installed
A Model Context Protocol server that enables Claude to interact with Canvas LMS, providing tools for managing courses, announcements, assignments, students, and more through the Canvas API.