clickup · Capability

ClickUp Tasks API — Tasks

ClickUp Tasks API — Tasks. 11 operations. Lead operation: Get tasks in a list. Self-contained Naftiko capability covering one Clickup business surface.

Run with Naftiko ClickupTasks

What You Can Do

GET
Gettasks — Get tasks in a list
/v1/list/{list-id}/task
POST
Createtask — Create a task
/v1/list/{list-id}/task
GET
Gettaskmembers — Get task members
/v1/list/{list-id}/task/{task-id}/member
GET
Getbulktasktimeinstatus — Get bulk task time in status
/v1/task/bulk-time-in-status/task-ids
GET
Gettask — Get a task
/v1/task/{task-id}
PUT
Updatetask — Update a task
/v1/task/{task-id}
DELETE
Deletetask — Delete a task
/v1/task/{task-id}
POST
Addtagtotask — Add tag to task
/v1/task/{task-id}/tag/{tag-name}
DELETE
Removetagfromtask — Remove tag from task
/v1/task/{task-id}/tag/{tag-name}
GET
Gettasktimeinstatus — Get task time in status
/v1/task/{task-id}/time-in-status
GET
Getfilteredteamtasks — Get filtered team tasks
/v1/team/{team-id}/task

MCP Tools

get-tasks-list

Get tasks in a list

read-only idempotent
create-task

Create a task

get-task-members

Get task members

read-only idempotent
get-bulk-task-time-status

Get bulk task time in status

read-only idempotent
get-task

Get a task

read-only idempotent
update-task

Update a task

idempotent
delete-task

Delete a task

idempotent
add-tag-task

Add tag to task

remove-tag-task

Remove tag from task

idempotent
get-task-time-status

Get task time in status

read-only idempotent
get-filtered-team-tasks

Get filtered team tasks

read-only idempotent

Capability Spec

tasks-tasks.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: ClickUp Tasks API — Tasks
  description: 'ClickUp Tasks API — Tasks. 11 operations. Lead operation: Get tasks in a list. Self-contained Naftiko capability
    covering one Clickup business surface.'
  tags:
  - Clickup
  - Tasks
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    CLICKUP_API_KEY: CLICKUP_API_KEY
capability:
  consumes:
  - type: http
    namespace: tasks-tasks
    baseUri: https://api.clickup.com/api/v2
    description: ClickUp Tasks API — Tasks business capability. Self-contained, no shared references.
    resources:
    - name: list-list_id-task
      path: /list/{list_id}/task
      operations:
      - name: gettasks
        method: GET
        description: Get tasks in a list
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: archived
          in: query
          type: boolean
          description: Include archived tasks in the response.
        - name: include_markdown_description
          in: query
          type: boolean
          description: Return task descriptions in Markdown format.
        - name: page
          in: query
          type: integer
          description: Page number for pagination. Starts at 0.
        - name: order_by
          in: query
          type: string
          description: Field to order results by.
        - name: reverse
          in: query
          type: boolean
          description: Reverse the order of results.
        - name: subtasks
          in: query
          type: boolean
          description: Include subtasks in the response.
        - name: statuses[]
          in: query
          type: array
          description: Filter by task status.
        - name: include_closed
          in: query
          type: boolean
          description: Include closed tasks in the response.
        - name: assignees[]
          in: query
          type: array
          description: Filter by assignee user IDs.
        - name: tags[]
          in: query
          type: array
          description: Filter by tag names.
        - name: due_date_gt
          in: query
          type: integer
          description: Filter for tasks with due date greater than this Unix timestamp in milliseconds.
        - name: due_date_lt
          in: query
          type: integer
          description: Filter for tasks with due date less than this Unix timestamp in milliseconds.
        - name: date_created_gt
          in: query
          type: integer
          description: Filter for tasks created after this Unix timestamp in milliseconds.
        - name: date_created_lt
          in: query
          type: integer
          description: Filter for tasks created before this Unix timestamp in milliseconds.
        - name: date_updated_gt
          in: query
          type: integer
          description: Filter for tasks updated after this Unix timestamp in milliseconds.
        - name: date_updated_lt
          in: query
          type: integer
          description: Filter for tasks updated before this Unix timestamp in milliseconds.
        - name: custom_fields
          in: query
          type: string
          description: Filter by custom field values. Provided as a JSON array of objects.
      - name: createtask
        method: POST
        description: Create a task
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: custom_task_ids
          in: query
          type: boolean
          description: If you want to reference a task by its custom task ID, this value must be true.
        - name: team_id
          in: query
          type: integer
          description: Required when custom_task_ids is set to true. The Workspace ID.
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: list-list_id-task-task_id-member
      path: /list/{list_id}/task/{task_id}/member
      operations:
      - name: gettaskmembers
        method: GET
        description: Get task members
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: task-bulk_time_in_status-task_ids
      path: /task/bulk_time_in_status/task_ids
      operations:
      - name: getbulktasktimeinstatus
        method: GET
        description: Get bulk task time in status
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: task_ids[]
          in: query
          type: array
          description: Array of task IDs to retrieve time in status data for.
          required: true
    - name: task-task_id
      path: /task/{task_id}
      operations:
      - name: gettask
        method: GET
        description: Get a task
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: custom_task_ids
          in: query
          type: boolean
          description: If you want to reference a task by its custom task ID, this value must be true.
        - name: team_id
          in: query
          type: integer
          description: Required when custom_task_ids is set to true. The Workspace ID.
        - name: include_subtasks
          in: query
          type: boolean
          description: Include subtasks in the response.
        - name: include_markdown_description
          in: query
          type: boolean
          description: Return the task description in Markdown format.
      - name: updatetask
        method: PUT
        description: Update a task
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: custom_task_ids
          in: query
          type: boolean
          description: If you want to reference a task by its custom task ID, this value must be true.
        - name: team_id
          in: query
          type: integer
          description: Required when custom_task_ids is set to true. The Workspace ID.
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: deletetask
        method: DELETE
        description: Delete a task
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: custom_task_ids
          in: query
          type: boolean
          description: If you want to reference a task by its custom task ID, this value must be true.
        - name: team_id
          in: query
          type: integer
          description: Required when custom_task_ids is set to true. The Workspace ID.
    - name: task-task_id-tag-tag_name
      path: /task/{task_id}/tag/{tag_name}
      operations:
      - name: addtagtotask
        method: POST
        description: Add tag to task
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: tag_name
          in: path
          type: string
          description: The name of the tag to add.
          required: true
      - name: removetagfromtask
        method: DELETE
        description: Remove tag from task
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: tag_name
          in: path
          type: string
          description: The name of the tag to remove.
          required: true
    - name: task-task_id-time_in_status
      path: /task/{task_id}/time_in_status
      operations:
      - name: gettasktimeinstatus
        method: GET
        description: Get task time in status
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: team-team_id-task
      path: /team/{team_id}/task
      operations:
      - name: getfilteredteamtasks
        method: GET
        description: Get filtered team tasks
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: page
          in: query
          type: integer
          description: Page number for pagination. Starts at 0.
        - name: order_by
          in: query
          type: string
          description: Field to order results by.
        - name: reverse
          in: query
          type: boolean
          description: Reverse the order of results.
        - name: subtasks
          in: query
          type: boolean
          description: Include subtasks in the response.
        - name: statuses[]
          in: query
          type: array
          description: Filter by task statuses.
        - name: include_closed
          in: query
          type: boolean
          description: Include closed tasks.
        - name: assignees[]
          in: query
          type: array
          description: Filter by assignee user IDs.
        - name: tags[]
          in: query
          type: array
          description: Filter by tag names.
        - name: due_date_gt
          in: query
          type: integer
          description: Filter for tasks with due date after this Unix timestamp in milliseconds.
        - name: due_date_lt
          in: query
          type: integer
          description: Filter for tasks with due date before this Unix timestamp in milliseconds.
        - name: date_created_gt
          in: query
          type: integer
          description: Filter for tasks created after this Unix timestamp in milliseconds.
        - name: date_created_lt
          in: query
          type: integer
          description: Filter for tasks created before this Unix timestamp in milliseconds.
        - name: date_updated_gt
          in: query
          type: integer
          description: Filter for tasks updated after this Unix timestamp in milliseconds.
        - name: date_updated_lt
          in: query
          type: integer
          description: Filter for tasks updated before this Unix timestamp in milliseconds.
        - name: list_ids[]
          in: query
          type: array
          description: Filter by list IDs.
        - name: space_ids[]
          in: query
          type: array
          description: Filter by space IDs.
        - name: project_ids[]
          in: query
          type: array
          description: Filter by folder (project) IDs.
    authentication:
      type: bearer
      token: '{{env.CLICKUP_API_KEY}}'
  exposes:
  - type: rest
    namespace: tasks-tasks-rest
    port: 8080
    description: REST adapter for ClickUp Tasks API — Tasks. One Spectral-compliant resource per consumed operation, prefixed
      with /v1.
    resources:
    - path: /v1/list/{list-id}/task
      name: list-list-id-task
      description: REST surface for list-list_id-task.
      operations:
      - method: GET
        name: gettasks
        description: Get tasks in a list
        call: tasks-tasks.gettasks
        with:
          archived: rest.archived
          include_markdown_description: rest.include_markdown_description
          page: rest.page
          order_by: rest.order_by
          reverse: rest.reverse
          subtasks: rest.subtasks
          statuses[]: rest.statuses[]
          include_closed: rest.include_closed
          assignees[]: rest.assignees[]
          tags[]: rest.tags[]
          due_date_gt: rest.due_date_gt
          due_date_lt: rest.due_date_lt
          date_created_gt: rest.date_created_gt
          date_created_lt: rest.date_created_lt
          date_updated_gt: rest.date_updated_gt
          date_updated_lt: rest.date_updated_lt
          custom_fields: rest.custom_fields
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: createtask
        description: Create a task
        call: tasks-tasks.createtask
        with:
          custom_task_ids: rest.custom_task_ids
          team_id: rest.team_id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/list/{list-id}/task/{task-id}/member
      name: list-list-id-task-task-id-member
      description: REST surface for list-list_id-task-task_id-member.
      operations:
      - method: GET
        name: gettaskmembers
        description: Get task members
        call: tasks-tasks.gettaskmembers
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/task/bulk-time-in-status/task-ids
      name: task-bulk-time-in-status-task-ids
      description: REST surface for task-bulk_time_in_status-task_ids.
      operations:
      - method: GET
        name: getbulktasktimeinstatus
        description: Get bulk task time in status
        call: tasks-tasks.getbulktasktimeinstatus
        with:
          task_ids[]: rest.task_ids[]
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/task/{task-id}
      name: task-task-id
      description: REST surface for task-task_id.
      operations:
      - method: GET
        name: gettask
        description: Get a task
        call: tasks-tasks.gettask
        with:
          custom_task_ids: rest.custom_task_ids
          team_id: rest.team_id
          include_subtasks: rest.include_subtasks
          include_markdown_description: rest.include_markdown_description
        outputParameters:
        - type: object
          mapping: $.
      - method: PUT
        name: updatetask
        description: Update a task
        call: tasks-tasks.updatetask
        with:
          custom_task_ids: rest.custom_task_ids
          team_id: rest.team_id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deletetask
        description: Delete a task
        call: tasks-tasks.deletetask
        with:
          custom_task_ids: rest.custom_task_ids
          team_id: rest.team_id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/task/{task-id}/tag/{tag-name}
      name: task-task-id-tag-tag-name
      description: REST surface for task-task_id-tag-tag_name.
      operations:
      - method: POST
        name: addtagtotask
        description: Add tag to task
        call: tasks-tasks.addtagtotask
        with:
          tag_name: rest.tag_name
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: removetagfromtask
        description: Remove tag from task
        call: tasks-tasks.removetagfromtask
        with:
          tag_name: rest.tag_name
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/task/{task-id}/time-in-status
      name: task-task-id-time-in-status
      description: REST surface for task-task_id-time_in_status.
      operations:
      - method: GET
        name: gettasktimeinstatus
        description: Get task time in status
        call: tasks-tasks.gettasktimeinstatus
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/team/{team-id}/task
      name: team-team-id-task
      description: REST surface for team-team_id-task.
      operations:
      - method: GET
        name: getfilteredteamtasks
        description: Get filtered team tasks
        call: tasks-tasks.getfilteredteamtasks
        with:
          page: rest.page
          order_by: rest.order_by
          reverse: rest.reverse
          subtasks: rest.subtasks
          statuses[]: rest.statuses[]
          include_closed: rest.include_closed
          assignees[]: rest.assignees[]
          tags[]: rest.tags[]
          due_date_gt: rest.due_date_gt
          due_date_lt: rest.due_date_lt
          date_created_gt: rest.date_created_gt
          date_created_lt: rest.date_created_lt
          date_updated_gt: rest.date_updated_gt
          date_updated_lt: rest.date_updated_lt
          list_ids[]: rest.list_ids[]
          space_ids[]: rest.space_ids[]
          project_ids[]: rest.project_ids[]
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: tasks-tasks-mcp
    port: 9090
    transport: http
    description: MCP adapter for ClickUp Tasks API — Tasks. One tool per consumed operation, routed inline through this capability's
      consumes block.
    tools:
    - name: get-tasks-list
      description: Get tasks in a list
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: tasks-tasks.gettasks
      with:
        archived: tools.archived
        include_markdown_description: tools.include_markdown_description
        page: tools.page
        order_by: tools.order_by
        reverse: tools.reverse
        subtasks: tools.subtasks
        statuses[]: tools.statuses[]
        include_closed: tools.include_closed
        assignees[]: tools.assignees[]
        tags[]: tools.tags[]
        due_date_gt: tools.due_date_gt
        due_date_lt: tools.due_date_lt
        date_created_gt: tools.date_created_gt
        date_created_lt: tools.date_created_lt
        date_updated_gt: tools.date_updated_gt
        date_updated_lt: tools.date_updated_lt
        custom_fields: tools.custom_fields
      outputParameters:
      - type: object
        mapping: $.
    - name: create-task
      description: Create a task
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: tasks-tasks.createtask
      with:
        custom_task_ids: tools.custom_task_ids
        team_id: tools.team_id
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: get-task-members
      description: Get task members
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: tasks-tasks.gettaskmembers
      outputParameters:
      - type: object
        mapping: $.
    - name: get-bulk-task-time-status
      description: Get bulk task time in status
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: tasks-tasks.getbulktasktimeinstatus
      with:
        task_ids[]: tools.task_ids[]
      outputParameters:
      - type: object
        mapping: $.
    - name: get-task
      description: Get a task
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: tasks-tasks.gettask
      with:
        custom_task_ids: tools.custom_task_ids
        team_id: tools.team_id
        include_subtasks: tools.include_subtasks
        include_markdown_description: tools.include_markdown_description
      outputParameters:
      - type: object
        mapping: $.
    - name: update-task
      description: Update a task
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: tasks-tasks.updatetask
      with:
        custom_task_ids: tools.custom_task_ids
        team_id: tools.team_id
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: delete-task
      description: Delete a task
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: tasks-tasks.deletetask
      with:
        custom_task_ids: tools.custom_task_ids
        team_id: tools.team_id
      outputParameters:
      - type: object
        mapping: $.
    - name: add-tag-task
      description: Add tag to task
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: tasks-tasks.addtagtotask
      with:
        tag_name: tools.tag_name
      outputParameters:
      - type: object
        mapping: $.
    - name: remove-tag-task
      description: Remove tag from task
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: tasks-tasks.removetagfromtask
      with:
        tag_name: tools.tag_name
      outputParameters:
      - type: object
        mapping: $.
    - name: get-task-time-status
      description: Get task time in status
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: tasks-tasks.gettasktimeinstatus
      outputParameters:
      - type: object
        mapping: $.
    - name: get-filtered-team-tasks
      description: Get filtered team tasks
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: tasks-tasks.getfilteredteamtasks
      with:
        page: tools.page
        order_by: tools.order_by
        reverse: tools.reverse
        subtasks: tools.subtasks
        statuses[]: tools.statuses[]
        include_closed: tools.include_closed
        assignees[]: tools.assignees[]
        tags[]: tools.tags[]
        due_date_gt: tools.due_date_gt
        due_date_lt: tools.due_date_lt
        date_created_gt: tools.date_created_gt
        date_created_lt: tools.date_created_lt
        date_updated_gt: tools.date_updated_gt
        date_updated_lt: tools.date_updated_lt
        list_ids[]: tools.list_ids[]
        space_ids[]: tools.space_ids[]
        project_ids[]: tools.project_ids[]
      outputParameters:
      - type: object
        mapping: $.