Skip to main content
Glama

Canvas MCP on Cloudflare

This project deploys a read-only Canvas MCP server to Cloudflare Workers.

It includes a setup page so any user can:

  1. Enter their Canvas base URL

  2. Enter their Canvas access token

  3. Generate a private MCP endpoint to paste into Poke

The generated MCP URL contains an encrypted Canvas configuration. Treat it like a password.

What it supports

  • Courses

  • Assignments

  • Files

  • PDF text extraction

  • Folders

  • Modules

  • Pages

  • Announcements

  • Discussion topics

  • Quizzes

  • Calendar events

  • Todo items

Related MCP server: Remote MCP Server (Authless)

Local development

  1. Install dependencies:

npm install
  1. Add a Worker secret for local wrangler dev:

echo 'CONFIG_ENCRYPTION_SECRET=replace-with-a-long-random-string' > .dev.vars
  1. Start the Worker locally:

npm run dev
  1. Open the local URL shown by Wrangler, fill in the form, and copy the generated MCP URL.

Deploy to Cloudflare

  1. Authenticate if needed:

npx wrangler whoami
  1. Set the encryption secret:

npx wrangler secret put CONFIG_ENCRYPTION_SECRET

Use a long random value. Example:

openssl rand -base64 32
  1. Deploy:

npm run deploy
  1. Open the deployed Worker URL. Users can generate their own MCP URL from the setup page.

Poke setup

  1. In Canvas, create an access token from Account > Settings.

  2. Open the deployed setup page.

  3. Paste the Canvas base URL and token.

  4. Copy the generated MCP URL.

  5. In Poke, add an integration and use that generated MCP URL as the server URL.

Optional local Node mode

The original local server still works if you prefer fixed environment variables:

CANVAS_BASE_URL=https://canvas.school.edu \
CANVAS_TOKEN=your-token \
npm run start:http

License

Licensed under the GNU General Public License v3.0. See LICENSE.

A
license - permissive license
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

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/guirguispierre/canvasMCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server