Skip to main content
Glama

Update Card

kaiten_update_card
Idempotent

Update Kaiten cards by changing title, description, size, due date, owner, or custom properties, and move cards across boards, lanes, and columns.

Instructions

Update card fields. For moves use kaiten_list_columns, kaiten_list_lanes, kaiten_list_boards IDs. To change state — move the card via columnId (Kaiten state is computed from column.type, not settable directly). To change size — use sizeText (the numeric size field on a card is read-only). Set custom property values via the properties map (see kaiten_list_custom_properties for IDs and types). NOTE: response in min/normal verbosity may show board_title:null and column_title:null because PATCH /cards/{id} returns a flat payload. Re-fetch via kaiten_get_card to populate, or use verbosity=raw.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
asapNoMark as urgent
sizeNo
stateNo
titleNoNew title
cardIdYesCard ID (from kaiten_search_cards or kaiten_get_card)
laneIdNoMove to lane ID (from kaiten_list_lanes)
typeIdNoChange card type ID (from kaiten_list_card_types)
boardIdNoMove to board ID (from kaiten_list_boards)
dueDateNoDue date in ISO 8601 (YYYY-MM-DD or full datetime). When set, `dueDateTimePresent` is automatically switched on so the date appears in the Kaiten UI.
ownerIdNoReassign owner to user ID (must be a positive integer). Kaiten requires every card to have an owner — cannot be unset, only reassigned.
columnIdNoMove to column ID (from kaiten_list_columns)
sizeTextNoCard size as text. Examples: '1', '5 SP', 'L', '3 M', 'XL'. Sent as `size_text` to API. The numeric `size` field on a card is read-only and computed from this text.
verbosityNoDetail: raw|min(default)|normal|maxmin
propertiesNoMap of custom property values keyed 'id_{propertyId}'. Use kaiten_list_custom_properties to find property IDs and their `type` (which determines the value shape: string, number, date, select id, multi_select ids[], user id, catalog uid, tree uid, etc.). Pass null as a value to clear a property. Example: {"id_574845": "my-value", "id_574850": null}
textFormatNoHint to Kaiten about the format of `description`. Default = 'markdown' (Kaiten's own default). Set to 'html' if you are sending HTML tags — Kaiten will then parse and normalize them so the UI renders correctly. Without this hint, raw HTML is stored verbatim and the UI shows literal angle brackets. Maps to API field `text_format_type_id` (1=markdown, 2=html, 3=jira_wiki). WARNING: 'jira_wiki' support in Kaiten is partial — italic `_text_` does not render and underscores inside `{code}` blocks get mangled to asterisks (verified live 2026-04-09). Prefer 'markdown' or 'html' for new content.
descriptionNoNew description. Markdown by default. If you are sending HTML, also pass `textFormat: 'html'` so Kaiten parses and normalizes it — without that hint, raw HTML shows up in the UI as literal angle brackets.
dueDateTimePresentNoForce the deadline visibility flag explicitly. Kaiten stores this as `due_date_time_present` and the UI hides the deadline entirely when it is false (even if `due_date` is set). Default behavior of this tool: auto-true whenever `dueDate` is provided. Pass false explicitly only if you intentionally want to stash a deadline that does not show in the UI.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.7

TDQS

A4.9/5.0
Behavior5/5

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

The description discloses non-obvious behaviors beyond the annotations: Kaiten computes state from column.type, the numeric size field is read-only, and PATCH /cards/{id} returns a flat payload causing null board_title/column_title at certain verbosity levels. It even suggests the workaround of re-fetching via kaiten_get_card or using verbosity=raw. This adds real behavioral context that annotations alone do not provide.

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 dense but every sentence earns its place. It front-loads the main purpose, then covers the most error-prone usage patterns and closes with a practical response-format caveat. There is no filler or redundant restating of schema content.

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?

Given the tool has 17 parameters, no output schema, and many sibling tools, the description is remarkably complete. It addresses the high-risk areas — state mapping, read-only fields, custom properties, and response quirks — while the rich schema covers the remaining parameters. An agent has enough context to call the tool correctly and avoid common pitfalls.

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 88%, so the schema already documents most parameters well. The description adds valuable semantics for tricky parameters: state must be changed via columnId, sizeText substitutes for the read-only numeric size field, and properties require IDs from kaiten_list_custom_properties. It does not re-explain every parameter, but it compensates where the schema alone could mislead.

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 the action and resource: 'Update card fields.' It goes further by outlining the specific field categories (state, size, custom properties) and differentiates the tool from siblings like kaiten_get_card and kaiten_delete_card. The scope is precise and immediately actionable.

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?

The description gives explicit routing guidance: use list column/lane/board tools for moves, use columnId for state changes, use sizeText for size changes, and use kaiten_list_custom_properties for property IDs. It also states what not to do — state is not settable directly and the numeric size field is read-only — which makes the intended usage unambiguous.

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