Reported issues for canvas-mcp by vishalsachdev
Pod holds 20 of 49 GitHub reports that passed its relevance review. This can include external user reports, maintainer-confirmed bugs, and concrete feature gaps. Treat them as evidence to inspect, not a count of distinct defects.
Back to canvas-mcp by vishalsachdev.
Most discussed
Feature request: Integrate UDOIT accessibility recommendations remediation for Canvas course content
Add tools to: apply UDOIT Advantage recommendations to improve course content accessibility
- Request to add new tool(s) that ingest UDOIT accessibility recommendations and apply the remediation actions for Canvas course content.
- I will be sure to chip in with some effort if this is in your roadmap.
Thank you!
Read the thread · 2025-09-30 · closed · external user · 15 comments
[Bug]: peer review tools still not working
Bug Description
I had previously put in a ticket and it was marked resolve; however, the issue still stands. When i use the get_my_peer_reviews_todo it says no pending peer reviews. This is not true as I have a peer review assigned to me, the other person submitted, and it was after the due date of the assignment. I even tried prompting with the course and assignmnt id that has the peer review and that did not work
Steps to Reproduce
- configure canvas mcp
- ask for assigned peer…
Read the thread · 2026-08-10 · closed · external user · 11 comments
[Feature]: add tools for Canvas Quizzes
[!IMPORTANT] Scope has changed since this was filed — read the comments before writing code.
@zqian confirmed New Quizzes is the priority, not Classic. These are two different products on two different API roots (
/api/quiz/v1vs/api/v1) and the Classic REST endpoints in the link below do not work against New Quizzes. Anything built purely from this original description will target the wrong system.Current plan is a tiered breakdown (Tier A read layer → C1…
Read the thread · 2026-07-29 · open · external user · 9 comments
[Bug]: Create announcement tool
Bug Description
I previously submitted issue #220. I am testing as a student. Now it is saying it cannot create an announcement but it is posting it as a dicussion instead. It does not confirm whether I want a discussion post made.
Steps to Reproduce
- Configure canvas mcp
- prompt to create announcement
- see it post a discussion rather than announcement.
Expected Behavior
It would give me a 403 error since I am a student and not post a discussion.
Actual Behavior
it…
Read the thread · 2026-08-12 · closed · external user · 8 comments
[Bug]: call search_canvas_tools for peer review but did not get MCP tools related to Peer Reviews
Bug Description
search_canvas_tools helps find available Canvas API tools by keyword, especially when you’re not sure which Canvas function to use.
However, when I asked search canvas tools for peer reviews, the answer is not related to peer review tools:
Steps to Reproduce
- ask
how to use search_canvas_tools - MCP returns `search_canvas_tools…
Read the thread · 2026-08-11 · closed · external user · 5 comments
[Bug]: rubric not showing in assignment page after association
Bug Description
After associate rubric with an assignment, the rubric is not showing up in assignment detail page
Steps to Reproduce
- select a rubric in Canvas Rubrics tool, record down the rubric id
- issue the MCP call like "associate rubric 361 with assignment 5030 in course 505"
- The MCP returns success message "Rubric 361 has been successfully associated with Assignment 2 (ID: 5030) in course UIUC_MCP_Test_Course (505)."
- However, when I go to the assignment 5030 page, I…
Read the thread · 2026-07-30 · closed · external user · 5 comments
Make the execute_typescript sandbox uid configurable (TS_SANDBOX_UID_GID)
Follow-up to #157 and PR #317, from the Codex review of #317.
PR #317 pins the execute_typescript container to --user 65532:65532. That is the right default (a fixed, unprivileged uid that a container escape cannot turn into root, and it maps cleanly under rootless podman). It does assume the read-only /workspace bind mount and the image's own tooling are readable by that uid.
Two environments break that assumption, and in both the container fails before user code starts, with a…
Read the thread · 2026-08-30 · closed · 4 comments
mcp-remote clients re-login hourly — request offline_access scope for refresh token
Problem
The mcp-remote client config we generate requests Entra scope api://<app>/access_as_user without offline_access. Entra therefore issues an access token (~1h) but no refresh token. When the access token expires, mcp-remote must redo the full interactive browser OAuth flow.
Worse: if a stale mcp-remote process is still running from a prior session, the reconnect hangs instead of re-prompting.
Evidence (observed 2026-06-26 from a client)
- Endpoint healthy:…
Read the thread · 2026-06-26 · closed · 4 comments
Most recent
[Feature]: Provide option to disable accessibility checkers if not using UDOIT/UFIXIT
Problem Statement
It looks like the 4 accessibility checkers require having UDOIT/UFIXIT available which is an optional addon that we don't have. These should be disabled if not available.
I think it would probably be nice to support other accessibility checkers in the future but seems like that's the only one currently? Canvas has some new accessibility checker but I'm not sure if it has an API. Other a11y checkers possibly have an API or some way to tell if the course was scanned but…
Read the thread · 2026-08-26 · closed · external user · 1 comment
[Feature]: use confirmation token for delete tools
Problem Statement
Currently the following delete tools are included:
- delete_announcement
- bulk_delete_announcements
- delete_announcement_with_confirmation
- delete_announcements_by_criteria
- delete_module
- delete_module_item
- delete_page
Note there is only one tool, delete_announcement_with_confirmation, uses confirmation token
Can we use the confirmation token for the rest of delete_ tools? delete_announcement can be removed
Also can we add delete_assignment_with_confirmation…
Read the thread · 2026-08-21 · closed · external user · 2 comments
[Feature]: add configuration to limit # of tools based on Canvas user role
Problem Statement
Azure platform enforced max # of MCP tools as 128. We need to combine Canvas MCP connector with other connectors for more system integrations, and keep the total combined MCP tools within the 128 limit.
Can we add a configuration variable like "CANVAS_USER_ROLE" in this Canvas MCP server? So only student-facing MCP tools will be turned on if CANVAS_USER_ROLE = Student, and teacher-facing MCP tools will be offered when CANVAS_USER_ROLE = Teacher, etc.
Proposed…
Read the thread · 2026-08-20 · closed · external user · 3 comments
[Feature]: add support for content migration
Problem Statement
Instructor reuse course materials; institutions provide course template with well-structured content materials.
It would be helpful to support course import or content migration in MCP.
Proposed Solution
The Canvas Content Migration API can be used.
For example, if choose to import all content from the source course, the following payload can be used:
course_id:…
[Read the thread](https://github.com/vishalsachdev/canvas-mcp/issues/309) · 2026-08-19 · closed · external user · 2 comments
### [Bug]: send_peer_review_reminders probably should not be doing reminders through the internal Inbox
### Bug Description
In Canvas UI, Peer Review Reminders appear to be done by sending an empty POST back to the same peer review to refresh the `updated_at`, a function the students can't do. This triggers an update to the students and sets the updated time.
<img width="526" height="169" alt="Image" src="https://github.com/user-attachments/assets/8d30a58c-a613-49e0-9440-a57ffb13a61b" />
In the MCP for `send_peer_review_reminders` it does this reminder more direct by using the…
[Read the thread](https://github.com/vishalsachdev/canvas-mcp/issues/303) · 2026-08-18 · closed · external user · 0 comments
### Feature: optional cookie-based auth for Canvas instances that don't issue API tokens
### Problem
canvas-mcp authenticates with a Canvas API token created at **Account → Settings → New Access Token**. Some institutions disable or hide that page for students and route all access through SSO, so those users can't mint a token at all, which means they can't use canvas-mcp today even though they have a perfectly good logged-in Canvas session in their browser.
### Proposal
Add an **opt-in** auth mode that reuses the same session the browser uses, without changing the default…
[Read the thread](https://github.com/vishalsachdev/canvas-mcp/issues/299) · 2026-08-17 · closed · external user · 2 comments
### 91 of 99 tools emit their payload twice via an information-free output schema
**91 of our 99 tools return `-> str`** (counted by AST over `src/canvas_mcp/tools/`;
the other 8 return `dict[str, Any]`). For every one of those 91, FastMCP
auto-generates a wrapper output schema and emits the payload **twice** — once as
`content`, once as `structuredContent`.
Reproduced in the project venv against the pinned fastmcp 3.4.4:
outputSchema: {'properties': {'result': {'type': 'string'}}, 'required': ['result'], 'type': 'object',…
Read the thread · 2026-08-10 · closed · 1 comment
Tool failures never set isError — clients cannot distinguish a Canvas error from an empty result
Tool failures are reported as ordinary successful results. There are zero
occurrences of isError or ToolError anywhere in src/ (verified by grep),
against 150 return "Error ..." paths across the tool modules.
The MCP spec is explicit that this is the wrong shape. From the 2026-07-28 tools spec, "Error Handling": API failures, input validation errors and business logic errors "are reported in tool results…
Read the thread · 2026-08-10 · closed · 2 comments
[Bug]: created announcement was not saved in Canvas
Bug Description
Based on request in course 505, create announcement with title: "announcement 2 from MCP" with message "testing for announcement creation", the Canvas MCP reported the new announcement has been created successfully, and returned the new announcement id. However, the new announcement is not listed in Canvas course site, and the subsequent request could not retrieve it either.
<img width="717" height="486" alt="Image"…
Read the thread · 2026-08-08 · closed · external user · 2 comments
npm setup wizard configures clients against the retired mcp.illinihunt.org endpoint
What
npx canvas-mcp setup writes an MCP server block pointing at
https://mcp.illinihunt.org/mcp into every client config it touches
(cli/lib/config-writer.js:12, used at lines 90 and 102).
That host is retired, and it currently has no DNS record — so the wizard produces a config that cannot work, while also storing the user's Canvas API token alongside it.
Evidence
# The repo already documents the endpoint as retired
grep -n "retired" README.md # -> line 268…
[Read the thread](https://github.com/vishalsachdev/canvas-mcp/issues/249) · 2026-08-08 · closed · 1 comment
### [Security]: course-authored page content is returned verbatim into model context (prompt-injection surface)
## Summary
`get_page_content` returns Canvas's page `body` verbatim, including `<script>`, `<link>`, and arbitrary attributes. That content is authored by anyone with page-edit rights in the course and flows straight into the calling model's context, where instructions embedded in it are indistinguishable from the user's own request.
Surfaced while investigating #233 (which turned out not to be a filtering bug — the opposite: nothing is filtered).
## Evidence
Verified against a live Canvas…
[Read the thread](https://github.com/vishalsachdev/canvas-mcp/issues/239) · 2026-08-08 · closed · 2 comments
### [Bug]: list announcements for course returns extra records like discussion topics
### Bug Description
When asked to "return announcements for course <course_id>", the returned records includes discussion topics, too.
### Steps to Reproduce
1. issue command "return announcements in course ID"
2. notice the returned records includes partial list of course announcements, along with several course discussion items.
3. Notice also some author field values are also wrong, for example, the discussion topics titled as "HI" were not created by me
<img width="725" height="362"…
[Read the thread](https://github.com/vishalsachdev/canvas-mcp/issues/238) · 2026-08-08 · closed · external user · 0 comments
The remaining reports are on [the project's issue tracker](https://github.com/vishalsachdev/canvas-mcp/issues).