Canvas MCP
Provides tools for interacting with Canvas LMS, enabling AI agents to query courses, assignments, grades, modules, quizzes, announcements, discussions, calendar events, and user profile.
Integration with Instructure's Canvas LMS platform, providing access to educational data such as courses, assignments, grades, and modules.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
Canvas MCP
A local MCP (Model Context Protocol) server for Canvas LMS. Query your courses, assignments, grades, modules, and more from any MCP-compatible AI client β Claude Desktop, Cursor, VS Code Copilot, and others.
Your API key stays on your machine. Unlike hosted MCP servers that require you to hand over your Canvas credentials, this server runs locally and communicates directly with your Canvas instance.
Architecture
graph TB
subgraph "MCP Clients"
Claude["Claude Desktop"]
Cursor["Cursor / VS Code"]
Other["Other MCP Clients"]
end
subgraph "Your Machine (Local)"
Server["Canvas MCP Server<br/>Node.js + TypeScript"]
ENV["Environment Variables<br/>CANVAS_API_KEY"]
end
subgraph "Canvas LMS Tools"
Courses["list_courses"]
Assignments["get_assignments<br/>get_upcoming_assignments"]
Grades["get_grades<br/>get_submission_status"]
Content["get_modules<br/>get_announcements<br/>get_discussions"]
Calendar["get_calendar_events<br/>get_todo_items<br/>get_quizzes"]
Profile["get_user_profile"]
end
subgraph "Canvas Instance"
API["Canvas REST API<br/>HTTPS Only"]
end
Claude -->|stdio| Server
Cursor -->|stdio| Server
Other -->|stdio| Server
ENV -.->|read at startup| Server
Server --> Courses
Server --> Assignments
Server --> Grades
Server --> Content
Server --> Calendar
Server --> Profile
Courses --> API
Assignments --> API
Grades --> API
Content --> API
Calendar --> API
Profile --> API
style Server fill:#4CAF50,stroke:#333,color:#fff
style ENV fill:#FF9800,stroke:#333,color:#fff
style API fill:#2196F3,stroke:#333,color:#fff
style Claude fill:#7C4DFF,stroke:#333,color:#fff
style Cursor fill:#7C4DFF,stroke:#333,color:#fff
style Other fill:#7C4DFF,stroke:#333,color:#fffπ Privacy by design β your API key is read from local environment variables and sent only to your Canvas instance over HTTPS. No intermediary servers, no third-party storage.
Related MCP server: Canvas MCP Server
Features
12 Canvas LMS tools β courses, assignments, grades, modules, quizzes, and more
Runs locally β your credentials never leave your machine
Zero config hosting β no servers, no Cloudflare, no Docker needed
Works with any MCP client β Claude Desktop, Cursor, VS Code Copilot, ChatGPT
TypeScript β fully typed with Zod validation
Quick Start
1. Get your Canvas API key
Go to Canvas β Account β Settings β Approved Integrations β New Access Token
π Never done this before? Follow the step-by-step guide with screenshots
2. Clone and build
git clone https://github.com/a-ariff/canvas-mcp.git
cd canvas-mcp
npm install
npm run build3. Add to your MCP client
Edit ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"canvas": {
"command": "node",
"args": ["/path/to/canvas-mcp/dist/standalone.js"],
"env": {
"CANVAS_API_KEY": "your-canvas-api-token",
"CANVAS_BASE_URL": "https://your-canvas-instance.edu"
}
}
}
}Add to your .cursor/mcp.json or VS Code MCP settings:
{
"mcpServers": {
"canvas": {
"command": "node",
"args": ["/path/to/canvas-mcp/dist/standalone.js"],
"env": {
"CANVAS_API_KEY": "your-canvas-api-token",
"CANVAS_BASE_URL": "https://your-canvas-instance.edu"
}
}
}
}4. Start chatting
Ask your AI assistant things like:
"What courses am I enrolled in?"
"What assignments are due this week?"
"Show me my grades for Computer Science 101"
"Are there any new announcements?"
Tools
Tool | Description | Args |
| Get all active courses | β |
| Get assignments for a course |
|
| Upcoming assignments across all courses | β |
| Grades and scores for a course |
|
| Your Canvas profile info | β |
| Course modules and structure |
|
| Recent course announcements |
|
| Discussion topics |
|
| Upcoming calendar events | β |
| Pending action items | β |
| Course quizzes |
|
| Assignment submission status |
|
Environment Variables
Variable | Required | Default | Description |
| Yes | β | Your Canvas API access token |
| No |
| Your Canvas instance URL |
| No |
| Enable debug logging |
Security
Local execution only β the server runs on your machine via stdio
Direct API calls β your Canvas API key is sent only to your Canvas instance, never to any third party
No data storage β nothing is cached or persisted between sessions
Environment-based config β credentials are read from environment variables, never hardcoded
Development
# install deps
npm install
# build
npm run build
# run locally
CANVAS_API_KEY=your-token CANVAS_BASE_URL=https://your-canvas.edu npm start
# run tests
npm test
# lint
npm run lintContributing
Contributions welcome! Please see CONTRIBUTING.md for guidelines.
License
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelogβ¦
This server cannot be deployed
Maintenance
Related MCP Connectors
One MCP server for the services your AI needs: memory, files, Microsoft 365, kanban and more.
An MCP server that provides an API to LLMs to manage their JumpCloud resources.
MCP server that lets AI assistants use all OneSchema features exposed via the public API.
MCP server that lets your AI assistant build and deploy apps, hosting each one at a live URL.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceMCP server for Canvas LMS that exposes courses, assignments, modules, pages, files, grades, and submissions as tools for AI agents.-
- AlicenseNot gradedqualityDmaintenanceA remote MCP server for querying Canvas LMS courses, assignments, and grades. Enables natural language interaction with Canvas data via MCP clients like Claude Desktop.11 npmMIT
- AlicenseNot gradedqualityCmaintenanceMCP 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.3,290 npm1MIT
- AlicenseBqualityDmaintenanceA read-only MCP server for Canvas LMS that exposes a user's courses, upcoming work, and assignments as callable tools.3MIT