MCP Servers
admin978/canvas-mcp
Local-first Canvas LMS MCP server. Stdio transport, ~125 lines of Python.
Our verdict
We have not reviewed admin978/canvas-mcp yet
No one at Enterprise DNA has checked this listing against its sources. The description comes from public listings gathered automatically. Any fact below shows where it came from and when it was last checked.
From the listing
About admin978/canvas-mcp
A lightweight, local-first MCP server for Canvas LMS written in Python. It uses stdio transport and consists of about 125 lines of code, making it a minimal bridge for interacting with Canvas via the Model Context Protocol.
Best for
Developers prototyping Canvas LMS integrations with the MCP protocol
Use cases
- Connect other MCP-compatible tools to Canvas LMS data
- Build custom scripts or automations for Canvas courses and assignments
- Experiment with MCP integration in an educational context
Notes
1 stars on GitHub. Last updated 2026-05-27. Licensed MIT.
Pros
- Very small codebase (125 lines) making it easy to read and modify
- Local-first design, no external server dependencies
- Uses standard MCP protocol for interoperability
Cons
- Early stage with only 1 star and minimal community adoption
- Limited features due to tiny codebase and no network transport
- Lacks documentation beyond the repository itself
Key facts
What we have checked
- Days since the last commit
- 95
- GitHub forks
- 0
- GitHub stars
- 4
- Open issues
- 0
- Releases in the last 90 days
- 0
Each value shows when we last confirmed it and where it came from. Values we have not confirmed are left out, never guessed.
How to use
How to set it up
As the listing publishes it. We have not run this install.
Install
pip install canvas-local-mcpTools exposed
list_courseslist_assignmentslist_moduleslist_announcementsget_pageget_file_infoget_gradesplanner_itemsupcoming_events
Clients the listing names (not checked here)
Claude Desktop, Claude Code
Example client config
{
"mcpServers": {
"canvas-local": {
"command": "canvas-local-mcp"
}
}
}Install
Add admin978/canvas-mcp to your client
Our lab has not run this server yet. "Config checked" on a client means the recipe matches that client's documented config format; it does not mean we ran it.
Claude Code
Config checkedRun in your terminal (runs on your computer)
claude mcp add --env CANVAS_BASE_URL=YOUR_CANVAS_BASE_URL --env CANVAS_TOKEN=YOUR_CANVAS_TOKEN --transport stdio admin978-canvas-mcp -- uvx canvas-local-mcp@0.1.3Needs CANVAS_BASE_URL and CANVAS_TOKEN: replace each YOUR_ value with your own.
Claude Desktop
Config checkedAdd to claude_desktop_config.json (runs on your computer)
{
"mcpServers": {
"admin978-canvas-mcp": {
"command": "uvx",
"args": [
"canvas-local-mcp@0.1.3"
],
"env": {
"CANVAS_BASE_URL": "YOUR_CANVAS_BASE_URL",
"CANVAS_TOKEN": "YOUR_CANVAS_TOKEN"
}
}
}
}Needs CANVAS_BASE_URL and CANVAS_TOKEN: replace each YOUR_ value with your own.
Cursor
Config checkedAdd to .cursor/mcp.json (runs on your computer)
{
"mcpServers": {
"admin978-canvas-mcp": {
"command": "uvx",
"args": [
"canvas-local-mcp@0.1.3"
],
"env": {
"CANVAS_BASE_URL": "YOUR_CANVAS_BASE_URL",
"CANVAS_TOKEN": "YOUR_CANVAS_TOKEN"
}
}
}
}Needs CANVAS_BASE_URL and CANVAS_TOKEN: replace each YOUR_ value with your own.
VS Code
Config checkedAdd to .vscode/mcp.json (runs on your computer)
{
"inputs": [
{
"type": "promptString",
"id": "canvas-base-url",
"description": "Canvas institution root URL (no /api/v1 suffix), e.g. https://your-institution.instructure.com",
"password": true
},
{
"type": "promptString",
"id": "canvas-token",
"description": "Canvas personal access token (Account -> Settings -> Approved Integrations -> New Access Token)",
"password": true
}
],
"servers": {
"admin978-canvas-mcp": {
"type": "stdio",
"command": "uvx",
"args": [
"canvas-local-mcp@0.1.3"
],
"env": {
"CANVAS_BASE_URL": "${input:canvas-base-url}",
"CANVAS_TOKEN": "${input:canvas-token}"
}
}
}
}Needs CANVAS_BASE_URL and CANVAS_TOKEN: replace each YOUR_ value with your own.
Codex
Config checkedAdd to ~/.codex/config.toml (runs on your computer)
[mcp_servers.admin978-canvas-mcp]
command = "uvx"
args = ["canvas-local-mcp@0.1.3"]
env_vars = ["CANVAS_BASE_URL", "CANVAS_TOKEN"]Needs CANVAS_BASE_URL and CANVAS_TOKEN: replace each YOUR_ value with your own.
- ChatGPT: ChatGPT connects only to remote servers that need no API key.
Recipes come from the server's entry in the official MCP registry. Check the package name before you run it, and keep keys out of shared files.
Works with
What admin978/canvas-mcp connects to
5 clients, each with how we know and when we checked.
| Works with | Type | How we know | Checked |
|---|---|---|---|
| Claude Code | Client | Install recipe matches the client's documented formatRuns locally, version 0.1.3Config checked | Claude Code docs |
| Claude Desktop | Client | Install recipe matches the client's documented formatRuns locally, version 0.1.3Config checked | Claude Desktop docs |
| Cursor | Client | Install recipe matches the client's documented formatRuns locally, version 0.1.3Config checked | Cursor docs |
| VS Code | Client | Install recipe matches the client's documented formatRuns locally, version 0.1.3Config checked | VS Code docs |
| Codex | Client | Install recipe matches the client's documented formatRuns locally, version 0.1.3Config checked | Codex docs |
Health and security
Is admin978/canvas-mcp looked after, and what do its setup files show
Health score
30 out of 100
| Part | Points | What we saw |
|---|---|---|
| Recent activity | 24.2 of 30 | Last push 95 days ago |
| Releases | 0 of 15 | 0 releases in 90 days |
| Issue replies | Not counted | The latest check has no issue response reading (fewer than 3 measured issues, or issues switched off) |
| Maintainer | 0 of 15 | Owned by a single user |
| Official source | 0 of 20 | Community server |
Sources
Where this comes from
- GitHubRegistry
A source shows what was published when we checked it. It does not certify security, performance or a working installation. Read our method.
Changelog
What changed
No changes recorded yet. Releases, price changes and deprecations appear here, with their dates, once we track them for this record.
Pairs with
Other entries in the index that connect to this one. Click through to see the chain.
Get the free Developer’s Field Guide
A 27-page field guide to the AI coding workflow with Claude. Claude Code, MCP servers, the prompt patterns that work, and what to delegate. Free.
Enter your work email. We send it straight over, plus a few short notes worth knowing. Unsubscribe any time.