Skip to main content
The assignment tools cover everything from browsing upcoming work to retrieving full rubric details and submission history. All four tools require a course_id; use list_courses or resolve_course to obtain one.

list_course_assignments

Lists assignments for a course. Supports filtering by keyword, lifecycle bucket, and whether to include the current user’s submission alongside each assignment.

Parameters

course_id
string
required
Canvas course ID.

Response

course_id
string
required
Canvas course ID.
count
integer
required
Number of assignments returned.
assignments
object[]
required

Example

canvas tool run list_course_assignments --args '{"course_id": "112233", "bucket": "upcoming", "include_submission": true}'

get_assignment_details

Returns full details for a single assignment, including description, grading configuration, allowed extensions, and optional submission data.

Parameters

course_id
string
required
Canvas course ID.
assignment_id
string
required
Canvas assignment ID. Obtainable from list_course_assignments or resolve_canvas_url.

Response

course_id
string
required
Canvas course ID.
assignment
object
required

Example

canvas tool run get_assignment_details --args '{"course_id": "112233", "assignment_id": "789012", "include_submission": true}'

list_assignment_groups

Lists the assignment groups (grading categories) for a course and optionally expands each group to include its assignments and submission data. Assignment groups represent weighted grading buckets such as “Homework (20%)” or “Exams (50%)”.

Parameters

course_id
string
required
Canvas course ID.

Response

course_id
string
required
Canvas course ID.
count
integer
required
Number of assignment groups returned.
assignment_groups
object[]
required

Example

canvas tool run list_assignment_groups --args '{"course_id": "112233", "include_assignments": true, "include_submission": true}'

list_course_submissions

Lists submissions for a student in a course. Defaults to the authenticated user (self). Supports filtering by assignment IDs, workflow state, and submission timestamps, and can include additional Canvas sideloads via include.
Querying submissions for a student_id other than self requires your Canvas account to have course-wide submission read access for that course.

Parameters

course_id
string
required
Canvas course ID.

Response

course_id
string
required
Canvas course ID.
count
integer
required
Number of submissions returned.
submissions
object[]
required

Example

canvas tool run list_course_submissions --args '{"course_id": "112233", "student_id": "self", "workflow_state": "graded", "limit": 50}'
canvas tool run list_course_submissions --args '{"course_id": "112233", "assignment_ids": ["789012", "789013"], "include": ["assignment", "submission_comments"]}'

Build docs developers (and LLMs) love