canvas_create_account_report
Generate a report for an account
Run a Canvas course from the conversation: assignments created and graded, submissions read, discussions answered, quizzes built, students enrolled.
LABSCO SUMMARY
The reads cover what a student checks each morning — what is due, what it was graded — and the writes cover what an instructor does about it, from creating the assignment to returning the grade with a comment. Account-level tools sit in the same server, so enrolling a user, creating one, or generating an institutional report does not need a second integration. canvas_health_check is there to answer whether the token and domain are reaching Canvas at all before you debug anything else.
A Canvas LMS client of 54 tools spanning the roles Canvas itself separates — the student's reads, the instructor's writes, and account administration.
A Canvas account with an API token in CANVAS_API_TOKEN and your institution's Canvas host in CANVAS_DOMAIN, plus npx on your PATH. Grading and account tools act as whatever role that token already holds in Canvas.
One command plus a key — npm install -g canvas-mcp-server, then supply credentials
USE CASES
Upcoming due dates come back across every course at once, with the grades that say which of them still matter, instead of opening each course card in turn.
Create the assignment with its points, due date and accepted submission types, then read a student's submission and post the grade with the comment attached to it.
Create the course with its syllabus and dates, add the quiz with its time limit, and check the modules and syllabus as they will appear to the students rather than in the editor.
Find the topic, read the thread it belongs to, and post the reply — with announcements checked in the same pass so the same answer is not already up there.
Create the user in the account, enrol them into the course with the role and enrolment state they should have, and open the conversation that tells them what they missed.
Query the account's courses and users with search and sort rather than exporting everything, see which reports the account offers, and start the one you need.
Counted once with only startup setup. Other versions, modes or optional credentials may expose a different list.
canvas_create_account_reportGenerate a report for an account
canvas_create_assignmentCreate a new assignment in a Canvas course
canvas_create_conversationCreate a new conversation
canvas_create_courseCreate a new course in Canvas
canvas_create_quizCreate a new quiz in a course
canvas_create_userCreate a new user in an account
canvas_enroll_userEnroll a user in a course
canvas_get_accountGet account details
canvas_get_account_reportsList available reports for an account
canvas_get_assignmentGet detailed information about a specific assignment
canvas_get_conversationGet details of a specific conversation
canvas_get_courseGet detailed information about a specific course
canvas_get_course_gradesGet grades for a course
canvas_get_dashboardGet user's dashboard information
canvas_get_dashboard_cardsGet dashboard course cards
canvas_get_discussion_topicGet details of a specific discussion topic
canvas_get_fileGet information about a specific file
canvas_get_moduleGet details of a specific module
canvas_get_module_itemGet details of a specific module item
canvas_get_pageGet content of a specific page
canvas_get_quizGet details of a specific quiz
canvas_get_rubricGet details of a specific rubric
canvas_get_submissionGet submission details for an assignment
canvas_get_syllabusGet course syllabus
canvas_get_upcoming_assignmentsGet upcoming assignment due dates
canvas_get_user_gradesGet all grades for the current user
canvas_get_user_profileGet current user's profile
canvas_health_checkCheck the health and connectivity of the Canvas API
canvas_list_account_coursesList courses for an account
canvas_list_account_usersList users for an account
canvas_list_announcementsList all announcements in a course
canvas_list_assignment_groupsList assignment groups for a course
canvas_list_assignmentsList assignments for a course
canvas_list_calendar_eventsList calendar events
canvas_list_conversationsList user's conversations
canvas_list_coursesList all courses for the current user
canvas_list_discussion_topicsList all discussion topics in a course
canvas_list_filesList files in a course or folder
canvas_list_foldersList folders in a course
canvas_list_module_itemsList all items in a module
canvas_list_modulesList all modules in a course
canvas_list_notificationsList user's notifications
canvas_list_pagesList pages in a course
canvas_list_quizzesList all quizzes in a course
canvas_list_rubricsList rubrics for a course
canvas_list_sub_accountsList sub-accounts for an account
canvas_mark_module_item_completeMark a module item as complete
canvas_post_to_discussionPost a message to a discussion topic
canvas_start_quiz_attemptStart a new quiz attempt
canvas_submit_assignmentSubmit work for an assignment
canvas_submit_gradeSubmit a grade for a student's assignment (teacher only)
canvas_update_assignmentUpdate an existing assignment
canvas_update_courseUpdate an existing course in Canvas
canvas_update_user_profileUpdate current user's profile
BEFORE YOU INSTALL
54 tools when we connected.
CONTEXT COST
Rated by the size of the 54 tool definitions that ride along on every turn, not by how many there are
INSTALLATION
npm install -g canvas-mcp-server{
"mcpServers": {
"canvas-mcp-server": {
"command": "npx",
"args": [
"-y",
"canvas-mcp-server"
],
"env": {
"CANVAS_API_TOKEN": "<YOUR_CANVAS_API_TOKEN>",
"CANVAS_DOMAIN": "<YOUR_SCHOOL>.instructure.com"
}
}
}
}docker run -d \
--name canvas-mcp \
-p 3000:3000 \
-e CANVAS_API_TOKEN="<YOUR_CANVAS_API_TOKEN>" \
-e CANVAS_DOMAIN="school.instructure.com" \
-e MCP_TRANSPORT="streamable-http" \
-e MCP_HTTP_HOST="0.0.0.0" \
-e MCP_HTTP_PORT="3000" \
-e MCP_HTTP_PATH="/mcp" \
ghcr.io/dmontgomery40/mcp-canvas-lms:latestThis starts the server over streamable HTTP rather than stdio. school.instructure.com is a sample; yours is your own Canvas host. Then point a client that connects to remote MCP servers at http://localhost:3000/mcp (the port and MCP_HTTP_PATH set above).