Skip to main content
Glama

update_task

Update existing Kanboard tasks by modifying only specified fields. Pass task_id and at least one attribute to change; unused fields remain unchanged.

Instructions

Update the attributes of an existing Kanboard task (partial update). Only the fields you pass are changed; omitted fields keep their current values, and validation runs before any write, so an invalid call modifies nothing. At least one field besides 'task_id' must be provided — otherwise VALIDATION_ERROR. Column and swimlane changes must use move_task_position instead. Returns { ok: true, task_id } on success.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
task_idYesTask id to update (required).
titleNoNew task title.
descriptionNoNew task description.
color_idNoNew color identifier (e.g. 'blue', 'red').
owner_idNoNew owner user id.
creator_idNoNew creator user id.
date_dueNoNew due date as ISO 8601 string, Unix epoch seconds (integer), or null to clear.
category_idNoNew category id.
scoreNoNew complexity score.
priorityNoNew priority.
referenceNoNew external reference (e.g. issue URL).
tagsNoNew array of tag strings (replaces existing).
date_startedNoNew start date as ISO 8601 string, Unix epoch seconds (integer), or null to clear.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed16 schema fields changedv0.1.2
    • addedInput schema / $schema
      Added value: +"http://json-schema.org/draft-07/schema#"
    • addedInput schema / additionalProperties
      Added value: +false
    • addedInput schema / properties / category_id
      Added value: +{
      +  "description": "New category id.",
      +  "exclusiveMinimum": 0,
      +  "type": "integer"
      +}
    • addedInput schema / properties / color_id
      Added value: +{
      +  "description": "New color identifier (e.g. 'blue', 'red').",
      +  "type": "string"
      +}
    • addedInput schema / properties / creator_id
      Added value: +{
      +  "description": "New creator user id.",
      +  "exclusiveMinimum": 0,
      +  "type": "integer"
      +}
    • addedInput schema / properties / date_due
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "New due date as ISO 8601 string, Unix epoch seconds (integer), or null to clear."
      +}
    • addedInput schema / properties / date_started
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "New start date as ISO 8601 string, Unix epoch seconds (integer), or null to clear."
      +}
    • addedInput schema / properties / description
      Added value: +{
      +  "description": "New task description.",
      +  "type": "string"
      +}
    • addedInput schema / properties / owner_id
      Added value: +{
      +  "description": "New owner user id.",
      +  "exclusiveMinimum": 0,
      +  "type": "integer"
      +}
    • addedInput schema / properties / priority
      Added value: +{
      +  "description": "New priority.",
      +  "type": "integer"
      +}
    • addedInput schema / properties / reference
      Added value: +{
      +  "description": "New external reference (e.g. issue URL).",
      +  "type": "string"
      +}
    • addedInput schema / properties / score
      Added value: +{
      +  "description": "New complexity score.",
      +  "type": "integer"
      +}
    • addedInput schema / properties / tags
      Added value: +{
      +  "description": "New array of tag strings (replaces existing).",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / task_id
      Added value: +{
      +  "description": "Task id to update (required).",
      +  "exclusiveMinimum": 0,
      +  "type": "integer"
      +}
    • addedInput schema / properties / title
      Added value: +{
      +  "description": "New task title.",
      +  "maxLength": 255,
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedInput schema / required
      Added value: +[
      +  "task_id"
      +]
  2. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Discloses partial update behavior, validation before write, requirement for at least one field besides task_id, and return format. No annotations present, so description carries full burden and does it well.

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?

Four focused sentences with front-loaded key information; no redundancy or wasted words.

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?

Covers partial update, validation, required condition, error case, and return format. Lacks mention of other potential errors (e.g., not found), but still comprehensive for a complex tool.

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 baseline is 3. Description adds context about partial update and validation rules beyond schema, compensating well.

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?

Clearly states it updates task attributes (partial update) and distinguishes from move_task_position which handles column/swimlane changes.

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?

Explicitly states when to use (updating attributes) and when not to (column/swimlane changes), but does not list all alternative tools.

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