Canvas MCP
Provides tools for interacting with Canvas LMS, including courses, assignments, modules, pages, files, grades, submissions, announcements, discussions, groups, calendar events, and TODO items.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Canvas MCPshow my upcoming assignments"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Canvas MCP
MCP (Model Context Protocol) server for Canvas LMS. Exposes Canvas courses, assignments, modules, pages, files, grades, and submissions as tools for AI agents.
Tools
Tool | Description |
| List all active courses |
| Course details, optionally with syllabus |
| Modules with items (pages, files, assignments) |
| All assignments with due dates and points |
| Full assignment with description + rubric |
| Submit a URL to an assignment |
| Submit text to an assignment |
| List course pages |
| Get page content as plain text |
| File metadata and download URL |
| List all files (may 403 on some instances) |
| Course announcements |
| Discussion topics |
| Groups in a course |
| Members of a group |
| Your graded submissions with rubric feedback |
| Your submission for a specific assignment |
| Upcoming calendar events |
| Canvas TODO items |
| Authenticated user profile |
Related MCP server: Canvas MCP
Resources
URI | Description |
| All active courses as JSON |
| Current TODO items as JSON |
Setup
Environment Variables
export CANVAS_API_TOKEN="your-canvas-token"
export CANVAS_BASE_URL="https://your-institution.instructure.com"Generate a token at: <your-canvas-url>/profile/settings → + New Access Token
Install
pip install -e .Run
canvas-mcp # stdio transport (for MCP clients)Add to Hermes config.yaml
mcp_servers:
canvas:
command: canvas-mcp
env:
CANVAS_API_TOKEN: "your-token"
CANVAS_BASE_URL: "https://psu.instructure.com"Add to Claude Desktop
{
"mcpServers": {
"canvas": {
"command": "canvas-mcp",
"env": {
"CANVAS_API_TOKEN": "your-token",
"CANVAS_BASE_URL": "https://psu.instructure.com"
}
}
}
}Design Decisions
No stdout output from tools — tools return structured dicts/lists only, safe for coding agents
HTML is stripped — all Canvas HTML content is converted to readable plain text
Responses are slimmed — only relevant fields returned, no noise
Pagination handled — follows Canvas
Linkheaders automatically (up to 10 pages)Graceful 403 handling —
list_filesreturns an error dict with a hint instead of crashingClient cleanup — every tool call opens and closes its own client connection
Testing
pip install pytest pytest-asyncio
pytest -vTests use a MockTransport that intercepts HTTP at the httpx layer — no real Canvas calls.
Three test files:
test_client.py— Canvas API client unit teststest_server.py— tool functions, HTML stripping, slimming helperstest_integration.py— full pipeline: tool → client → mock HTTP → structured response
License
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
MCP server for building and testing AI agents with multi-model experimentation and insights.
MCP server exposing the Backtest360 engine API as tools for AI agents.
Related MCP Servers
- AlicenseBqualityAmaintenanceMCP server for Canvas LMS, providing 115+ tools to read courses, assignments, submissions, rubrics, quizzes; grade, comment, manage course content, and handle Canvas admin workflows from any AI agent.1631,201 npm5MIT
- AlicenseNot gradedqualityDmaintenanceA local MCP server for Canvas LMS that enables querying courses, assignments, grades, modules, and more from any MCP-compatible AI client.9 npmMIT
- AlicenseNot gradedqualityBmaintenanceA remote MCP server for querying Canvas LMS courses, assignments, and grades. Enables natural language interaction with Canvas data via MCP clients like Claude Desktop.9 npmMIT
- AlicenseNot gradedqualityDmaintenanceMCP server for Canvas LMS with automatic OAuth authentication. Enables interaction with courses, assignments, grades, modules, discussions, quizzes, files, calendar, messaging, and more without manual API token management.59 npmMIT