Skip to main content
Glama

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

TableJSON Schema
NameRequiredDescriptionDefault
course_idYesID of the course
include_submissionsNoInclude submission data

Implementation Reference

  • 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) }]
      };
    }
  • 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
    }));
  • 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;
    }
Install Server

Other Tools

Related Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/DMontgomery40/mcp-canvas-lms'

If you have feedback or need assistance with the MCP directory API, please join our Discord server