Skip to main content
Glama

Update a task

brain_tasks_update
Idempotent

Change a task's status to running, completed, failed, or cancelled, and optionally record its outcome. Completing dependencies releases blocked tasks; failed or cancelled dependencies mark dependents failed.

Instructions

Change the status of a task and, optionally, record its outcome. Use it to claim a task ("running"), finish it ("completed" or "failed") or withdraw it ("cancelled"). Completing a task releases the tasks that were blocked on it: once all the dependencies of a blocked task are completed it becomes "pending"; if a dependency failed or was cancelled, the dependent task is marked "failed" too. The result text is written to the Final Result section of the task, replacing any earlier result; the prompt and sub-results are kept. Setting the same status again is harmless. Returns { success, id, status, releasedDependents } where releasedDependents counts the blocked tasks that moved. Errors: "Task not found" for an id that is not a task note. Find ids with brain_tasks_list; create tasks with brain_tasks_submit.

Input Schema

NameRequiredDescriptionDefault
idYesTask note id: the id field from brain_tasks_list, or the nodeId returned by brain_tasks_submit, e.g. "tasks/Task - Review the migration".
resultNoWhat was done or why it failed, in markdown. Stored in the Final Result section of the task. Omit to change only the status.
statusYesThe new state. Use "running" when you start, "completed" or "failed" when you finish.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.7.0

TDQS

A4.6/5.0
Behavior4/5

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

Beyond the annotations, it discloses the dependency cascade (dependents become "pending" on completion, "failed" if a dependency failed or was cancelled), that the result text replaces any earlier result while prompt and sub-results are kept, and the exact error string for an unknown id. It also confirms idempotency, consistent with idempotentHint=true. The only slight gap is that it doesn't discuss authorization or concurrency, which are likely non-issues here.

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?

The core action and status intents are front-loaded, followed by side effects, return shape, errors, and sibling routing in a logical order. Every sentence carries information, though the dependency-cascade sentence is dense enough that a slight trim would improve scanability.

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

Completeness5/5

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

Even without an output schema, the description specifies the return fields ({ success, id, status, releasedDependents }) and their meaning, plus the failure mode. For a three-parameter mutation tool this leaves nothing important unexplained.

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 100%, so the baseline is 3, but the description adds real meaning beyond the schema: it explains that `result` overwrites the Final Result section while preserving the prompt and sub-results, and that omitting it changes status only. The status enum is also given intent-level semantics rather than left as a bare list.

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 opens with a specific verb and resource ("Change the status of a task and, optionally, record its outcome") and enumerates the concrete transitions it performs. It is clearly separable from siblings, which are named for their distinct roles (brain_tasks_list for ids, brain_tasks_submit for creation).

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

Usage Guidelines5/5

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

It states exactly which status value corresponds to which intent ("running" to claim, "completed"/"failed" to finish, "cancelled" to withdraw) and routes the agent to brain_tasks_list for ids and brain_tasks_submit for creation. There is no ambiguity about when this tool is the right choice.

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