Skip to main content
Glama

update_task

Update specific fields of a ClickUp task without overwriting others. Supports incremental assignee changes via add/remove.

Instructions

Update any field of a task — pass only the fields you want to change. For assignees, assignees replaces the whole set, while assignees_add/assignees_rem change them incrementally. Returns the updated task.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
task_idYesID of the task to update.
nameNoTask name/title.
descriptionNoPlain-text task description.
markdown_contentNoMarkdown task description. Takes precedence over `description` if both are given.
statusNoStatus name (must exist in the task's List, e.g. 'to do', 'in progress', 'complete').
priorityNoPriority: 1=urgent, 2=high, 3=normal, 4=low; null clears it.
due_dateNoDue date (natural language, ISO, or epoch ms).
due_date_timeNoIf true, the due date includes a specific time of day.
start_dateNoStart date (natural language, ISO, or epoch ms).
start_date_timeNoIf true, the start date includes a specific time of day.
time_estimateNoTime estimate in milliseconds.
assigneesNoFull set of assignee user ids. On update this REPLACES the current assignees (use assignees_add/assignees_rem for incremental changes).
tagsNoTag names to set on the task (must already exist in the Space).
parentNoParent task id; set to make this task a subtask of that parent.
custom_fieldsNoArray of custom field assignments as { id, value } objects.
custom_item_idNoCustom task type id (from `get_custom_task_types`); null for the default Task type.
archivedNoSet true to archive the task, false to unarchive it.
assignees_addNoUser ids to ADD as assignees (incremental, leaves others in place).
assignees_remNoUser ids to REMOVE from assignees (incremental).
custom_task_idsNoSet true to treat `task_id` as a custom task ID instead of a native ClickUp ID. Requires `team_id`.
team_idNoTeam/Workspace ID. Falls back to CLICKUP_TEAM_ID when omitted.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed21 schema fields changedv1.0.1
    • addedInput schema / properties / archived / description
      Added value: +"Set true to archive the task, false to unarchive it."
    • changedInput schema / properties / assignees_add / description
      Previous value: -"Assignees to add (incremental)."New value: +"User ids to ADD as assignees (incremental, leaves others in place)."
    • changedInput schema / properties / assignees_rem / description
      Previous value: -"Assignees to remove (incremental)."New value: +"User ids to REMOVE from assignees (incremental)."
    • changedInput schema / properties / custom_fields / description
      Previous value: -"Array of { id, value } custom field assignments."New value: +"Array of custom field assignments as { id, value } objects."
    • addedInput schema / properties / custom_fields / items / properties / id / description
      Added value: +"Custom field id."
    • addedInput schema / properties / custom_fields / items / properties / value / description
      Added value: +"Value in the shape required by the field's type."
    • changedInput schema / properties / custom_item_id / description
      Previous value: -"Custom task type id."New value: +"Custom task type id (from `get_custom_task_types`); null for the default Task type."
    • changedInput schema / properties / custom_task_ids / description
      Previous value: -"Treat task_id as a custom id (requires team_id)."New value: +"Set true to treat `task_id` as a custom task ID instead of a native ClickUp ID. Requires `team_id`."
    • changedInput schema / properties / description / description
      Previous value: -"Plain-text description."New value: +"Plain-text task description."
    • changedInput schema / properties / due_date / description
      Previous value: -"Date as ISO string, epoch ms, or relative (\"tomorrow\", \"in 3 days\", \"+2h\")."New value: +"Due date (natural language, ISO, or epoch ms)."
    • addedInput schema / properties / due_date_time / description
      Added value: +"If true, the due date includes a specific time of day."
    • changedInput schema / properties / markdown_content / description
      Previous value: -"Markdown description (overrides description)."New value: +"Markdown task description. Takes precedence over `description` if both are given."
    • addedInput schema / properties / name / description
      Added value: +"Task name/title."
    • changedInput schema / properties / parent / description
      Previous value: -"Parent task id (makes this a subtask)."New value: +"Parent task id; set to make this task a subtask of that parent."
    • changedInput schema / properties / priority / description
      Previous value: -"1=urgent .. 4=low, null clears."New value: +"Priority: 1=urgent, 2=high, 3=normal, 4=low; null clears it."
    • changedInput schema / properties / start_date / description
      Previous value: -"Date as ISO string, epoch ms, or relative (\"tomorrow\", \"in 3 days\", \"+2h\")."New value: +"Start date (natural language, ISO, or epoch ms)."
    • addedInput schema / properties / start_date_time / description
      Added value: +"If true, the start date includes a specific time of day."
    • addedInput schema / properties / status / description
      Added value: +"Status name (must exist in the task's List, e.g. 'to do', 'in progress', 'complete')."
    • addedInput schema / properties / tags / description
      Added value: +"Tag names to set on the task (must already exist in the Space)."
    • changedInput schema / properties / task_id / description
      Previous value: -"Task ID."New value: +"ID of the task to update."
    • changedInput schema / properties / time_estimate / description
      Previous value: -"Estimate in milliseconds."New value: +"Time estimate in milliseconds."
  2. First observedv1.0.0

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description carries full behavioral disclosure burden. It explains the partial update nature, the special assignee behavior, and states that it returns the updated task. It does not mention permissions or error conditions, but for a mutation tool, this is reasonably transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise—two sentences that efficiently convey the core purpose, usage pattern, and a critical nuance (assignee handling). Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (21 parameters, no output schema, no annotations), the description covers the essential behavioral traits and parameter relationships. It could be more complete by mentioning implications of partial updates (e.g., fields not passed are unchanged) but is sufficient for a typical update tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schemas already document each parameter. The description adds a high-level pattern (pass only changed fields) and clarifies the difference between assignees, assignees_add, and assignees_rem. This adds some value but does not significantly enhance understanding beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Update any field of a task' and contrasts with sibling tools like create_task and delete_task. The verb-resource pairing is precise, and the description distinguishes itself by noting the partial update pattern ('pass only the fields you want to change').

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description effectively conveys when to use this tool (updating specific task fields) and provides critical guidance on assignee handling (replace vs incremental). However, it does not explicitly exclude scenarios where alternative tools (e.g., update_bulk_tasks) would be more appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools