> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pinkfish.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# canvas

> Canvas LMS

**Server path:** `/canvas` | **Type:** Application | **PCID required:** Yes

## Tools

| Tool                                                              | Description                                |
| ----------------------------------------------------------------- | ------------------------------------------ |
| [`canvas_create_assignment`](#canvas_create_assignment)           | Create a new assignment in a course        |
| [`canvas_create_conversation`](#canvas_create_conversation)       | Create a new conversation (send a message) |
| [`canvas_delete_assignment`](#canvas_delete_assignment)           | Delete an assignment                       |
| [`canvas_enroll_user`](#canvas_enroll_user)                       | Enroll a user in a course                  |
| [`canvas_get_assignment`](#canvas_get_assignment)                 | Get a single assignment                    |
| [`canvas_get_conversation`](#canvas_get_conversation)             | Get a single conversation with messages    |
| [`canvas_get_course`](#canvas_get_course)                         | Get a single course by ID                  |
| [`canvas_get_discussion_topic`](#canvas_get_discussion_topic)     | Get a single discussion topic              |
| [`canvas_get_file`](#canvas_get_file)                             | Get a file by ID                           |
| [`canvas_get_module`](#canvas_get_module)                         | Get a single module                        |
| [`canvas_get_page`](#canvas_get_page)                             | Get a single page by URL or ID             |
| [`canvas_get_quiz`](#canvas_get_quiz)                             | Get a single quiz                          |
| [`canvas_get_rubric`](#canvas_get_rubric)                         | Get a single rubric                        |
| [`canvas_get_submission`](#canvas_get_submission)                 | Get a single submission                    |
| [`canvas_get_user_profile`](#canvas_get_user_profile)             | Get the current user's profile             |
| [`canvas_grade_submission`](#canvas_grade_submission)             | Grade or comment on a submission           |
| [`canvas_list_account_courses`](#canvas_list_account_courses)     | List courses in an account                 |
| [`canvas_list_account_users`](#canvas_list_account_users)         | List users in an account                   |
| [`canvas_list_announcements`](#canvas_list_announcements)         | List announcements across courses          |
| [`canvas_list_assignment_groups`](#canvas_list_assignment_groups) | List assignment groups in a course         |
| [`canvas_list_assignments`](#canvas_list_assignments)             | List assignments for a course              |
| [`canvas_list_calendar_events`](#canvas_list_calendar_events)     | List calendar events                       |
| [`canvas_list_conversations`](#canvas_list_conversations)         | List conversations (inbox messages)        |
| [`canvas_list_course_users`](#canvas_list_course_users)           | List users in a course                     |
| [`canvas_list_courses`](#canvas_list_courses)                     | List courses for the current user          |
| [`canvas_list_discussion_topics`](#canvas_list_discussion_topics) | List discussion topics in a course         |
| [`canvas_list_enrollments`](#canvas_list_enrollments)             | List enrollments in a course               |
| [`canvas_list_files`](#canvas_list_files)                         | List files in a course                     |
| [`canvas_list_folders`](#canvas_list_folders)                     | List folders in a course                   |
| [`canvas_list_module_items`](#canvas_list_module_items)           | List items in a module                     |
| [`canvas_list_modules`](#canvas_list_modules)                     | List modules in a course                   |
| [`canvas_list_pages`](#canvas_list_pages)                         | List pages in a course                     |
| [`canvas_list_quizzes`](#canvas_list_quizzes)                     | List quizzes in a course                   |
| [`canvas_list_rubrics`](#canvas_list_rubrics)                     | List rubrics in a course                   |
| [`canvas_list_submissions`](#canvas_list_submissions)             | List assignment submissions                |
| [`canvas_list_todo_items`](#canvas_list_todo_items)               | List the current user's TODO items         |
| [`canvas_post_discussion_entry`](#canvas_post_discussion_entry)   | Post a new entry to a discussion topic     |
| [`canvas_submit_assignment`](#canvas_submit_assignment)           | Submit an assignment                       |
| [`canvas_update_assignment`](#canvas_update_assignment)           | Update an existing assignment              |
| [`canvas_update_course`](#canvas_update_course)                   | Update an existing course                  |

***

## canvas\_create\_assignment

Create a new assignment in a course

**Parameters:**

| Parameter                         | Type    | Required | Default | Description                         |
| --------------------------------- | ------- | -------- | ------- | ----------------------------------- |
| `course_id`                       | integer | Yes      | —       | The ID of the course                |
| `assignment[assignment_group_id]` | integer | No       | —       | Assignment group ID                 |
| `assignment[description]`         | string  | No       | —       | The assignment description (HTML)   |
| `assignment[due_at]`              | string  | No       | —       | Due date                            |
| `assignment[grading_type]`        | string  | No       | —       | Grading type                        |
| `assignment[lock_at]`             | string  | No       | —       | Lock date                           |
| `assignment[name]`                | string  | Yes      | —       | The assignment name                 |
| `assignment[points_possible]`     | number  | No       | —       | Maximum points                      |
| `assignment[published]`           | boolean | No       | —       | Whether the assignment is published |
| `assignment[submission_types][]`  | string  | No       | —       | Allowed submission types            |
| `assignment[unlock_at]`           | string  | No       | —       | Unlock date                         |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "course_id": {
        "type": "integer",
        "description": "The ID of the course"
      },
      "assignment[assignment_group_id]": {
        "type": "integer",
        "description": "Assignment group ID"
      },
      "assignment[description]": {
        "type": "string",
        "description": "The assignment description (HTML)"
      },
      "assignment[due_at]": {
        "type": "string",
        "description": "Due date"
      },
      "assignment[grading_type]": {
        "type": "string",
        "description": "Grading type",
        "enum": [
          "pass_fail",
          "percent",
          "letter_grade",
          "gpa_scale",
          "points",
          "not_graded"
        ]
      },
      "assignment[lock_at]": {
        "type": "string",
        "description": "Lock date"
      },
      "assignment[name]": {
        "type": "string",
        "description": "The assignment name"
      },
      "assignment[points_possible]": {
        "type": "number",
        "description": "Maximum points"
      },
      "assignment[published]": {
        "type": "boolean",
        "description": "Whether the assignment is published"
      },
      "assignment[submission_types][]": {
        "type": "string",
        "description": "Allowed submission types",
        "enum": [
          "online_quiz",
          "none",
          "on_paper",
          "discussion_topic",
          "external_tool",
          "online_upload",
          "online_text_entry",
          "online_url",
          "media_recording",
          "student_annotation"
        ]
      },
      "assignment[unlock_at]": {
        "type": "string",
        "description": "Unlock date"
      }
    },
    "required": [
      "PCID",
      "course_id",
      "assignment[name]"
    ]
  }
  ```
</Expandable>

***

## canvas\_create\_conversation

Create a new conversation (send a message)

**Parameters:**

| Parameter            | Type    | Required | Default | Description                                   |
| -------------------- | ------- | -------- | ------- | --------------------------------------------- |
| `body`               | string  | Yes      | —       | The message body                              |
| `context_code`       | string  | No       | —       | Context code (e.g., course\_123)              |
| `group_conversation` | boolean | No       | —       | Whether to create a group conversation        |
| `recipients[]`       | string  | Yes      | —       | Recipient user IDs (comma-separated or array) |
| `subject`            | string  | No       | —       | The conversation subject                      |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "body": {
        "type": "string",
        "description": "The message body"
      },
      "context_code": {
        "type": "string",
        "description": "Context code (e.g., course_123)"
      },
      "group_conversation": {
        "type": "boolean",
        "description": "Whether to create a group conversation"
      },
      "recipients[]": {
        "type": "string",
        "description": "Recipient user IDs (comma-separated or array)"
      },
      "subject": {
        "type": "string",
        "description": "The conversation subject"
      }
    },
    "required": [
      "PCID",
      "body",
      "recipients[]"
    ]
  }
  ```
</Expandable>

***

## canvas\_delete\_assignment

Delete an assignment

**Parameters:**

| Parameter       | Type    | Required | Default | Description              |
| --------------- | ------- | -------- | ------- | ------------------------ |
| `course_id`     | integer | Yes      | —       | The ID of the course     |
| `assignment_id` | integer | Yes      | —       | The ID of the assignment |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "course_id": {
        "type": "integer",
        "description": "The ID of the course"
      },
      "assignment_id": {
        "type": "integer",
        "description": "The ID of the assignment"
      }
    },
    "required": [
      "PCID",
      "course_id",
      "assignment_id"
    ]
  }
  ```
</Expandable>

***

## canvas\_enroll\_user

Enroll a user in a course

**Parameters:**

| Parameter                      | Type    | Required | Default | Description                                  |
| ------------------------------ | ------- | -------- | ------- | -------------------------------------------- |
| `course_id`                    | integer | Yes      | —       | The ID of the course                         |
| `enrollment[enrollment_state]` | string  | No       | —       | The initial enrollment state                 |
| `enrollment[notify]`           | boolean | No       | —       | Whether to notify the user of the enrollment |
| `enrollment[type]`             | string  | Yes      | —       | The enrollment type                          |
| `enrollment[user_id]`          | integer | Yes      | —       | The ID of the user to enroll                 |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "course_id": {
        "type": "integer",
        "description": "The ID of the course"
      },
      "enrollment[enrollment_state]": {
        "type": "string",
        "description": "The initial enrollment state",
        "enum": [
          "active",
          "invited",
          "inactive"
        ]
      },
      "enrollment[notify]": {
        "type": "boolean",
        "description": "Whether to notify the user of the enrollment"
      },
      "enrollment[type]": {
        "type": "string",
        "description": "The enrollment type",
        "enum": [
          "StudentEnrollment",
          "TeacherEnrollment",
          "TaEnrollment",
          "DesignerEnrollment",
          "ObserverEnrollment"
        ]
      },
      "enrollment[user_id]": {
        "type": "integer",
        "description": "The ID of the user to enroll"
      }
    },
    "required": [
      "PCID",
      "course_id",
      "enrollment[type]",
      "enrollment[user_id]"
    ]
  }
  ```
</Expandable>

***

## canvas\_get\_assignment

Get a single assignment

**Parameters:**

| Parameter       | Type    | Required | Default | Description                |
| --------------- | ------- | -------- | ------- | -------------------------- |
| `course_id`     | integer | Yes      | —       | The ID of the course       |
| `assignment_id` | integer | Yes      | —       | The ID of the assignment   |
| `include[]`     | string  | No       | —       | Additional data to include |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "course_id": {
        "type": "integer",
        "description": "The ID of the course"
      },
      "assignment_id": {
        "type": "integer",
        "description": "The ID of the assignment"
      },
      "include[]": {
        "type": "string",
        "description": "Additional data to include",
        "enum": [
          "submission",
          "assignment_visibility",
          "overrides",
          "observed_users",
          "can_edit",
          "score_statistics"
        ]
      }
    },
    "required": [
      "PCID",
      "course_id",
      "assignment_id"
    ]
  }
  ```
</Expandable>

***

## canvas\_get\_conversation

Get a single conversation with messages

**Parameters:**

| Parameter         | Type    | Required | Default | Description                |
| ----------------- | ------- | -------- | ------- | -------------------------- |
| `conversation_id` | integer | Yes      | —       | The ID of the conversation |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "conversation_id": {
        "type": "integer",
        "description": "The ID of the conversation"
      }
    },
    "required": [
      "PCID",
      "conversation_id"
    ]
  }
  ```
</Expandable>

***

## canvas\_get\_course

Get a single course by ID

**Parameters:**

| Parameter   | Type    | Required | Default | Description                |
| ----------- | ------- | -------- | ------- | -------------------------- |
| `course_id` | integer | Yes      | —       | The ID of the course       |
| `include[]` | string  | No       | —       | Additional data to include |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "course_id": {
        "type": "integer",
        "description": "The ID of the course"
      },
      "include[]": {
        "type": "string",
        "description": "Additional data to include",
        "enum": [
          "needs_grading_count",
          "syllabus_body",
          "public_description",
          "total_scores",
          "current_grading_period_scores",
          "term",
          "account",
          "course_progress",
          "sections",
          "storage_quota_used_mb",
          "total_students",
          "passback_status",
          "favorites",
          "teachers",
          "observed_users",
          "tabs",
          "course_image",
          "banner_image"
        ]
      }
    },
    "required": [
      "PCID",
      "course_id"
    ]
  }
  ```
</Expandable>

***

## canvas\_get\_discussion\_topic

Get a single discussion topic

**Parameters:**

| Parameter   | Type    | Required | Default | Description                    |
| ----------- | ------- | -------- | ------- | ------------------------------ |
| `course_id` | integer | Yes      | —       | The ID of the course           |
| `topic_id`  | integer | Yes      | —       | The ID of the discussion topic |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "course_id": {
        "type": "integer",
        "description": "The ID of the course"
      },
      "topic_id": {
        "type": "integer",
        "description": "The ID of the discussion topic"
      }
    },
    "required": [
      "PCID",
      "course_id",
      "topic_id"
    ]
  }
  ```
</Expandable>

***

## canvas\_get\_file

Get a file by ID

**Parameters:**

| Parameter   | Type    | Required | Default | Description                |
| ----------- | ------- | -------- | ------- | -------------------------- |
| `file_id`   | integer | Yes      | —       | The ID of the file         |
| `include[]` | string  | No       | —       | Additional data to include |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "file_id": {
        "type": "integer",
        "description": "The ID of the file"
      },
      "include[]": {
        "type": "string",
        "description": "Additional data to include",
        "enum": [
          "user",
          "usage_rights"
        ]
      }
    },
    "required": [
      "PCID",
      "file_id"
    ]
  }
  ```
</Expandable>

***

## canvas\_get\_module

Get a single module

**Parameters:**

| Parameter   | Type    | Required | Default | Description                |
| ----------- | ------- | -------- | ------- | -------------------------- |
| `course_id` | integer | Yes      | —       | The ID of the course       |
| `module_id` | integer | Yes      | —       | The ID of the module       |
| `include[]` | string  | No       | —       | Additional data to include |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "course_id": {
        "type": "integer",
        "description": "The ID of the course"
      },
      "module_id": {
        "type": "integer",
        "description": "The ID of the module"
      },
      "include[]": {
        "type": "string",
        "description": "Additional data to include",
        "enum": [
          "items",
          "content_details"
        ]
      }
    },
    "required": [
      "PCID",
      "course_id",
      "module_id"
    ]
  }
  ```
</Expandable>

***

## canvas\_get\_page

Get a single page by URL or ID

**Parameters:**

| Parameter        | Type    | Required | Default | Description                    |
| ---------------- | ------- | -------- | ------- | ------------------------------ |
| `course_id`      | integer | Yes      | —       | The ID of the course           |
| `page_url_or_id` | string  | Yes      | —       | The URL slug or ID of the page |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "course_id": {
        "type": "integer",
        "description": "The ID of the course"
      },
      "page_url_or_id": {
        "type": "string",
        "description": "The URL slug or ID of the page"
      }
    },
    "required": [
      "PCID",
      "course_id",
      "page_url_or_id"
    ]
  }
  ```
</Expandable>

***

## canvas\_get\_quiz

Get a single quiz

**Parameters:**

| Parameter   | Type    | Required | Default | Description          |
| ----------- | ------- | -------- | ------- | -------------------- |
| `course_id` | integer | Yes      | —       | The ID of the course |
| `quiz_id`   | integer | Yes      | —       | The ID of the quiz   |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "course_id": {
        "type": "integer",
        "description": "The ID of the course"
      },
      "quiz_id": {
        "type": "integer",
        "description": "The ID of the quiz"
      }
    },
    "required": [
      "PCID",
      "course_id",
      "quiz_id"
    ]
  }
  ```
</Expandable>

***

## canvas\_get\_rubric

Get a single rubric

**Parameters:**

| Parameter   | Type    | Required | Default | Description                |
| ----------- | ------- | -------- | ------- | -------------------------- |
| `course_id` | integer | Yes      | —       | The ID of the course       |
| `rubric_id` | integer | Yes      | —       | The ID of the rubric       |
| `include[]` | string  | No       | —       | Additional data to include |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "course_id": {
        "type": "integer",
        "description": "The ID of the course"
      },
      "rubric_id": {
        "type": "integer",
        "description": "The ID of the rubric"
      },
      "include[]": {
        "type": "string",
        "description": "Additional data to include",
        "enum": [
          "assessments",
          "graded_assessments",
          "peer_assessments",
          "associations",
          "assignment_associations",
          "account_associations"
        ]
      }
    },
    "required": [
      "PCID",
      "course_id",
      "rubric_id"
    ]
  }
  ```
</Expandable>

***

## canvas\_get\_submission

Get a single submission

**Parameters:**

| Parameter       | Type    | Required | Default | Description                                                                                                      |
| --------------- | ------- | -------- | ------- | ---------------------------------------------------------------------------------------------------------------- |
| `course_id`     | integer | Yes      | —       | The ID of the course                                                                                             |
| `assignment_id` | integer | Yes      | —       | The ID of the assignment                                                                                         |
| `user_id`       | integer | Yes      | —       | The ID of the student (Canvas uses the student's user\_id to identify submissions, not a separate submission ID) |
| `include[]`     | string  | No       | —       | Additional data to include                                                                                       |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "course_id": {
        "type": "integer",
        "description": "The ID of the course"
      },
      "assignment_id": {
        "type": "integer",
        "description": "The ID of the assignment"
      },
      "user_id": {
        "type": "integer",
        "description": "The ID of the student (Canvas uses the student's user_id to identify submissions, not a separate submission ID)"
      },
      "include[]": {
        "type": "string",
        "description": "Additional data to include",
        "enum": [
          "submission_history",
          "submission_comments",
          "rubric_assessment",
          "assignment",
          "visibility",
          "course",
          "user",
          "group",
          "read_status"
        ]
      }
    },
    "required": [
      "PCID",
      "course_id",
      "assignment_id",
      "user_id"
    ]
  }
  ```
</Expandable>

***

## canvas\_get\_user\_profile

Get the current user's profile

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## canvas\_grade\_submission

Grade or comment on a submission

**Parameters:**

| Parameter                  | Type    | Required | Default | Description                                                                                                      |
| -------------------------- | ------- | -------- | ------- | ---------------------------------------------------------------------------------------------------------------- |
| `course_id`                | integer | Yes      | —       | The ID of the course                                                                                             |
| `assignment_id`            | integer | Yes      | —       | The ID of the assignment                                                                                         |
| `user_id`                  | integer | Yes      | —       | The ID of the student (Canvas uses the student's user\_id to identify submissions, not a separate submission ID) |
| `comment[text_comment]`    | string  | No       | —       | A text comment on the submission                                                                                 |
| `submission[excuse]`       | boolean | No       | —       | Whether to excuse the student from the assignment                                                                |
| `submission[posted_grade]` | string  | No       | —       | The grade (e.g., '85%', 'B+', 'pass', or a numeric score)                                                        |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "course_id": {
        "type": "integer",
        "description": "The ID of the course"
      },
      "assignment_id": {
        "type": "integer",
        "description": "The ID of the assignment"
      },
      "user_id": {
        "type": "integer",
        "description": "The ID of the student (Canvas uses the student's user_id to identify submissions, not a separate submission ID)"
      },
      "comment[text_comment]": {
        "type": "string",
        "description": "A text comment on the submission"
      },
      "submission[excuse]": {
        "type": "boolean",
        "description": "Whether to excuse the student from the assignment"
      },
      "submission[posted_grade]": {
        "type": "string",
        "description": "The grade (e.g., '85%', 'B+', 'pass', or a numeric score)"
      }
    },
    "required": [
      "PCID",
      "course_id",
      "assignment_id",
      "user_id"
    ]
  }
  ```
</Expandable>

***

## canvas\_list\_account\_courses

List courses in an account

**Parameters:**

| Parameter         | Type    | Required | Default | Description                    |
| ----------------- | ------- | -------- | ------- | ------------------------------ |
| `account_id`      | integer | Yes      | —       | The ID of the account          |
| `search_term`     | string  | No       | —       | Search courses by name or code |
| `state[]`         | string  | No       | —       | Filter by course state         |
| `enrollment_type` | string  | No       | —       | Filter by enrollment type      |
| `per_page`        | integer | No       | —       | Number of results per page     |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "account_id": {
        "type": "integer",
        "description": "The ID of the account"
      },
      "search_term": {
        "type": "string",
        "description": "Search courses by name or code"
      },
      "state[]": {
        "type": "string",
        "description": "Filter by course state",
        "enum": [
          "created",
          "claimed",
          "available",
          "completed",
          "deleted",
          "all"
        ]
      },
      "enrollment_type": {
        "type": "string",
        "description": "Filter by enrollment type"
      },
      "per_page": {
        "type": "integer",
        "description": "Number of results per page"
      }
    },
    "required": [
      "PCID",
      "account_id"
    ]
  }
  ```
</Expandable>

***

## canvas\_list\_account\_users

List users in an account

**Parameters:**

| Parameter     | Type    | Required | Default | Description                   |
| ------------- | ------- | -------- | ------- | ----------------------------- |
| `account_id`  | integer | Yes      | —       | The ID of the account         |
| `search_term` | string  | No       | —       | Search users by name or email |
| `sort`        | string  | No       | —       | Sort by field                 |
| `order`       | string  | No       | —       | Sort order                    |
| `per_page`    | integer | No       | —       | Number of results per page    |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "account_id": {
        "type": "integer",
        "description": "The ID of the account"
      },
      "search_term": {
        "type": "string",
        "description": "Search users by name or email"
      },
      "sort": {
        "type": "string",
        "description": "Sort by field",
        "enum": [
          "username",
          "email",
          "sis_id",
          "last_login"
        ]
      },
      "order": {
        "type": "string",
        "description": "Sort order",
        "enum": [
          "asc",
          "desc"
        ]
      },
      "per_page": {
        "type": "integer",
        "description": "Number of results per page"
      }
    },
    "required": [
      "PCID",
      "account_id"
    ]
  }
  ```
</Expandable>

***

## canvas\_list\_announcements

List announcements across courses

**Parameters:**

| Parameter         | Type    | Required | Default | Description                                                     |
| ----------------- | ------- | -------- | ------- | --------------------------------------------------------------- |
| `context_codes[]` | string  | Yes      | —       | Context codes to retrieve announcements for (e.g., course\_123) |
| `start_date`      | string  | No       | —       | Start of date range                                             |
| `end_date`        | string  | No       | —       | End of date range                                               |
| `active_only`     | boolean | No       | —       | Only return active announcements                                |
| `per_page`        | integer | No       | —       | Number of results per page                                      |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "context_codes[]": {
        "type": "string",
        "description": "Context codes to retrieve announcements for (e.g., course_123)"
      },
      "start_date": {
        "type": "string",
        "description": "Start of date range"
      },
      "end_date": {
        "type": "string",
        "description": "End of date range"
      },
      "active_only": {
        "type": "boolean",
        "description": "Only return active announcements"
      },
      "per_page": {
        "type": "integer",
        "description": "Number of results per page"
      }
    },
    "required": [
      "PCID",
      "context_codes[]"
    ]
  }
  ```
</Expandable>

***

## canvas\_list\_assignment\_groups

List assignment groups in a course

**Parameters:**

| Parameter   | Type    | Required | Default | Description                |
| ----------- | ------- | -------- | ------- | -------------------------- |
| `course_id` | integer | Yes      | —       | The ID of the course       |
| `include[]` | string  | No       | —       | Additional data to include |
| `per_page`  | integer | No       | —       | Number of results per page |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "course_id": {
        "type": "integer",
        "description": "The ID of the course"
      },
      "include[]": {
        "type": "string",
        "description": "Additional data to include",
        "enum": [
          "assignments",
          "discussion_topic",
          "assignment_visibility",
          "submission",
          "score_statistics"
        ]
      },
      "per_page": {
        "type": "integer",
        "description": "Number of results per page"
      }
    },
    "required": [
      "PCID",
      "course_id"
    ]
  }
  ```
</Expandable>

***

## canvas\_list\_assignments

List assignments for a course

**Parameters:**

| Parameter     | Type    | Required | Default | Description                       |
| ------------- | ------- | -------- | ------- | --------------------------------- |
| `course_id`   | integer | Yes      | —       | The ID of the course              |
| `include[]`   | string  | No       | —       | Additional data to include        |
| `search_term` | string  | No       | —       | Search term to filter assignments |
| `order_by`    | string  | No       | —       | Order results by field            |
| `bucket`      | string  | No       | —       | Filter by time bucket             |
| `per_page`    | integer | No       | —       | Number of results per page        |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "course_id": {
        "type": "integer",
        "description": "The ID of the course"
      },
      "include[]": {
        "type": "string",
        "description": "Additional data to include",
        "enum": [
          "submission",
          "assignment_visibility",
          "all_dates",
          "overrides",
          "observed_users",
          "can_edit",
          "score_statistics"
        ]
      },
      "search_term": {
        "type": "string",
        "description": "Search term to filter assignments"
      },
      "order_by": {
        "type": "string",
        "description": "Order results by field",
        "enum": [
          "position",
          "name",
          "due_at"
        ]
      },
      "bucket": {
        "type": "string",
        "description": "Filter by time bucket",
        "enum": [
          "past",
          "overdue",
          "undated",
          "ungraded",
          "unsubmitted",
          "upcoming",
          "future"
        ]
      },
      "per_page": {
        "type": "integer",
        "description": "Number of results per page"
      }
    },
    "required": [
      "PCID",
      "course_id"
    ]
  }
  ```
</Expandable>

***

## canvas\_list\_calendar\_events

List calendar events

**Parameters:**

| Parameter         | Type    | Required | Default | Description                                               |
| ----------------- | ------- | -------- | ------- | --------------------------------------------------------- |
| `type`            | string  | No       | —       | Filter by event type                                      |
| `start_date`      | string  | No       | —       | Start of date range                                       |
| `end_date`        | string  | No       | —       | End of date range                                         |
| `context_codes[]` | string  | No       | —       | Context codes to filter by (e.g., course\_123, user\_456) |
| `per_page`        | integer | No       | —       | Number of results per page                                |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "type": {
        "type": "string",
        "description": "Filter by event type",
        "enum": [
          "event",
          "assignment"
        ]
      },
      "start_date": {
        "type": "string",
        "description": "Start of date range"
      },
      "end_date": {
        "type": "string",
        "description": "End of date range"
      },
      "context_codes[]": {
        "type": "string",
        "description": "Context codes to filter by (e.g., course_123, user_456)"
      },
      "per_page": {
        "type": "integer",
        "description": "Number of results per page"
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## canvas\_list\_conversations

List conversations (inbox messages)

**Parameters:**

| Parameter  | Type    | Required | Default | Description                                |
| ---------- | ------- | -------- | ------- | ------------------------------------------ |
| `scope`    | string  | No       | —       | Filter by conversation scope               |
| `filter[]` | string  | No       | —       | Course or group filter (e.g., course\_123) |
| `per_page` | integer | No       | —       | Number of results per page                 |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "scope": {
        "type": "string",
        "description": "Filter by conversation scope",
        "enum": [
          "unread",
          "starred",
          "archived",
          "sent"
        ]
      },
      "filter[]": {
        "type": "string",
        "description": "Course or group filter (e.g., course_123)"
      },
      "per_page": {
        "type": "integer",
        "description": "Number of results per page"
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## canvas\_list\_course\_users

List users in a course

**Parameters:**

| Parameter           | Type    | Required | Default | Description                   |
| ------------------- | ------- | -------- | ------- | ----------------------------- |
| `course_id`         | integer | Yes      | —       | The ID of the course          |
| `search_term`       | string  | No       | —       | Search users by name or email |
| `enrollment_type[]` | string  | No       | —       | Filter by enrollment type     |
| `include[]`         | string  | No       | —       | Additional data to include    |
| `per_page`          | integer | No       | —       | Number of results per page    |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "course_id": {
        "type": "integer",
        "description": "The ID of the course"
      },
      "search_term": {
        "type": "string",
        "description": "Search users by name or email"
      },
      "enrollment_type[]": {
        "type": "string",
        "description": "Filter by enrollment type",
        "enum": [
          "teacher",
          "student",
          "student_view",
          "ta",
          "observer",
          "designer"
        ]
      },
      "include[]": {
        "type": "string",
        "description": "Additional data to include",
        "enum": [
          "enrollments",
          "locked",
          "avatar_url",
          "test_student",
          "bio",
          "custom_links",
          "current_grading_period_scores",
          "uuid"
        ]
      },
      "per_page": {
        "type": "integer",
        "description": "Number of results per page"
      }
    },
    "required": [
      "PCID",
      "course_id"
    ]
  }
  ```
</Expandable>

***

## canvas\_list\_courses

List courses for the current user

**Parameters:**

| Parameter          | Type    | Required | Default | Description                                |
| ------------------ | ------- | -------- | ------- | ------------------------------------------ |
| `enrollment_type`  | string  | No       | —       | Filter by enrollment type                  |
| `enrollment_state` | string  | No       | —       | Filter by enrollment state                 |
| `state[]`          | string  | No       | —       | Filter by course state                     |
| `include[]`        | string  | No       | —       | Additional data to include in the response |
| `per_page`         | integer | No       | —       | Number of results per page (max 100)       |
| `page`             | integer | No       | —       | Page number                                |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "enrollment_type": {
        "type": "string",
        "description": "Filter by enrollment type",
        "enum": [
          "teacher",
          "student",
          "ta",
          "observer",
          "designer"
        ]
      },
      "enrollment_state": {
        "type": "string",
        "description": "Filter by enrollment state",
        "enum": [
          "active",
          "invited_or_pending",
          "completed"
        ]
      },
      "state[]": {
        "type": "string",
        "description": "Filter by course state",
        "enum": [
          "unpublished",
          "available",
          "completed",
          "deleted"
        ]
      },
      "include[]": {
        "type": "string",
        "description": "Additional data to include in the response",
        "enum": [
          "needs_grading_count",
          "syllabus_body",
          "public_description",
          "total_scores",
          "current_grading_period_scores",
          "term",
          "account",
          "course_progress",
          "sections",
          "storage_quota_used_mb",
          "total_students",
          "passback_status",
          "favorites",
          "teachers",
          "observed_users",
          "tabs",
          "course_image",
          "banner_image",
          "concluded"
        ]
      },
      "per_page": {
        "type": "integer",
        "description": "Number of results per page (max 100)"
      },
      "page": {
        "type": "integer",
        "description": "Page number"
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## canvas\_list\_discussion\_topics

List discussion topics in a course

**Parameters:**

| Parameter     | Type    | Required | Default | Description                  |
| ------------- | ------- | -------- | ------- | ---------------------------- |
| `course_id`   | integer | Yes      | —       | The ID of the course         |
| `order_by`    | string  | No       | —       | Order results by field       |
| `scope`       | string  | No       | —       | Filter by scope              |
| `search_term` | string  | No       | —       | Search term to filter topics |
| `per_page`    | integer | No       | —       | Number of results per page   |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "course_id": {
        "type": "integer",
        "description": "The ID of the course"
      },
      "order_by": {
        "type": "string",
        "description": "Order results by field",
        "enum": [
          "position",
          "recent_activity",
          "title"
        ]
      },
      "scope": {
        "type": "string",
        "description": "Filter by scope",
        "enum": [
          "locked",
          "unlocked",
          "pinned",
          "unpinned"
        ]
      },
      "search_term": {
        "type": "string",
        "description": "Search term to filter topics"
      },
      "per_page": {
        "type": "integer",
        "description": "Number of results per page"
      }
    },
    "required": [
      "PCID",
      "course_id"
    ]
  }
  ```
</Expandable>

***

## canvas\_list\_enrollments

List enrollments in a course

**Parameters:**

| Parameter   | Type    | Required | Default | Description                |
| ----------- | ------- | -------- | ------- | -------------------------- |
| `course_id` | integer | Yes      | —       | The ID of the course       |
| `type[]`    | string  | No       | —       | Filter by enrollment type  |
| `state[]`   | string  | No       | —       | Filter by enrollment state |
| `per_page`  | integer | No       | —       | Number of results per page |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "course_id": {
        "type": "integer",
        "description": "The ID of the course"
      },
      "type[]": {
        "type": "string",
        "description": "Filter by enrollment type",
        "enum": [
          "StudentEnrollment",
          "TeacherEnrollment",
          "TaEnrollment",
          "DesignerEnrollment",
          "ObserverEnrollment"
        ]
      },
      "state[]": {
        "type": "string",
        "description": "Filter by enrollment state",
        "enum": [
          "active",
          "invited",
          "creation_pending",
          "deleted",
          "rejected",
          "completed",
          "inactive",
          "current_and_invited",
          "current_and_future",
          "current_and_concluded"
        ]
      },
      "per_page": {
        "type": "integer",
        "description": "Number of results per page"
      }
    },
    "required": [
      "PCID",
      "course_id"
    ]
  }
  ```
</Expandable>

***

## canvas\_list\_files

List files in a course

**Parameters:**

| Parameter         | Type    | Required | Default | Description                |
| ----------------- | ------- | -------- | ------- | -------------------------- |
| `course_id`       | integer | Yes      | —       | The ID of the course       |
| `search_term`     | string  | No       | —       | Search files by name       |
| `content_types[]` | string  | No       | —       | Filter by content type     |
| `sort`            | string  | No       | —       | Sort by field              |
| `order`           | string  | No       | —       | Sort order                 |
| `per_page`        | integer | No       | —       | Number of results per page |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "course_id": {
        "type": "integer",
        "description": "The ID of the course"
      },
      "search_term": {
        "type": "string",
        "description": "Search files by name"
      },
      "content_types[]": {
        "type": "string",
        "description": "Filter by content type"
      },
      "sort": {
        "type": "string",
        "description": "Sort by field",
        "enum": [
          "name",
          "size",
          "created_at",
          "updated_at",
          "content_type",
          "user"
        ]
      },
      "order": {
        "type": "string",
        "description": "Sort order",
        "enum": [
          "asc",
          "desc"
        ]
      },
      "per_page": {
        "type": "integer",
        "description": "Number of results per page"
      }
    },
    "required": [
      "PCID",
      "course_id"
    ]
  }
  ```
</Expandable>

***

## canvas\_list\_folders

List folders in a course

**Parameters:**

| Parameter   | Type    | Required | Default | Description                |
| ----------- | ------- | -------- | ------- | -------------------------- |
| `course_id` | integer | Yes      | —       | The ID of the course       |
| `per_page`  | integer | No       | —       | Number of results per page |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "course_id": {
        "type": "integer",
        "description": "The ID of the course"
      },
      "per_page": {
        "type": "integer",
        "description": "Number of results per page"
      }
    },
    "required": [
      "PCID",
      "course_id"
    ]
  }
  ```
</Expandable>

***

## canvas\_list\_module\_items

List items in a module

**Parameters:**

| Parameter   | Type    | Required | Default | Description                |
| ----------- | ------- | -------- | ------- | -------------------------- |
| `course_id` | integer | Yes      | —       | The ID of the course       |
| `module_id` | integer | Yes      | —       | The ID of the module       |
| `include[]` | string  | No       | —       | Additional data to include |
| `per_page`  | integer | No       | —       | Number of results per page |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "course_id": {
        "type": "integer",
        "description": "The ID of the course"
      },
      "module_id": {
        "type": "integer",
        "description": "The ID of the module"
      },
      "include[]": {
        "type": "string",
        "description": "Additional data to include",
        "enum": [
          "content_details"
        ]
      },
      "per_page": {
        "type": "integer",
        "description": "Number of results per page"
      }
    },
    "required": [
      "PCID",
      "course_id",
      "module_id"
    ]
  }
  ```
</Expandable>

***

## canvas\_list\_modules

List modules in a course

**Parameters:**

| Parameter     | Type    | Required | Default | Description                   |
| ------------- | ------- | -------- | ------- | ----------------------------- |
| `course_id`   | integer | Yes      | —       | The ID of the course          |
| `include[]`   | string  | No       | —       | Additional data to include    |
| `search_term` | string  | No       | —       | Search term to filter modules |
| `per_page`    | integer | No       | —       | Number of results per page    |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "course_id": {
        "type": "integer",
        "description": "The ID of the course"
      },
      "include[]": {
        "type": "string",
        "description": "Additional data to include",
        "enum": [
          "items",
          "content_details"
        ]
      },
      "search_term": {
        "type": "string",
        "description": "Search term to filter modules"
      },
      "per_page": {
        "type": "integer",
        "description": "Number of results per page"
      }
    },
    "required": [
      "PCID",
      "course_id"
    ]
  }
  ```
</Expandable>

***

## canvas\_list\_pages

List pages in a course

**Parameters:**

| Parameter     | Type    | Required | Default | Description                 |
| ------------- | ------- | -------- | ------- | --------------------------- |
| `course_id`   | integer | Yes      | —       | The ID of the course        |
| `sort`        | string  | No       | —       | Sort pages by field         |
| `search_term` | string  | No       | —       | Search term to filter pages |
| `published`   | boolean | No       | —       | Filter by published status  |
| `per_page`    | integer | No       | —       | Number of results per page  |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "course_id": {
        "type": "integer",
        "description": "The ID of the course"
      },
      "sort": {
        "type": "string",
        "description": "Sort pages by field",
        "enum": [
          "title",
          "created_at",
          "updated_at"
        ]
      },
      "search_term": {
        "type": "string",
        "description": "Search term to filter pages"
      },
      "published": {
        "type": "boolean",
        "description": "Filter by published status"
      },
      "per_page": {
        "type": "integer",
        "description": "Number of results per page"
      }
    },
    "required": [
      "PCID",
      "course_id"
    ]
  }
  ```
</Expandable>

***

## canvas\_list\_quizzes

List quizzes in a course

**Parameters:**

| Parameter     | Type    | Required | Default | Description                   |
| ------------- | ------- | -------- | ------- | ----------------------------- |
| `course_id`   | integer | Yes      | —       | The ID of the course          |
| `search_term` | string  | No       | —       | Search term to filter quizzes |
| `per_page`    | integer | No       | —       | Number of results per page    |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "course_id": {
        "type": "integer",
        "description": "The ID of the course"
      },
      "search_term": {
        "type": "string",
        "description": "Search term to filter quizzes"
      },
      "per_page": {
        "type": "integer",
        "description": "Number of results per page"
      }
    },
    "required": [
      "PCID",
      "course_id"
    ]
  }
  ```
</Expandable>

***

## canvas\_list\_rubrics

List rubrics in a course

**Parameters:**

| Parameter   | Type    | Required | Default | Description                |
| ----------- | ------- | -------- | ------- | -------------------------- |
| `course_id` | integer | Yes      | —       | The ID of the course       |
| `per_page`  | integer | No       | —       | Number of results per page |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "course_id": {
        "type": "integer",
        "description": "The ID of the course"
      },
      "per_page": {
        "type": "integer",
        "description": "Number of results per page"
      }
    },
    "required": [
      "PCID",
      "course_id"
    ]
  }
  ```
</Expandable>

***

## canvas\_list\_submissions

List assignment submissions

**Parameters:**

| Parameter       | Type    | Required | Default | Description                |
| --------------- | ------- | -------- | ------- | -------------------------- |
| `course_id`     | integer | Yes      | —       | The ID of the course       |
| `assignment_id` | integer | Yes      | —       | The ID of the assignment   |
| `include[]`     | string  | No       | —       | Additional data to include |
| `per_page`      | integer | No       | —       | Number of results per page |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "course_id": {
        "type": "integer",
        "description": "The ID of the course"
      },
      "assignment_id": {
        "type": "integer",
        "description": "The ID of the assignment"
      },
      "include[]": {
        "type": "string",
        "description": "Additional data to include",
        "enum": [
          "submission_history",
          "submission_comments",
          "rubric_assessment",
          "assignment",
          "visibility",
          "course",
          "user",
          "group",
          "read_status"
        ]
      },
      "per_page": {
        "type": "integer",
        "description": "Number of results per page"
      }
    },
    "required": [
      "PCID",
      "course_id",
      "assignment_id"
    ]
  }
  ```
</Expandable>

***

## canvas\_list\_todo\_items

List the current user's TODO items

**Parameters:**

| Parameter  | Type    | Required | Default | Description                |
| ---------- | ------- | -------- | ------- | -------------------------- |
| `per_page` | integer | No       | —       | Number of results per page |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "per_page": {
        "type": "integer",
        "description": "Number of results per page"
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## canvas\_post\_discussion\_entry

Post a new entry to a discussion topic

**Parameters:**

| Parameter   | Type    | Required | Default | Description                             |
| ----------- | ------- | -------- | ------- | --------------------------------------- |
| `course_id` | integer | Yes      | —       | The ID of the course                    |
| `topic_id`  | integer | Yes      | —       | The ID of the discussion topic          |
| `message`   | string  | Yes      | —       | The body of the discussion entry (HTML) |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "course_id": {
        "type": "integer",
        "description": "The ID of the course"
      },
      "topic_id": {
        "type": "integer",
        "description": "The ID of the discussion topic"
      },
      "message": {
        "type": "string",
        "description": "The body of the discussion entry (HTML)"
      }
    },
    "required": [
      "PCID",
      "course_id",
      "topic_id",
      "message"
    ]
  }
  ```
</Expandable>

***

## canvas\_submit\_assignment

Submit an assignment

**Parameters:**

| Parameter                     | Type    | Required | Default | Description                                          |
| ----------------------------- | ------- | -------- | ------- | ---------------------------------------------------- |
| `course_id`                   | integer | Yes      | —       | The ID of the course                                 |
| `assignment_id`               | integer | Yes      | —       | The ID of the assignment                             |
| `comment[text_comment]`       | string  | No       | —       | A comment to include with the submission             |
| `submission[body]`            | string  | No       | —       | The body of the submission (for online\_text\_entry) |
| `submission[submission_type]` | string  | Yes      | —       | The type of submission                               |
| `submission[url]`             | string  | No       | —       | The URL of the submission (for online\_url)          |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "course_id": {
        "type": "integer",
        "description": "The ID of the course"
      },
      "assignment_id": {
        "type": "integer",
        "description": "The ID of the assignment"
      },
      "comment[text_comment]": {
        "type": "string",
        "description": "A comment to include with the submission"
      },
      "submission[body]": {
        "type": "string",
        "description": "The body of the submission (for online_text_entry)"
      },
      "submission[submission_type]": {
        "type": "string",
        "description": "The type of submission",
        "enum": [
          "online_text_entry",
          "online_url",
          "online_upload",
          "media_recording",
          "basic_lti_launch",
          "student_annotation"
        ]
      },
      "submission[url]": {
        "type": "string",
        "description": "The URL of the submission (for online_url)"
      }
    },
    "required": [
      "PCID",
      "course_id",
      "assignment_id",
      "submission[submission_type]"
    ]
  }
  ```
</Expandable>

***

## canvas\_update\_assignment

Update an existing assignment

**Parameters:**

| Parameter                        | Type    | Required | Default | Description                         |
| -------------------------------- | ------- | -------- | ------- | ----------------------------------- |
| `course_id`                      | integer | Yes      | —       | The ID of the course                |
| `assignment_id`                  | integer | Yes      | —       | The ID of the assignment            |
| `assignment[description]`        | string  | No       | —       | The assignment description (HTML)   |
| `assignment[due_at]`             | string  | No       | —       | Due date                            |
| `assignment[grading_type]`       | string  | No       | —       | Grading type                        |
| `assignment[name]`               | string  | No       | —       | The assignment name                 |
| `assignment[points_possible]`    | number  | No       | —       | Maximum points                      |
| `assignment[published]`          | boolean | No       | —       | Whether the assignment is published |
| `assignment[submission_types][]` | string  | No       | —       | Allowed submission types            |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "course_id": {
        "type": "integer",
        "description": "The ID of the course"
      },
      "assignment_id": {
        "type": "integer",
        "description": "The ID of the assignment"
      },
      "assignment[description]": {
        "type": "string",
        "description": "The assignment description (HTML)"
      },
      "assignment[due_at]": {
        "type": "string",
        "description": "Due date"
      },
      "assignment[grading_type]": {
        "type": "string",
        "description": "Grading type",
        "enum": [
          "pass_fail",
          "percent",
          "letter_grade",
          "gpa_scale",
          "points",
          "not_graded"
        ]
      },
      "assignment[name]": {
        "type": "string",
        "description": "The assignment name"
      },
      "assignment[points_possible]": {
        "type": "number",
        "description": "Maximum points"
      },
      "assignment[published]": {
        "type": "boolean",
        "description": "Whether the assignment is published"
      },
      "assignment[submission_types][]": {
        "type": "string",
        "description": "Allowed submission types",
        "enum": [
          "online_quiz",
          "none",
          "on_paper",
          "discussion_topic",
          "external_tool",
          "online_upload",
          "online_text_entry",
          "online_url",
          "media_recording",
          "student_annotation"
        ]
      }
    },
    "required": [
      "PCID",
      "course_id",
      "assignment_id"
    ]
  }
  ```
</Expandable>

***

## canvas\_update\_course

Update an existing course

**Parameters:**

| Parameter               | Type    | Required | Default | Description              |
| ----------------------- | ------- | -------- | ------- | ------------------------ |
| `course_id`             | integer | Yes      | —       | The ID of the course     |
| `course[course_code]`   | string  | No       | —       | The course code          |
| `course[default_view]`  | string  | No       | —       | Default course view      |
| `course[end_at]`        | string  | No       | —       | Course end date          |
| `course[name]`          | string  | No       | —       | The name of the course   |
| `course[start_at]`      | string  | No       | —       | Course start date        |
| `course[syllabus_body]` | string  | No       | —       | The syllabus body (HTML) |
| `course[time_zone]`     | string  | No       | —       | The course time zone     |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for the authenticated connection"
      },
      "course_id": {
        "type": "integer",
        "description": "The ID of the course"
      },
      "course[course_code]": {
        "type": "string",
        "description": "The course code"
      },
      "course[default_view]": {
        "type": "string",
        "description": "Default course view",
        "enum": [
          "feed",
          "wiki",
          "modules",
          "syllabus",
          "assignments"
        ]
      },
      "course[end_at]": {
        "type": "string",
        "description": "Course end date"
      },
      "course[name]": {
        "type": "string",
        "description": "The name of the course"
      },
      "course[start_at]": {
        "type": "string",
        "description": "Course start date"
      },
      "course[syllabus_body]": {
        "type": "string",
        "description": "The syllabus body (HTML)"
      },
      "course[time_zone]": {
        "type": "string",
        "description": "The course time zone"
      }
    },
    "required": [
      "PCID",
      "course_id"
    ]
  }
  ```
</Expandable>
