list_assignments
List assignments for a Canvas course with due dates, points, and submission status. Optionally include student submissions.
Instructions
List assignments in a course. Includes due_at, points, submission status.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| course_id | Yes | ||
| include_submissions | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |
Implementation Reference
- canvas_local_mcp/server.py:59-80 (handler)The 'list_assignments' tool handler function. Decorated with @mcp.tool(), it takes a course_id and optional include_submissions flag, fetches assignments from the Canvas API, and returns a list of dicts with id, name, due_at, points_possible, html_url, submission_types, and optionally submission details.
@mcp.tool() def list_assignments(course_id: int, include_submissions: bool = False) -> list[dict]: """List assignments in a course. Includes due_at, points, submission status.""" params = {} if include_submissions: params["include[]"] = "submission" asg = _get(f"/api/v1/courses/{course_id}/assignments", **params) out = [] for a in asg: item = { "id": a["id"], "name": a.get("name"), "due_at": a.get("due_at"), "points_possible": a.get("points_possible"), "html_url": a.get("html_url"), "submission_types": a.get("submission_types"), } if include_submissions and a.get("submission"): s = a["submission"] item["submission"] = {"score": s.get("score"), "submitted_at": s.get("submitted_at"), "workflow_state": s.get("workflow_state")} out.append(item) return out - canvas_local_mcp/server.py:51-51 (registration)The @mcp.tool() decorator on line 51 (and similarly on line 59) is how FastMCP registers the function as a tool. The decorator at line 59 registers 'list_assignments'.
@mcp.tool()