guirguispierre

Canvas MCP on Cloudflare

Community guirguispierre
Updated

Read-only MCP server for Canvas, deployable to Cloudflare Workers

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

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.

MCP Server · Populars

MCP Server · New

    jackccrawford

    Geniuz

    Your AI remembers now. Geniuz stores everything in a local database locally on Mac, Windows, Linux, Raspberry Pi. No cloud. No account. No API keys. Nothing leaves your machine. It's open source; you can read every line of code.

    Community jackccrawford
    ggui-ai

    ggui

    The universal interface layer between AI agents and humans. Generate rich UIs on demand via MCP.

    Community ggui-ai
    aanno

    CocoIndex Code MCP Server

    An RAG for code development, implemented as MCP server with cocoindex

    Community aanno
    timescale

    Tiger Linear MCP Server

    A wrapper around the Linear API for internal LLMs

    Community timescale
    choplin

    MCP Gemini CLI

    MCP Server

    Community choplin