Canvas MCP Server

by defsolmcp

Integrations

  • Used for environment variable management to store configuration settings like API tokens and URLs.

  • Provides tools for interacting with the Canvas LMS API, enabling course and user management, content creation, assessments, and quiz administration within a Canvas learning management system.

  • Used for cloning the repository during the installation process.

Canvas MCP Server

A Model Context Protocol (MCP) server for interacting with the Canvas LMS API. This server provides tools for managing courses, users, content, and assessments in Canvas.

Features

  • Authentication: Secure authentication with Canvas API tokens
  • Course Management: Get course information, list courses, update course settings
  • User Management: Get user information, list course users, manage enrollments
  • Content Management: Create and manage pages, modules, and module items
  • Assessment Management: Create and manage assignments, grade submissions, create announcements
  • Quiz Management: Create and manage quizzes, quiz questions, and grade quiz submissions

Prerequisites

  • Node.js 16 or higher
  • A Canvas LMS instance
  • Canvas API token with appropriate permissions

Installation

  1. Clone the repository:
    git clone https://github.com/yourusername/canvas-mcp-server.git cd canvas-mcp-server
  2. Install dependencies:
    npm install
  3. Create a .env file based on the .env.example file:
    cp .env.example .env
  4. Edit the .env file with your Canvas API token and URL:
    CANVAS_API_TOKEN=your_canvas_api_token_here CANVAS_API_URL=https://your-institution.instructure.com/api/v1 MCP_SERVER_NAME=canvas-mcp
  5. Build the project:
    npm run build

Usage

Running the Server

npm start

Configuring with Claude for Desktop

To use this MCP server with Claude for Desktop, add the following to your Claude for Desktop configuration file:

{ "mcpServers": { "canvas-mcp": { "command": "node", "args": [ "/ABSOLUTE/PATH/TO/canvas-mcp-server/dist/index.js" ] } } }

Replace /ABSOLUTE/PATH/TO/ with the actual path to your canvas-mcp-server directory.

Configuring with Anything LLM

To use this MCP server with Anything LLM, add the following to your Anything LLM MCP configuration:

  1. Navigate to Settings > MCP in your Anything LLM interface
  2. Add a new MCP server with the following configuration:
{ "name": "canvas-mcp", "command": "node", "args": [ "/ABSOLUTE/PATH/TO/canvas-mcp-server/dist/index.js" ] }

Replace /ABSOLUTE/PATH/TO/ with the actual path to your canvas-mcp-server directory.

For more information, see the Anything LLM MCP documentation.

Available Tools

Course Management
  • get_course: Get information about a Canvas course
  • list_courses: List Canvas courses for the current user
  • update_course: Update Canvas course settings
  • get_course_modules: Get modules for a Canvas course
  • get_course_assignments: Get assignments for a Canvas course
User Management
  • get_user: Get information about a Canvas user
  • get_self: Get information about the current Canvas user
  • list_course_users: List users enrolled in a Canvas course
  • enroll_user: Enroll a user in a Canvas course
  • remove_enrollment: Remove a user enrollment from a Canvas course
  • send_message: Send a message to a Canvas user
Content Management
  • get_course_pages: Get pages for a Canvas course
  • get_page_content: Get content of a Canvas page
  • create_or_update_page: Create or update a Canvas page
  • delete_page: Delete a Canvas page
  • create_module: Create a new module in a Canvas course
  • add_module_item: Add an item to a module in a Canvas course
Assessment Management
  • create_assignment: Create a new assignment in a Canvas course
  • update_assignment: Update an existing assignment in a Canvas course
  • grade_submission: Grade a student submission for an assignment
  • get_submissions: Get student submissions for an assignment
  • create_announcement: Create a new announcement in a Canvas course
Quiz Management
  • list_quizzes: List quizzes in a Canvas course
  • get_quiz: Get details of a specific quiz
  • create_quiz: Create a new quiz in a Canvas course
  • update_quiz: Update an existing quiz in a Canvas course
  • delete_quiz: Delete a quiz from a Canvas course
  • get_quiz_questions: Get questions for a specific quiz
  • create_quiz_question: Create a new question for a quiz
  • update_quiz_question: Update an existing quiz question
  • delete_quiz_question: Delete a question from a quiz
  • get_quiz_submissions: Get submissions for a specific quiz
  • grade_quiz_submission: Grade a quiz submission

Development

Project Structure

canvas-mcp-server/ ├── src/ │ ├── index.ts # Main entry point │ ├── auth/ # Authentication handling │ ├── api/ # Canvas API client │ │ └── client.ts # API client with pagination and rate limiting │ ├── tools/ # MCP tool implementations │ │ ├── courses.ts # Course-related tools │ │ ├── users.ts # User-related tools │ │ ├── content.ts # Content-related tools │ │ ├── assessments.ts # Assessment-related tools │ │ └── quizzes.ts # Quiz-related tools │ └── utils/ │ ├── logging.ts # Logging utilities │ └── error.ts # Error handling utilities ├── dist/ # Compiled JavaScript files ├── .env # Environment variables └── package.json # Project dependencies

Running in Development Mode

npm run dev

License

MIT

Acknowledgements

-
security - not tested
F
license - not found
-
quality - not tested

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

A Model Context Protocol server that enables AI assistants to interact with Canvas LMS through its API, providing tools for managing courses, users, content, assessments, and quizzes.

  1. Features
    1. Prerequisites
      1. Installation
        1. Usage
          1. Running the Server
          2. Configuring with Claude for Desktop
          3. Configuring with Anything LLM
          4. Available Tools
        2. Development
          1. Project Structure
          2. Running in Development Mode
        3. License
          1. Acknowledgements

            Related MCP Servers

            • -
              security
              F
              license
              -
              quality
              A Model Context Protocol server that enables interaction with the Canvas Learning Management System API, allowing users to manage courses, assignments, enrollments, and grades within Canvas.
              Last updated -
              31
              5
              JavaScript
            • -
              security
              A
              license
              -
              quality
              A set of tools enabling AI agents to interact with Canvas LMS, allowing users to find relevant resources, get course information, and navigate modules through natural language queries.
              Last updated -
              6
              Python
              MIT License
            • -
              security
              A
              license
              -
              quality
              Enables AI assistants like Claude to interact with Canvas LMS through the Canvas API, providing tools for managing courses, announcements, rubrics, assignments, and student data.
              Last updated -
              TypeScript
              MIT License
              • Apple
            • -
              security
              F
              license
              -
              quality
              A Model Context Protocol server that provides persistent task management capabilities for AI assistants, allowing them to create, update, and track tasks beyond their usual context limitations.
              Last updated -
              1
              TypeScript

            View all related MCP servers

            ID: yjguhhl6e2