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
Filter assignments by lifecycle state. Allowed values: Value Description pastDue date has passed and the assignment is closed. overduePast due with no submission. undatedNo due date assigned. ungradedSubmitted but not yet graded. unsubmittedNot yet submitted by the current user. upcomingDue within the next week. futureDue more than one week from now.
Filter assignments by name. Case-insensitive substring match.
When true, attaches the current user’s submission object to each assignment. Defaults to false.
Maximum number of assignments to return. Must be between 1 and 300. Defaults to 100.
Response
Number of assignments returned.
Show Assignment object fields
All known ID aliases (short, tilde, and full Canvas formats).
ISO datetime the assignment is due. null if undated.
ISO datetime the assignment unlocks.
ISO datetime the assignment locks for submissions.
Total points the assignment is worth.
Direct URL to the assignment in Canvas.
Allowed submission types, e.g. ["online_text_entry", "online_upload"].
ID of the linked discussion topic if the assignment type is a discussion.
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
Canvas assignment ID. Obtainable from list_course_assignments or resolve_canvas_url.
When true, includes the current user’s submission in the response. Defaults to false.
Response
Show Assignment detail fields
Full assignment description as raw HTML.
ISO datetime the assignment is due.
ISO datetime the assignment unlocks.
ISO datetime the assignment locks.
Direct URL to the assignment in Canvas.
Whether the assignment is published.
Allowed submission types.
Grading method, e.g. "points", "percent", "letter_grade", "pass_fail".
File extensions permitted for upload submissions.
has_submitted_submissions
Whether any student has submitted.
ID of the linked discussion topic, if any.
Full discussion topic object when the assignment is a discussion type.
The current user’s submission object when include_submission is true.
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
When true, includes the list of assignments within each group. Defaults to false.
When true, attaches the current user’s submission to each assignment in the group. Requires include_assignments to be true to have any effect. Defaults to false.
Maximum number of assignment groups to return. Must be between 1 and 300. Defaults to 100.
Response
Number of assignment groups returned.
Show Assignment group fields
Group name, e.g. "Homework".
Percentage weight of this group in the final grade. null if weights are not used.
Ordered position within the gradebook.
Drop rules object (e.g. drop_lowest, drop_highest, never_drop).
Total number of assignments in the group.
Array of assignment objects when include_assignments is true. Each entry has the same fields as list_course_assignments plus a submission field when include_submission is true.
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
Canvas user ID of the student to query. Defaults to "self" (the authenticated user).
Limit results to submissions for specific assignment IDs. ID aliases (short, tilde, and full formats) are all accepted and normalized automatically.
Filter by submission workflow state, e.g. "submitted", "graded", "pending_review", "unsubmitted".
ISO datetime string. Only return submissions submitted on or after this time.
ISO datetime string. Only return submissions graded on or after this time.
Additional Canvas sideloads to attach. Common values: "assignment", "submission_comments", "rubric_assessment", "user", "visibility".
When true, requests grouped submission data from Canvas. The response is automatically flattened back to a flat list. Defaults to false.
Maximum number of submissions to return. Must be between 1 and 300. Defaults to 200.
Response
Number of submissions returned.
Show Submission object fields
ID of the assignment this submission belongs to.
All known ID aliases for the assignment.
Assignment name. Present when the "assignment" sideload is included.
Canvas user ID of the submitter.
Numeric score awarded. null if ungraded.
Letter or percentage grade. null if ungraded.
Score before any late penalties are applied.
ISO datetime of submission. null if not submitted.
ISO datetime of grading. null if ungraded.
Whether the submission was late.
Whether the submission is missing.
Whether the submission is excused.
Submission workflow state.
How the assignment was submitted, e.g. "online_upload", "online_text_entry", "discussion_topic".
Submission attempt number.
URL submitted, for URL-type submissions.
Text body, for text-entry submissions.
Canvas submission preview URL.
Array of file attachment objects.
Array of submission comment objects. Present when the "submission_comments" sideload is included.
Rubric assessment data. Present when the "rubric_assessment" sideload is included.
Discussion entries for discussion-type submissions.
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"]}'