Prototype · Preview: every server in the official registry, synced every 30 minutes. Reviews and accounts come in a later step.
PopNx MCPMCP servers for people who use AI · explained in plain words

Canvas Lms MCP Server

by Fireiscoolsoloversion 1.3.1i★ –iRuns on your computer
Registry nameio.github.Fireiscoolsolo/canvas-lms-mcp-server

Install

Overview

Description from the maker (original English)

Self-hosted Canvas LMS for every device: 237 student tools over HTTP with OAuth and phone alerts.

PopNx MCP’s three pillars

These three are never merged into one score: opinions, measurements and popularity are different things.

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

  • Connection: Runs on your computer
  • Transport: stdio
  • Category: Other
  • You need to fill in: CANVAS_API_TOKEN, CANVAS_BASE_URL

Install

Pick the AI app you use, then copy the settings.

Before you install

  • Basic checks: 1 of 1 passed
  • Runs on your computer with your user’s permissions (files, network, apps).
  • You fill in yourself: CANVAS_API_TOKEN, CANVAS_BASE_URL

Values marked secret are keys to your account. Never share them or paste them into a chat.

You need

  • npmNode.js installed (for the npx command)

Which app do you use?

Pick your app above. We remember it, so next time the button says “Install in …”.

Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json

{
  "mcpServers": {
    "canvas-lms": {
      "command": "npx",
      "args": [
        "-y",
        "canvas-lms-mcp-remote",
        "--stdio"
      ],
      "env": {
        "CANVAS_API_TOKEN": "your-value",
        "CANVAS_BASE_URL": "your-value"
      }
    }
  }
}

Run this in your terminal

claude mcp add canvas-lms --env CANVAS_API_TOKEN=your-value --env CANVAS_BASE_URL=your-value -- npx -y canvas-lms-mcp-remote --stdio

Fill in the empty values before running it.

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

{
  "mcpServers": {
    "canvas-lms": {
      "command": "npx",
      "args": [
        "-y",
        "canvas-lms-mcp-remote",
        "--stdio"
      ],
      "env": {
        "CANVAS_API_TOKEN": "your-value",
        "CANVAS_BASE_URL": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

{
  "servers": {
    "canvas-lms": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "canvas-lms-mcp-remote",
        "--stdio"
      ],
      "env": {
        "CANVAS_API_TOKEN": "your-value",
        "CANVAS_BASE_URL": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.

Your choice stays on this device in a cookie; no account needed.

Values you fill in

  • CANVAS_API_TOKEN secret required env
    Canvas personal access token (Account > Settings > Approved Integrations > New Access Token)
  • CANVAS_BASE_URL required env
    Your school's Canvas address, e.g. https://yourschool.instructure.com

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

What it can do

Runs on your computer; the tool list appears in your AI app after you install it.

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified with the GitHub account Fireiscoolsolo, which owns the repo

  • … Not checked yet

    Still maintained

    We have not read this repo from GitHub yet

  • … Not checked yet

    Has a licence

    We have not read this repo from GitHub yet

  • – Not applicable

    Endpoint responds

    This one runs on your computer; there is no internet endpoint

  • – Not applicable

    Sign-in with OAuth

    Runs on your computer and uses local settings instead

  • … Not checked yet

    No hidden instructions in tool descriptions

    Runs on your computer; we can only read tool lists from internet endpoints

Compared with others in Otheri

  • More stars than 0% of the other 32700 servers in this category
  • Published to the registry more recently than 94% of the other 32700 servers in this category
  • Basic checks equal to or better than 100% of the other 32700 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is Canvas Lms MCP Server safe?

It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

You need to fill in: CANVAS_API_TOKEN, CANVAS_BASE_URL

Does it run on my computer or in the cloud?

It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).

Is it still maintained?

The GitHub repo last changed –, and the latest version (1.3.1) reached the registry 2 days ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.

What can I use instead?

In the same category: Spec Driven Development, Remote Desktop Commander, Agent Data Tools: Utilities

Alternatives

Servers in the same category from other makers, sorted by stars.

Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

Spec Driven Development

by formulahendry

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

Runs on your computer★ 440MITUpdated 14 months ago
Install

Remote Desktop Commander

by desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

Runs in the cloud★ 211Updated 2 days ago
Install

README from the maker

Open the README

Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.

[!TIP]

Want it to run locally, on just your own computer? Go to the [Local Edition →](https://github.com/Fireiscoolsolo/canvas-lms-mcp-local) (website). It has the same 237 tools, with no tunnel, no password and a one-command setup.

Canvas LMS MCP: Remote Edition

Use Canvas from your AI assistant on any device: web, desktop and mobile. Always on, password-protected, with automatic failover across several computers.

237 tools · OAuth 2.1 · Status page · Phone alerts · ngrok or Cloudflare tunnel · Multi-computer failover

Website · Quick start · Multi-device guide · Configuration · Tools · Phone alerts · Security · Changelog

[!TIP]

On Windows? Skip the terminal. The free [Canvas MCP Installer Assistant](https://fireiscoolsolo.github.io/canvas-lms-mcp-local/app/) sets this up for Claude or the ChatGPT desktop app with pictures and a check after every step, or does every step for you. [Download for Windows](https://fireiscoolsolo.github.io/canvas-lms-mcp-local/download/)


Remote or Local?

Remote (this repo)Local
Works withAny MCP client that supports remote servers, on any deviceClaude Desktop, the ChatGPT desktop app and other MCP clients on this computer
When it runsAlways on, in the backgroundOnly while your AI app is open
You needNode.js (or Docker), a Canvas token, an ngrok or Cloudflare account and a passwordNode.js and a Canvas token
Internet exposurePublic HTTPS address, password-protectedNone
Multiple computersAutomatic failover (guide)Install it separately on each one

Highlights

  • Your day and week: daily_briefing, get_week_ahead, semester_snapshot, planner notes, checking items off your To Do list
  • Study plans: study_plan spreads study time before each deadline; schedule_study_plan puts it on your Canvas calendar
  • Grade intelligence: final_grade_scenarios, what_if_grade, grade_impact_ranking, calculate_gpa, full weighted breakdowns
  • Assignments, submissions, discussions and inbox: assignment_brief in one call; submit, post and message after a preview
  • Content: read lecture PDFs, Word docs and slides with read_course_file; downloads come back as links your phone can open
  • Phone alerts: new grades, announcements, work due soon, new assignments, teacher comments, messages and more, by ntfy, Discord, Telegram, Slack, Teams or Pushover, instantly or as a daily digest
  • Status page: see from any browser whether your server is online, who is signed in, and sign apps out
  • Secure remote access: password-gated OAuth 2.1 with lockout, a login history and optional two-factor codes, over an ngrok or Cloudflare tunnel
  • Multi-computer failover: run it on two or more computers, and if one sleeps, another takes over in about a minute

How it works

 Your AI app (web / desktop / mobile / CLI)

│ HTTPS + OAuth ▼ your-domain.ngrok-free.dev ──► supervisor.js ──► index.js (127.0.0.1:3939/mcp) ──► Canvas API (or a Cloudflare hostname) (keeps it alive, (237 tools, OAuth, status page, failover) phone alerts)

Quick start

[!NOTE]

Rather click than type? Download the [Canvas MCP Installer Assistant for Windows](https://fireiscoolsolo.github.io/canvas-lms-mcp-local/download/). It walks you through these steps with pictures and checks each one as you go, for both the Remote and Local editions. See screenshots.

Windows may show "Windows protected your PC" because the app isn't code-signed yet. Click More info, then Run anyway.

You need: Node.js 18+ (22+ to read PDFs), a Canvas account and a free ngrok account (or a Cloudflare account with your own domain). Prefer containers? See Docker.

1. Install

With npm (easiest):

npm install -g canvas-lms-mcp-remote

mkdir canvas-mcp cd canvas-mcp canvas-lms-mcp-remote init

That folder is your **settings folder**. It holds your `.env`, logins and logs, so run every later step from it.

Or from source: git clone https://github.com/Fireiscoolsolo/canvas-lms-mcp-server.git, then run npm install inside the folder. No git? Download the zip from the latest release instead. The repo folder is then your settings folder.

All commands

CommandWhat it does
canvas-lms-mcp-remote initCreate a .env template in the current folder
canvas-lms-mcp-remoteStart the supervisor: server, tunnel and failover
canvas-lms-mcp-remote serveStart only the HTTP server on 127.0.0.1 (no tunnel)
canvas-lms-mcp-remote install-serviceStart it automatically when you sign in (Windows, Linux or macOS)
canvas-lms-mcp-remote uninstall-serviceStop starting it automatically
canvas-lms-mcp-remote stop / restartStop the running supervisor, or stop and start it again
canvas-lms-mcp-remote statusIs it running, which computer is serving, who is signed in
canvas-lms-mcp-remote logs [-f]Show the end of supervisor.log (-f keeps following it)
canvas-lms-mcp-remote doctorCheck settings, token, tunnel and startup service, and say how to fix problems
canvas-lms-mcp-remote test-alertSend a test phone alert
`canvas-lms-mcp-remote sessions [sign-out \sign-out-all \tidy]`List or sign out connected apps
canvas-lms-mcp-remote rotate-passwordMake a new password and sign every app out
canvas-lms-mcp-remote totp-setup / totp-offTurn two-factor codes on or off
canvas-lms-mcp-remote clusterList the computers in your group
canvas-lms-mcp-remote takeoverMake this computer the one that serves
canvas-lms-mcp-remote uninstallStop it, remove the startup service and say how to remove the package
canvas-lms-mcp-remote --stdioServe over stdin/stdout, for directories that inspect servers

From source, use node cli.js instead.

2. Create a Canvas token

In Canvas, go to Account → Settings → Approved Integrations → + New Access Token. Canvas only shows the token once, so copy it right away.

3. Set up a tunnel

ngrok (default):

winget install --id Ngrok.Ngrok -e

ngrok update # the winget version is often too old (ERR_NGROK_121) ngrok config add-authtoken

Then claim your free **static domain** in the [ngrok dashboard](https://dashboard.ngrok.com), e.g. `your-name.ngrok-free.dev`.

Or Cloudflare Tunnel (no "Visit Site" page, your own domain)

  1. Install cloudflared (downloads; on Windows winget install --id Cloudflare.cloudflared).
  2. In the Cloudflare dashboard, open Zero Trust → Networks → Tunnels, create a tunnel and copy its token.
  3. Add a public hostname to the tunnel, e.g. canvas.yourdomain.com, pointing at http://localhost:3939.
  4. In .env, set CANVAS_MCP_TUNNEL=cloudflared, CANVAS_MCP_CLOUDFLARED_TOKEN= and CANVAS_MCP_PUBLIC_URL=https://canvas.yourdomain.com.

Using your own reverse proxy or Tailscale Funnel instead? Set CANVAS_MCP_TUNNEL=none and point it at port 3939.

4. Configure .env

Fill in the .env that init created. From source, copy .env.example to .env first. Generate the password and secret with:

node -e "console.log(require('crypto').randomBytes(32).toString('base64url'))"
5. Test it
canvas-lms-mcp-remote doctor

canvas-lms-mcp-remote

`doctor` checks your settings, token and tunnel first. Then wait until you see `active and serving at https://…`, and press Ctrl+C.
6. Run it automatically when you sign in
canvas-lms-mcp-remote install-service

On Windows this creates the CanvasSupervisor scheduled task, on Linux a systemd user service, and on macOS a launch agent. All of them restart it if it crashes and write supervisor.log in your settings folder, rotating it at 5 MB.

Setting up the Windows task by hand

In PowerShell, from your settings folder (the repo folder, if you installed from source):

$dir      = (Get-Location).Path

$action = New-ScheduledTaskAction -Execute "$dir\run-supervisor.cmd" -WorkingDirectory $dir $trigger = New-ScheduledTaskTrigger -AtLogOn -User "$env:USERDOMAIN\$env:USERNAME" $settings = New-ScheduledTaskSettingsSet -RestartCount 999 -RestartInterval (New-TimeSpan -Minutes 1) -ExecutionTimeLimit ([TimeSpan]::Zero) -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries -MultipleInstances IgnoreNew Register-ScheduledTask -TaskName CanvasSupervisor -Action $action -Trigger $trigger -Settings $settings -Force Start-ScheduledTask -TaskName C

Only the beginning is shown; read the rest in the repo

Ask PopNx