Server data from the Official MCP Registry
Local-first MCP server for Canvas LMS. Stdio transport, no third-party broker.
Local-first MCP server for Canvas LMS. Stdio transport, no third-party broker.
canvas-local-mcp is a well-structured MCP server for Canvas LMS with appropriate authentication and reasonable permissions. Token storage follows best practices (environment file with restricted permissions), and the codebase is auditable. Minor concerns exist around error handling and input validation, but no critical vulnerabilities were identified. Supply chain analysis found 3 known vulnerabilities in dependencies (0 critical, 3 high severity). Package verification found 1 issue.
5 files analyzed · 9 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
This plugin requests these system permissions. Most are normal for its category.
Set these up before or after installing:
Environment variable: CANVAS_BASE_URL
Environment variable: CANVAS_TOKEN
Add this to your MCP configuration file:
{
"mcpServers": {
"io-github-admin978-canvas-mcp": {
"env": {
"CANVAS_TOKEN": "your-canvas-token-here",
"CANVAS_BASE_URL": "your-canvas-base-url-here"
},
"args": [
"canvas-local-mcp"
],
"command": "uvx"
}
}
}From the project's GitHub README.
Local-first MCP server for Canvas LMS. Stdio transport, no network round-trips beyond the official Canvas API.
Status: alpha. Single-user, no warranty, API surface may still shift. File issues if it breaks.
Canvas is built for instructors. As a student you get a fragmented UI, no cross-course search, and notifications that arrive late or never. This server exposes the Canvas REST API as MCP tools so you can drive the LMS from any MCP-compatible client (Claude Code, Claude Desktop, etc.).
[client] ──stdio──> [server.py] ──https──> [Canvas API]
~/.canvas.env (chmod 600)list_courses, list_assignments, list_modules, list_announcements, get_page, get_file_info, get_grades, planner_items, upcoming_events, todo.
In Canvas: Account → Settings → Approved Integrations → + New Access Token. Copy the token shown — it is not retrievable afterwards.
From PyPI (recommended):
pip install canvas-local-mcp
Or from source:
git clone https://github.com/admin978/canvas-mcp.git && cd canvas-mcp
python3 -m venv .venv && source .venv/bin/activate
pip install -e .
Then create the env file:
curl -fsSL https://raw.githubusercontent.com/admin978/canvas-mcp/main/.canvas.env.example -o ~/.canvas.env
chmod 600 ~/.canvas.env
# edit ~/.canvas.env: set CANVAS_BASE_URL (institution root, no /api/v1)
# and paste the token into CANVAS_TOKEN
Claude Code:
claude mcp add canvas-local -- canvas-local-mcp
Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"canvas-local": {
"command": "canvas-local-mcp"
}
}
}
canvas-local-mcp-dump downloads every file the user has access to (course materials, syllabi). Useful for offline indexing.
canvas-local-mcp-dump # all active courses
canvas-local-mcp-dump 12345 67890 # specific course IDs
Output goes to ./canvas-dump/ by default. Override with CANVAS_DUMP_DIR=/path/to/dir.
MIT — see LICENSE.
Built by AGENTE 404 S.L. · admin@agente404.com
Be the first to review this server!
by Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
by Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
by mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.