Canvas LMS MCP Server
Provides tools for retrieving active courses, assignments, and quizzes from Canvas LMS.
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 LMS MCP Servershow me my active courses"
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 LMS MCP Server (Cloudflare Workers)
Remote MCP server that connects to Canvas LMS and exposes course/assignment/quiz tools over Cloudflare Workers.
What this server provides
The MCP agent is served at:
GET /mcp(MCP endpoint)
It currently implements these tools:
get_active_courses: Returns active courses filtered to course names containingSPorFL.get_assignments: Returns assignments due in the nextndays (1-90, default7).get_quizzes: Returns quizzes due in the nextndays (1-90, default7).
Related MCP server: canvas-control
Prerequisites
Node.js 18+ (or newer)
npm
A Cloudflare account
A Canvas LMS access token and base URL (for example
https://sjsu.instructure.com)
Install
npm installConfigure environment variables
Use local vars for development by creating/updating .dev.vars:
CANVAS_BASE_URL=https://your-school.instructure.com
CANVAS_TOKEN=your_canvas_tokenFor deployment, use Wrangler secrets instead of committing credentials:
wrangler secret put CANVAS_TOKEN
wrangler secret put CANVAS_BASE_URLRun locally
npm run devDefault local URL:
http://localhost:8787/mcp
Health check route:
http://localhost:8787/
Deploy
npm run deployAfter deploy, your MCP endpoint is:
https://<your-worker>.<your-subdomain>.workers.dev/mcp
Use with an MCP client (example: Claude Desktop via mcp-remote)
Add/update your MCP client config:
{
"mcpServers": {
"canvas": {
"command": "npx",
"args": [
"mcp-remote",
"https://<your-worker>.<your-subdomain>.workers.dev/mcp"
]
}
}
}For local testing:
{
"mcpServers": {
"canvas": {
"command": "npx",
"args": ["mcp-remote", "http://localhost:8787/mcp"]
}
}
}Useful scripts
npm run dev: Start local Worker development server.npm run deploy: Deploy to Cloudflare Workers.npm run type-check: Run TypeScript type checking.npm run lint:fix: Auto-fix lint issues via oxlint.npm run format: Format repo with oxfmt.npm run cf-typegen: Regenerate Wrangler type bindings.
Project structure
src/index.ts: MCP server definition and tool implementations.src/lib/helper.ts: Canvas pagination (Linkheader parsing).public/: Static assets for Worker static asset binding.wrangler.jsonc: Cloudflare Worker configuration.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- 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/Omm2005/Canvas-LMS-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server