# canvas-mcp [Health: Active]

**Category:** 🎓 Education  
**Repository:** https://github.com/vishalsachdev/canvas-mcp  
**GitHub Stars:** 304  
**Views:** 5  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/canvas-mcp

## Description
Canvas LMS integration for students and educators with FERPA-compliant analytics and workflows

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `uvx` (confidence: high):

```json
"mcpServers": {
  "canvas-mcp": {
    "command": "uvx",
    "args": ["--from","canvas-mcp","canvas-mcp-server"],
    "env": {
      "ALLOWED_WRITE_TOOLS": ""
    }
  }
}
```

**Requires environment variables:** `ALLOWED_WRITE_TOOLS` — the values above are empty placeholders; fill in real credentials before running (see the repository for what each one is for).

## Documentation

## What canvas-mcp does

The canvas-mcp MCP server exposes Canvas LMS operations to MCP-compatible AI assistants. Its tools cover several user types rather than one narrow workflow. Students can inspect upcoming assignments, TODO items, submission status, grades, and peer-review tasks. Educators can manage assignments, submissions, announcements, messages, modules, pages, and course files. Shared read and discussion tools cover courses, syllabi, pages, modules, forums, posts, and replies.

Learning designers can retrieve a course structure and run accessibility-oriented checks. The accessibility scanner performs 20 checks involving areas such as headings, tables, links, contrast, alternative text, captions, and DesignPLUS. Related tools can retrieve, parse, and format an institutional UFIXIT report. Developer-oriented tools support tool discovery and local TypeScript execution for more complex bulk operations.

This project belongs to the 🎓 Education category and is suited to assistants used by students, instructors, course designers, or developers working with Canvas data.

## How it works

The canvas-mcp MCP server communicates with Canvas through an MCP client. Course records can be identified by Canvas ID, course code, or SIS ID. A default profile registers fewer than the maximum available tool set; optional feature-gated tools can bring the total to up to 103. Eight agent skills provide multi-step recipes such as weekly planning, morning checks, bulk grading, peer review, and course quality control. Skills are added separately with the `npx skills add vishalsachdev/canvas-mcp` command.

Bulk work should match the operation to the tool: use regular MCP tools for simple queries, `bulk_grade_submissions` for grading groups of 10 or more, and `execute_typescript` for complex operations involving roughly 30 or more items. Canvas rate limits are approximately 700 requests per 10 minutes, and the documentation recommends `max_concurrent=5` for bulk operations.

## Setup and configuration

Claude Desktop users can download the `canvas-mcp.mcpb` file from the latest release and open it. The extension asks for the Canvas URL and access token without requiring terminal setup.

For Cursor, Zed, Windsurf, Continue, Claude Code, and other clients, install the package into a virtual environment with `pip`, place the Canvas token in `.env`, and configure the client to launch the `canvas-mcp-server` binary. Run `canvas-mcp-server --test` to check the Canvas connection, then restart the client.

The optional `ALLOWED_WRITE_TOOLS` setting controls write access for HTTP deployments. HTTP servers are read-only unless write tools are explicitly allowed; local stdio behavior is unchanged unless this setting is used. Code execution must be allowed separately. The latest release also requires a preview-and-confirm flow for `send_conversation`.

## Tools and capabilities

Representative capabilities include:

- Listing courses, assignments, pages, modules, discussions, and module items.
- Reading course details, page content, discussion entries, grades, and submission status.
- Creating or updating assignments, modules, pages, announcements, and discussion posts.
- Uploading course files and performing selected bulk grading or page operations.
- Auditing course content for accessibility and processing UFIXIT reports.
- Discovering available tools and running local TypeScript for custom bulk logic.

## Limitations and notes

The server cannot create or delete courses, modify course settings, or access other users’ data. Available tools depend on the selected profile, feature gates, client, user permissions, and write-tool configuration. HTTP deployments require explicit write permissions for mutating operations. Local file exports reject HTTP callers unless configured to return content in the response. Rubric grading stops when grading settings cannot be verified, so the Canvas state should be checked before retrying.

_Full upstream README: https://allmcps.com/mcp/canvas-mcp/readme_

