Canvas LMS MCP server — 80+ tools and 5 agent skills for students & educators. Works with Claude, Cursor, Codex, and 40+ agents.
Warning. Serious findings were identified. Review the full report before connecting. Grades reflect the full trust pyramid: code, verification depth, and reputation. New projects cap at C until adoption is earned.
How we verified
Verified is a snapshot. Live keeps it current, and builds your track record.
⚡ Connect GitHub → continuous verification on every pushwhy connect →Who stands behind it
vishalsachdev
Source: github_code · also listed on modelscope
Claim it to get a verified publisher badge, a free copy of our full audit findings, and direct contact for any high-priority issues we find. Or connect your repo for our deepest verification, Live Monitored: read-only, revoke anytime. What we access →
Install from
M8ven verifies MCPs across every public registry — install directly from whichever one you prefer.
CANVAS_API_TOKENRequired: , CANVAS_API_URLCANVAS_API_URLRequired: CANVAS_API_TOKEN,MCP_SERVER_NAMELOG_LEVELAUDIT_LOG_DIRTS_SANDBOX_MODEContainer sandbox =container Full filesystem isolation via Docker/PodmanTS_SANDBOX_ALLOWLIST_HOSTSTS_SANDBOX_CONTAINER_IMAGEMCP_ACCESS_KEYSMCP_ENTRA_ALLOWED_OIDSACCESS_TABLE_ACCOUNTACCESS_TABLE_NAMEACS_ENDPOINTACS_SENDERACCESS_ADMIN_EMAILSACCESS_APPROVE_BASE_URLACCESS_TOKEN_SECRETINSTITUTION_NAMETIMEZONECANVAS_ROLESTUDENT_WRITE_TOOLSLOG_REDACT_PIIPII sanitization in logs =trueAll four hints declared on every tool
99/99 tools missing one or more hints — fetch_ufixit_report (missing: destructiveHint, idempotentHint, openWorldHint); parse_ufixit_violations (missing: destructiveHint, idempotentHint, openWorldHint); format_accessibility_summary (missing: destructiveHint, idempotentHint, openWorldHint), +96 more. OpenAI's directory rejects tools where any of the four hints are missing or non-boolean.
For every tool, set all four hints (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) to explicit true/false values that match the handler’s actual behaviour.
Tool annotations match behaviour
3 read-only tools perform write/delete/exec — download_course_file (line 145: os.unlink(save_path)); extract_peer_review_dataset (line 264: with open(resolved, 'w', encoding='utf-8') as f:); generate_peer_review_report (line 171: with open(resolved, 'w', encoding='utf-8') as f:)
Either remove the readOnlyHint:true annotation, or remove the write/delete call from the tool handler.
Destructive tools are labelled
1 tool perform destructive updates without destructiveHint — download_course_file deletes at line 145 (os.unlink(save_path))
Add destructiveHint:true to any tool whose handler calls .delete(), .upsert(), .update(), unlink, rm, DELETE, DROP, REPLACE INTO, or any operation that overwrites existing data.
Secrets stay with their owner
1 secret/sensitive value flow into network calls (CANVAS_API_TOKEN → dynamic)
Audit where credentials are sent. A NOTION_TOKEN should only reach api.notion.com — never a third-party host.
Secrets not logged
2 secret values sent to console.log
Redact or omit secret values from log output.
Dependency freshness
1/1 production deps stale: node-fetch@2023-11-30 (2.7y)
Claim the listing to review these findings one by one and send us a correction where you disagree, straight to the team. Claiming also means we tell you when the grade moves, and reach you first if we find anything urgent.
[](https://m8ven.ai/mcp/vishalsachdev-canvas-mcp-12cgvf)?variant=verified from the URL.Vetting this one by hand? Tool Check is an MCP that scores other MCPs. Add it once and ask Claude, ChatGPT, or any MCP client to grade a server, surface CVEs, check the publisher, and suggest safer alternatives — before you install.
https://m8ven.ai/api/mcp/tool-check