Canvas LMS · Capability

Canvas REST API — Assignments

Canvas REST API — Assignments business surface. Lead operation: List Assignments in a Course. Self-contained Naftiko capability covering one Canvas business surface.

Canvas REST API — Assignments is a Naftiko capability published by Canvas LMS, one of 2 capabilities the APIs.io network indexes for this provider. It bundles 8 operations.

The capability includes 4 read-only operations and 4 state-changing operations. Lead operation: List Assignments in a Course. Can be deployed as a REST endpoint, MCP tool, or Agent Skill via Naftiko.

Tagged areas include Canvas, Assignments, Submissions, and LMS.

Run with Naftiko CanvasAssignmentsSubmissionsLMS

MCP Tools

canvas-list-assignments

List Assignments in a Course

read-only idempotent
canvas-create-assignment

Create an Assignment

canvas-get-assignment

Get a Single Assignment

read-only idempotent
canvas-update-assignment

Edit an Assignment

canvas-delete-assignment

Delete an Assignment

canvas-list-submissions

List Submissions for an Assignment

read-only idempotent
canvas-get-submission

Get a Single Submission

read-only idempotent
canvas-grade-submission

Grade or Comment on a Submission

Capability Spec

rest-api-assignments.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Canvas REST API — Assignments
  description: 'Canvas REST API — Assignments business surface. Lead operation: List Assignments in a Course. Self-contained Naftiko capability covering one Canvas business surface.'
  tags:
  - Canvas
  - Assignments
  - Submissions
  - LMS
  created: '2026-05-25'
  modified: '2026-05-25'
binds:
- namespace: env
  keys:
    CANVAS_HOST: CANVAS_HOST
    CANVAS_ACCESS_TOKEN: CANVAS_ACCESS_TOKEN
capability:
  consumes:
  - type: http
    namespace: rest-api-assignments
    baseUri: https://{{env.CANVAS_HOST}}
    description: Canvas REST API — Assignments surface. Self-contained, no shared references.
    resources:
    - name: api-v1-courses-id-assignments
      path: /api/v1/courses/{course_id}/assignments
      operations:
      - name: listassignments
        method: GET
        description: List Assignments in a Course
        outputRawFormat: json
        outputParameters:
        - name: result
          type: array
          value: $.
      - name: createassignment
        method: POST
        description: Create an Assignment
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: api-v1-courses-id-assignments-id
      path: /api/v1/courses/{course_id}/assignments/{assignment_id}
      operations:
      - name: getassignment
        method: GET
        description: Get a Single Assignment
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: updateassignment
        method: PUT
        description: Edit an Assignment
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: deleteassignment
        method: DELETE
        description: Delete an Assignment
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: api-v1-courses-id-assignments-id-submissions
      path: /api/v1/courses/{course_id}/assignments/{assignment_id}/submissions
      operations:
      - name: listsubmissions
        method: GET
        description: List Submissions for an Assignment
        outputRawFormat: json
        outputParameters:
        - name: result
          type: array
          value: $.
    - name: api-v1-courses-id-assignments-id-submissions-user
      path: /api/v1/courses/{course_id}/assignments/{assignment_id}/submissions/{user_id}
      operations:
      - name: getsubmission
        method: GET
        description: Get a Single Submission
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: gradesubmission
        method: PUT
        description: Grade or Comment on a Submission
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    authentication:
      type: bearer
      value: '{{env.CANVAS_ACCESS_TOKEN}}'
      placement: header
  exposes:
  - type: mcp
    namespace: rest-api-assignments-mcp
    port: 9090
    transport: http
    description: MCP adapter for Canvas REST API — Assignments. One tool per consumed operation, routed inline through this capability's consumes block.
    tools:
    - name: canvas-list-assignments
      description: List Assignments in a Course
      hints: {readOnly: true, destructive: false, idempotent: true}
      call: rest-api-assignments.listassignments
      outputParameters:
      - {type: array, mapping: $.}
    - name: canvas-create-assignment
      description: Create an Assignment
      hints: {readOnly: false, destructive: false, idempotent: false}
      call: rest-api-assignments.createassignment
      outputParameters:
      - {type: object, mapping: $.}
    - name: canvas-get-assignment
      description: Get a Single Assignment
      hints: {readOnly: true, destructive: false, idempotent: true}
      call: rest-api-assignments.getassignment
      outputParameters:
      - {type: object, mapping: $.}
    - name: canvas-update-assignment
      description: Edit an Assignment
      hints: {readOnly: false, destructive: false, idempotent: false}
      call: rest-api-assignments.updateassignment
      outputParameters:
      - {type: object, mapping: $.}
    - name: canvas-delete-assignment
      description: Delete an Assignment
      hints: {readOnly: false, destructive: true, idempotent: false}
      call: rest-api-assignments.deleteassignment
      outputParameters:
      - {type: object, mapping: $.}
    - name: canvas-list-submissions
      description: List Submissions for an Assignment
      hints: {readOnly: true, destructive: false, idempotent: true}
      call: rest-api-assignments.listsubmissions
      outputParameters:
      - {type: array, mapping: $.}
    - name: canvas-get-submission
      description: Get a Single Submission
      hints: {readOnly: true, destructive: false, idempotent: true}
      call: rest-api-assignments.getsubmission
      outputParameters:
      - {type: object, mapping: $.}
    - name: canvas-grade-submission
      description: Grade or Comment on a Submission
      hints: {readOnly: false, destructive: false, idempotent: false}
      call: rest-api-assignments.gradesubmission
      outputParameters:
      - {type: object, mapping: $.}