canvas-mcp-lite
Provides tools for interacting with a Canvas LMS instance, enabling an AI assistant to browse courses, read student submissions (including text extraction from PDFs and DOCX files), grade with rubrics, post announcements, and manage modules and pages.
Click on "Install 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-mcp-liteList ungraded submissions for my course"
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-lite
A lean, instructor-focused MCP server for Canvas LMS, built with FastMCP. It lets an AI assistant act as a teaching assistant against your Canvas instance: browsing courses, reading student submissions (including PDF/DOCX file uploads), grading with rubrics, posting announcements, managing modules and pages, and more.
Tools
64 tools across 11 Canvas domains, organized by risk level:
Group | Count | Examples |
Read | 32 |
|
Write | 23 |
|
Delete | 9 |
|
Highlights:
Read what students actually submitted —
get_submission_contentextracts text from uploaded PDFs, DOCX files, and plain text (plus typed text entries, URLs, and discussion submissions) and includes the submission comment thread, so grading tools work from real content.A real grading workflow —
list_ungraded_submissionsis the grading queue,grade_submissionhandles points, pass/fail, letter, and percent grades (and reports partial success when Canvas saves a comment but rejects a grade), andpost_grades/hide_gradescontrol when students see results.Course codes or IDs — every course-scoped tool accepts either a numeric course ID or a
course_codestring (resolved with a short-TTL cache).Safe by default — assignments and pages are created unpublished unless you say otherwise; destructive tools are clearly marked.
LLM-friendly output — every tool returns formatted, readable text rather than raw JSON.
Related MCP server: Canvas MCP
Setup
Requires Python 3.10+.
Install (editable, from the project root):
python -m venv .venv source .venv/bin/activate pip install -e .Configure credentials in a
.envfile next to the package:CANVAS_API_URL=https://yourschool.instructure.com/api/v1 CANVAS_API_TOKEN=your-canvas-access-tokenGenerate a token in Canvas under Account → Settings → New Access Token. The
.envis loaded relative to the package location (not the working directory), because MCP clients launch servers from arbitrary directories.Run via the console script:
canvas-mcp-lite
Using with Claude
Register it as an stdio MCP server. For Claude Code:
claude mcp add canvas -- /path/to/.venv/bin/canvas-mcp-liteOr in a Claude Desktop / MCP client config:
{
"mcpServers": {
"canvas": {
"command": "/path/to/.venv/bin/canvas-mcp-lite"
}
}
}Project layout
canvas_mcp_lite/
server.py FastMCP entry point; registers READ/WRITE/DELETE tool lists
client.py Async Canvas API client: auth, pagination, retry, errors
util.py Course code → ID resolution (cached), date formatting
tools/ One module per domain: courses, assignments, grading,
modules_pages, announcements, discussions, files, quizzes,
messaging, peer_review, analyticsNotes
The package name is
canvas_mcp_liteand it uses relative imports — run it through the installedcanvas-mcp-litescript, notpython server.py.File downloads for text extraction are capped at 25MB; scanned/image-only PDFs return a notice instead of text.
Canvas API errors surface with status code and URL; transient timeouts are retried with backoff.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with Canvas LMS through 25 comprehensive tools. Supports course management, assignments, grades, messaging, calendar events, and file access through natural language.33912MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to interact with Canvas LMS and Gradescope, allowing users to query courses, assignments, modules, calendar events, and find relevant resources using natural language.59ISC
- AlicenseAqualityCmaintenanceEnables AI systems to interact with Canvas Learning Management System data, allowing users to access courses, assignments, quizzes, planner items, files, and syllabi through natural language queries.227MIT
- AlicenseBqualityBmaintenanceEnables AI assistants to manage Canvas LMS courses, announcements, rubrics, assignments, modules, pages, and student data via the Canvas API.603612MIT
Related MCP Connectors
Give AI agents access to form submissions — read, search, update, and process file attachments.
Voice-led, FSRS-scheduled flashcards from YouTube, PDFs, web, or text. Auto-graded quizzes.
Connect AI assistants to your GitHub-hosted Obsidian vault to seamlessly access, search, and analy…
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/vkumar04/canvas-mcp-lite'
If you have feedback or need assistance with the MCP directory API, please join our Discord server