canvas_list_assignments
Retrieve and organize course assignments from the Canvas LMS, including optional submission data, by specifying the course ID for streamlined management.
Instructions
List assignments for a course
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| course_id | Yes | ID of the course | |
| include_submissions | No | Include submission data |
Input Schema (JSON Schema)
{
"properties": {
"course_id": {
"description": "ID of the course",
"type": "number"
},
"include_submissions": {
"description": "Include submission data",
"type": "boolean"
}
},
"required": [
"course_id"
],
"type": "object"
}
Implementation Reference
- src/index.ts:1134-1145 (handler)Handler implementation for the 'canvas_list_assignments' tool within the CallToolRequestSchema switch statement. Extracts arguments, validates course_id, calls CanvasClient.listAssignments, and returns JSON response.case "canvas_list_assignments": { const { course_id, include_submissions = false } = args as { course_id: number; include_submissions?: boolean }; if (!course_id) throw new Error("Missing required field: course_id"); const assignments = await this.client.listAssignments(course_id, include_submissions); return { content: [{ type: "text", text: JSON.stringify(assignments, null, 2) }] }; }
- src/index.ts:141-150 (schema)Tool schema definition in the TOOLS array, specifying name, description, and inputSchema for canvas_list_assignments tool.name: "canvas_list_assignments", description: "List assignments for a course", inputSchema: { type: "object", properties: { course_id: { type: "number", description: "ID of the course" }, include_submissions: { type: "boolean", description: "Include submission data" } }, required: ["course_id"] }
- src/index.ts:1071-1073 (registration)Registration of all tools including canvas_list_assignments via ListToolsRequestSchema handler that returns the TOOLS array.this.server.setRequestHandler(ListToolsRequestSchema, async () => ({ tools: TOOLS }));
- src/client.ts:257-268 (helper)CanvasClient.listAssignments method: core implementation that queries Canvas API endpoint /courses/{courseId}/assignments with optional submission include.async listAssignments(courseId: number, includeSubmissions: boolean = false): Promise<CanvasAssignment[]> { const params: any = { include: ['assignment_group', 'rubric', 'due_at'] }; if (includeSubmissions) { params.include.push('submission'); } const response = await this.client.get(`/courses/${courseId}/assignments`, { params }); return response.data; }