Canvas MCP
Provides tools to interact with Canvas LMS, including courses, modules, files, pages, assignments, submissions, grades, announcements, upcoming deadlines, and syllabus.
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 MCPshow my upcoming deadlines for this week"
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 server that exposes Canvas LMS as tools — courses, modules, files, pages, assignments, submissions/grades, announcements, upcoming deadlines, and syllabus.
Designed to be consumed by Ada (chat tool loop / edge functions) and any other MCP client (Claude Desktop, Cursor, etc.).
Setup
cd mcps/canvas
npm install
npm run buildCreate .env (or pass through your MCP client config):
CANVAS_BASE_URL=https://canvas.asu.edu/api/v1
CANVAS_TOKEN=your_canvas_personal_access_tokenGenerate the token in Canvas: Account → Settings → New Access Token.
Related MCP server: Canvas LMS MCP Server
Run
Stdio transport (default for MCP clients):
CANVAS_BASE_URL=... CANVAS_TOKEN=... node dist/index.jsTools
Tool | Purpose |
| Active enrollments with term + dates |
| Single course incl. syllabus body |
| Modules with items inlined |
| Items in one module |
| File info + download URL |
| Download file body as UTF-8 text (truncated) |
| Wiki pages |
| Assignments by due date |
| Current student's grades + late/missing |
| Announcements across courses |
| Upcoming events for the user |
| Syllabus HTML |
Claude Desktop config
{
"mcpServers": {
"canvas": {
"command": "node",
"args": ["/absolute/path/to/ada/mcps/canvas/dist/index.js"],
"env": {
"CANVAS_BASE_URL": "https://canvas.asu.edu/api/v1",
"CANVAS_TOKEN": "..."
}
}
}
}Cloudflare Workers (HTTP transport)
src/worker.ts exposes the same toolset over HTTP for hosting on Cloudflare
Workers. Deploy with:
npx wrangler deploySet the secrets once via wrangler secret put:
echo "https://canvas.asu.edu/api/v1" | npx wrangler secret put CANVAS_BASE_URL
echo "your_canvas_token" | npx wrangler secret put CANVAS_TOKENThe Worker accepts JSON-RPC tools/list and tools/call POSTs.
Multi-tenant headers (override env per request — Ada uses these):
Authorization: Bearer <user's canvas PAT>
X-Canvas-Base-Url https://canvas.<institution>.edu/api/v1
X-Ada-Service-Key <ADA_SERVICE_KEY> # required when env.ADA_SERVICE_KEY is setWhen no headers are present, the worker falls back to the CANVAS_BASE_URL /
CANVAS_TOKEN secrets (single-tenant mode). Set ADA_SERVICE_KEY to gate
header-based requests behind a shared secret:
echo "$(openssl rand -hex 32)" | npx wrangler secret put ADA_SERVICE_KEYNotes
Canvas pagination is followed automatically via the
Linkheader up to per-call caps.get_file_textdecodes as UTF-8; binary formats (PDF, DOCX) need upstream extraction.Single-tenant by env var. For multi-user (Ada), spawn one process per user or swap stdio for an HTTP transport that accepts a per-request token.
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
- FlicenseAquality-maintenanceEnables interaction with Canvas LMS courses and assignments directly from your LLM, allowing you to retrieve, search, and summarize course information, check due dates, and access assignment details without leaving your AI assistant.Last updated4122
- 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.Last updated227MIT
- AlicenseBqualityBmaintenanceEnables AI assistants to manage Canvas LMS courses, announcements, rubrics, assignments, modules, pages, and student data via the Canvas API.Last updated606512MIT
- Alicense-qualityBmaintenanceEnables AI agents to interact with Canvas LMS via its REST API for reading courses, assignments, grades, announcements, discussions, and performing write actions with dry-run safety.Last updated151MIT
Related MCP Connectors
Create, validate, edit, export (markdown/svg/png/mermaid), and search JSON Canvas files.
Provides cloud browser automation capabilities using Stagehand and Browserbase, enabling LLMs to i…
Gateway between LLM agents and world data through eight tools and a bundled endpoint catalog.
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/Abhinav-ranish/Canvas-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server