Skip to main content
Glama

Update Task

update_task
Idempotent

Use this when the user wants to rename, re-prioritize, re-estimate, or otherwise edit an existing task. Only fields you pass are changed; omitted fields stay as-is. The values an edit replaces are kept in the task's journal (get_task_history, mode 'full'), so any edit can be reverted by sending them back. Idempotent. requiresReview can be switched on here; switching it off is the user's, in the Weft app, and a patch that tries to is refused as a whole.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "id": "<id>"
    },
    "name": "update_task"
  }
}

Input Schema

NameRequiredDescriptionDefault
idYes
dueAtNoThe day this is due, as an ISO date-time (only the date part is used, e.g. "2026-10-31T00:00:00Z"). Put a date on anything the user said has a deadline or a day to check back — dated tasks show on the user's Weft calendar and in their subscribed Google/Apple/Outlook calendar. Pass null to clear.
titleNo
projectNoProject name (case-insensitive) or project ID; pass null to detach the task from its project
startAtNoThe day work begins, same format as dueAt. With dueAt it makes a span on the calendar ("measure 5–12 November"); never after dueAt. Pass null to clear.
assigneeNo
priorityNo
blockedByNoREPLACE the set of tasks blocking this one — what you pass is what holds, [] unblocks entirely.
descriptionNo
verificationNoReplace the verification plan (null removes it). Any write resets all check results to pending.
requiresReviewNoStop at the user before this is called done. Set it ONLY for the irreversible: money, publishing outward, production, anything legal. Everything else finishes without them — a queue everything enters is a queue nobody reads. Turning it ON is yours to do; turning it OFF is not. While the flag stands, only the user can take it off — by accepting the finished work in their queue, or in the Weft app themselves. Sending false against a flag that is standing is refused, and the WHOLE call is refused with it: no other field in the same patch is written either. To get flagged work moving, call complete_task — the receipt reaches them with your evidence attached, and their acceptance is what releases the card.
estimateMinutesNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / assignee / anyOf
      Previous value: -[
      -  {
      -    "description": "Executor: a member's name or email (case-insensitive), 'me' to assign to yourself (the calling agent), or 'none' to unassign",
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "description": "Executor: a member's name, first name or email (case-insensitive), 'me' to assign to yourself (the calling agent), or 'none' to unassign",
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  2. Changed2 schema fields changed
    • addedInput schema / properties / dueAt / description
      Added value: +"The day this is due, as an ISO date-time (only the date part is used, e.g. \"2026-10-31T00:00:00Z\"). Put a date on anything the user said has a deadline or a day to check back — dated tasks show on the user's Weft calendar and in their subscribed Google/Apple/Outlook calendar. Pass null to clear."
    • addedInput schema / properties / startAt
      Added value: +{
      +  "anyOf": [
      +    {
      +      "format": "date-time",
      +      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "The day work begins, same format as dueAt. With dueAt it makes a span on the calendar (\"measure 5–12 November\"); never after dueAt. Pass null to clear."
      +}
  3. Changed1 schema field changed
    • removedInput schema / $schema
      Removed value: -"https://json-schema.org/draft/2020-12/schema"
  4. Changed1 schema field changed
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
  5. First observed

TDQS

A4.2/5.0
Behavior5/5

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

Goes well beyond the annotations: discloses partial-patch semantics ('omitted fields stay as-is'), that replaced values land in the journal so edits are revertible, and that a refused requiresReview patch rejects the entire call with no other field written. The verification reset-to-pending side effect is also spelled out. The only annotation it merely echoes is idempotency.

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

Conciseness4/5

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

Front-loaded with the trigger and the partial-update rule, then the revert path, then the one long but load-bearing requiresReview paragraph. Dense and mostly waste-free, though the requiresReview block runs several sentences where two would carry the same constraints.

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?

For a 12-parameter mutation with no output schema, it covers the failure modes an agent would otherwise get wrong: omitted fields, reversibility, and the refused-patch trap. It does not say what a successful response contains or how errors other than the requiresReview refusal are surfaced, which an agent must discover at call time.

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

Parameters4/5

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

Schema coverage is 50%, and the description compensates on the highest-risk parameters: the requiresReview on/off asymmetry and its whole-call refusal, verification's reset-on-write behavior, and the replace-not-merge semantics already stated in the schema for blockedBy. Title, priority, estimateMinutes and description carry no added meaning, but their names are unambiguous, so the baseline is exceeded.

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

Purpose4/5

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

States a specific verb and resource: edit an existing task, with concrete example fields (rename, re-prioritize, re-estimate). An agent can tell it is the general field-editing tool rather than a lifecycle tool, though it never names the siblings it is not (move_task, start_task, complete_task).

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?

Opens with an explicit trigger ('Use this when the user wants to...') and routes to concrete alternatives: get_task_history mode 'full' for reverting, complete_task for getting flagged work moving, and the Weft app for switching requiresReview off. Missing only differentiation from the other mutation siblings in the same family.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.