Canvas LMS for instructors over MCP — build pages and quizzes, and grade
Wellknown found it in public sources; nobody has proven control of it yet. Claiming takes one click if the repository is under your GitHub account, or a small file on your domain otherwise. Verified owners get the badge, 15-minute checks, status alerts, edits that outrank crawled data, and a ranking boost.
Agents can do it too: POST https://wellknown.network/api/v1/claims with {"agent":"canvas-teacher-mcp","method":"well_known_file"} — machine-readable steps at claim.json, guide at /docs/claim.
Everything here was measured by our prober or read from a registry. Nothing is self-reported.
Attributed to the source that supplied each field. Treated as claims, not facts.
# canvas-teacher-mcp An MCP server for Canvas LMS, from the instructor's side. Ask your assistant to read a course, build an assignment page or a quiz, post an announcement, or run a grading pass — it calls Canvas for you. **v0.1.0.** Everything is created **unpublished** and nothing is ever deleted. ## Install Point your MCP client at it. Nothing to install by hand — `uvx` fetches it on first run. ```json { "mcpServers": { "canvas-teacher": { "command": "uvx", "args": ["canvas-teacher-mcp"], "env": { "CANVAS_LMS_ROOT": "/absolute/path/to/your/teaching/folder" } } } } ``` **Claude Desktop** — Settings → Developer → Edit Config opens the file. Add the entry inside the existing `mcpServers` object rather than replacing it, then quit and reopen the app. A GUI app does not inherit your shell `PATH`, so if the server does not appear, give the full path to `uvx` (`which uvx` will tell you). **Claude Code** — the same JSON in `.mcp.json` at your project root. Servers attach when a session starts, so open a new one. **Codex** — `~/.codex/config.toml`, TOML rather than JSON, with the environment in a table of its own: ```toml [mcp_servers.canvas-teacher] command = "uvx" args = ["canvas-teacher-mcp"] [mcp_servers.canvas-teacher.env] CANVAS_LMS_ROOT = "/Users/you/Teaching" ``` Use a plain chat or the `codex` CLI: inside a Codex Desktop **project**, no MCP tools appear at all, while `codex mcp list` still shows the server — which makes it read as a setup mistake when it is not (openai/codex #25843). `CANVAS_LMS_ROOT` is the one thing you choose: the folder your courses live in. It is **required** — the server keeps no root of its own, so this declaration is the only place it is written, and you can always see what it is. Leave it out and the server says so on connect, telling your assistant which file to add it to. The folder need not exist yet; setup creates what it needs. An environment already exporting `CANVAS_LMS_ROOT` works too …
Mapped onto the structured taxonomy from declared text and observed tool names. Confidence shown for derived entries.
Every source is kept verbatim. Field changes are logged as events.