Skip to main content
Glama

kaiten_set_card_properties

Destructive

Set existing Kaiten card properties using id_ keys with native value formats; omitted properties stay unchanged, and null clears a value.

Instructions

Set existing card properties using id_ keys. Omitted properties remain unchanged; null clears a value. Use native Kaiten formats: scalar text/number, select ID arrays, catalog string ID, directory UUID arrays, or a date object with date/time/tzOffset. Definitions and options are read-only.

Input Schema

NameRequiredDescriptionDefault
card_idYes
propertiesYes

Output Schema

NameRequiredDescriptionDefault
itemYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changedv1.2.0
    • removedInput schema / properties / card_id / maximum
      Removed value: -9007199254740991
    • addedOutput schema / properties / item / properties / children
      Added value: +{
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "archived": {
      +        "type": "boolean"
      +      },
      +      "board_id": {
      +        "type": "number"
      +      },
      +      "column_id": {
      +        "type": "number"
      +      },
      +      "condition": {
      +        "type": "number"
      +      },
      +      "due_date": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "id": {
      +        "type": "number"
      +      },
      +      "lane_id": {
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      },
      +      "owner_id": {
      +        "type": "number"
      +      },
      +      "state": {
      +        "type": "number"
      +      },
      +      "title": {
      +        "type": "string"
      +      },
      +      "updated": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "id",
      +      "title",
      +      "board_id",
      +      "column_id"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / item / properties / external_links
      Added value: +{
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "card_id": {
      +        "type": "number"
      +      },
      +      "created": {
      +        "type": "string"
      +      },
      +      "description": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "external_link_id": {
      +        "type": "number"
      +      },
      +      "id": {
      +        "type": "number"
      +      },
      +      "updated": {
      +        "type": "string"
      +      },
      +      "url": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "id",
      +      "url"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / item / properties / parents
      Added value: +{
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "archived": {
      +        "type": "boolean"
      +      },
      +      "board_id": {
      +        "type": "number"
      +      },
      +      "column_id": {
      +        "type": "number"
      +      },
      +      "condition": {
      +        "type": "number"
      +      },
      +      "due_date": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "id": {
      +        "type": "number"
      +      },
      +      "lane_id": {
      +        "type": [
      +          "number",
      +          "null"
      +        ]
      +      },
      +      "owner_id": {
      +        "type": "number"
      +      },
      +      "state": {
      +        "type": "number"
      +      },
      +      "title": {
      +        "type": "string"
      +      },
      +      "updated": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "id",
      +      "title",
      +      "board_id",
      +      "column_id"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
  2. First observedv1.0.2

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare this is a non-idempotent, destructive mutation; the description adds genuinely new behavioral detail absent from them – that updates are partial/merge-style, that null is the deletion mechanism, and that definitions/options cannot be modified through this tool. It stops short of stating failure modes for wrong value formats or whether a bad property key aborts the whole call.

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?

Three tight sentences, front-loaded with the key convention and partial-update rule before the format catalogue. Every clause supplies non-redundant information; there is no restating of the tool name or filler.

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 mutation tool with nested/anyOf values, a 0%-coverage schema and an output schema already present, the description covers the essentials an agent needs to construct a valid call. The remaining gap is procedural: it never says the agent must first resolve property IDs and option IDs via the read-only property/catalog/directory endpoints.

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

Parameters5/5

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

With 0% schema description coverage, the description carries the full burden and does so: it explains the id_<propertyId> key naming, the omit-vs-null semantic, and the exact value shapes per property kind (scalar, select ID array, catalog string ID, directory UUID array, date object with date/time/tzOffset). The open-ended value schema would otherwise give an agent nothing to work with.

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?

Names a specific verb and resource ('Set existing card properties') and scopes it precisely with the 'id_<propertyId>' key convention. It is clearly distinguishable from siblings such as kaiten_update_card and the read-only kaiten_list_custom_properties / kaiten_get_custom_property tools, which the closing clause implicitly separates out.

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

Usage Guidelines3/5

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

The partial-update rule ('Omitted properties remain unchanged; null clears a value') tells the agent how to call it, and 'Definitions and options are read-only' signals that schema discovery belongs elsewhere. However, no sibling is named as the way to discover property IDs and value formats before calling, so the routing advice is implied rather than explicit.

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