Canvas LMS MCP Server
Provides tools for retrieving active courses, assignments, and quizzes from Canvas LMS.
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 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 deployed
Maintenance
Related MCP Connectors
Hosted remote MCP server for YNAB on Cloudflare Workers with OAuth
Cloudflare Workers MCP server: ai-agent-scratchpad
Cloudflare Workers MCP server: claude-skill-validator
Cloudflare Workers MCP server: ai-gateway
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA local MCP server for Canvas LMS that enables querying courses, assignments, grades, modules, and more from any MCP-compatible AI client.7 npmMIT
- AlicenseAqualityDmaintenanceTurns Canvas LMS into a scriptable pipeline and exposes it to AI assistants via MCP for querying courses, grades, assignments, and syncing files using natural language.143MIT
- AlicenseNot gradedqualityCmaintenanceA remote MCP server for querying Canvas LMS courses, assignments, and grades. Enables natural language interaction with Canvas data via MCP clients like Claude Desktop.7 npmMIT
- AlicenseNot gradedqualityCmaintenanceA remote MCP server that gives Claude access to your Canvas LMS course materials and files, enabling you to list courses, retrieve files, modules, syllabus, pages, assignments, grades, quizzes, and more via natural language.7 npmMIT