Skip to content

v1.13.0

Choose a tag to compare

@github-actions github-actions released this 28 Sep 03:15
· 245 commits to main since this release
c3207d3

Released: September 2026 | Full Changelog | All Releases

A security release: tools that change anything now exist only if the operator allows them (GHSA-hmr8-mvr2-mvw5). Instructions a student plants in course content can steer an instructor's assistant, and a confirmation token cannot stop that because the assistant can redeem its own token. The new ALLOWED_WRITE_TOOLS setting removes every write tool the operator has not allowed at startup, so it cannot be listed or called. Five changes are breaking. Each migration is a line long:

  • HTTP servers are read-only unless configured → set ALLOWED_WRITE_TOOLS to the write tools your deployment needs, or all (code execution must be named separately). Local stdio servers are unchanged unless you set it
  • send_conversation always previews first, even for one recipient → call once, show the preview, then call again with identical arguments plus the token
  • get_conversation_details never marks a conversation read; auto_mark_read is removed → drop the argument and use mark_conversations_read
  • Rubric grading stops when grading settings cannot be verified, and unconfirmed results count as failures → check Canvas before retrying (#374, #375)
  • Local file exports refuse HTTP callers → pass save_to_file=False / save_locally=False to get the content in the response; extract_peer_review_dataset saves by default, so its bare call now fails over HTTP

Also new: update_rubric for guarded edits of existing rubrics (#386) and update_syllabus, which previews before replacing existing content. Fixed: external-tool assignments such as Gradescope are no longer reported missing (#390, thanks @EastArctica), TypeScript pagination follows Link headers within a page budget (#403), and confirmation and grading workflows were hardened (#394 to #408). The execute_typescript sandbox now runs as a non-root user with a read-only root filesystem (#317, #339). Built on FastMCP 4 and MCP SDK 2 (#354).

Install: pip install -U canvas-mcp or download canvas-mcp.mcpb below (SLSA provenance attached).