Skip to content

Tool reference ​

The server exposes 44 tools. Use workflows for step-by-step examples and troubleshooting for operational failures.

All names below have the kaiten_ prefix. Arguments use snake_case. Numeric IDs are positive safe integers; directory IDs are UUID strings. ? marks an optional argument. Unknown arguments are rejected.

page means optional limit (1–100, default 25) and offset (default 0). Offset list results have {items, next_offset}. Search uses {items, next_cursor}. Single-entity results have {item}. Each result also has equivalent JSON text.

Result contracts ​

Successful calls return the envelope in structuredContent and the same JSON in a text entry in content. These examples show the structured payload only:

json
{"item": {"id": 5, "full_name": "Alex"}}
json
{"items": [{"id": 1, "title": "Work"}], "next_offset": null}
json
{
  "items": [{"id": 123, "title": "Release", "board_id": 2, "column_id": 3}],
  "next_cursor": null
}

The exact fields for each tool are advertised in its MCP outputSchema. Optional fields appear only when returned by Kaiten; unknown upstream fields are stripped. A missing field differs from an explicit null.

Read tools advertise readOnlyHint: true and idempotentHint: true. Creation tools advertise destructiveHint: false; update and removal tools advertise destructiveHint: true. All write tools advertise readOnlyHint: false and idempotentHint: false. All tools use openWorldHint: true. These annotations inform the MCP host; token permissions determine access in Kaiten.

ToolArgumentsResult
kaiten_list_spacespageSpace IDs and titles
kaiten_get_spacespace_idSpace details and board references when returned by Kaiten
kaiten_list_boardsspace_id, pageBoard IDs and titles; local pagination
kaiten_get_boardboard_idDescription, columns, lanes and custom property configuration
kaiten_list_columnsboard_id, pageColumns with IDs, titles, order and type; local pagination
kaiten_list_lanesboard_id, pageLanes with IDs, titles and order; local pagination
kaiten_get_current_userNoneCurrent user's ID, name and available identity fields
kaiten_list_usersquery?, pageCompany users with IDs, names and email
kaiten_list_card_typespageExisting type IDs and names
kaiten_list_tagsquery?, space_id?, pageExisting tag IDs, names and colors

Local pagination fetches one complete upstream list and slices the requested page. It does not cache results or follow additional upstream pages.

Column column_id identifies the parent column and can be null when there is no parent. This applies to board details, column lists and card location details.

Cards ​

ToolArgumentsBehavior
kaiten_search_cardsFilters below, limit?, cursor?Version 1 search with a server continuation token
kaiten_get_cardcard_idDetailed card projection
kaiten_create_cardtitle, board_id, editable fields, column_id?, lane_id?, properties?Create a card
kaiten_update_cardcard_id, changesChange supplied editable fields
kaiten_move_cardcard_id, board_id, column_id, lane_idMove to an explicit location
kaiten_archive_cardcard_idSet condition to archived (2)
kaiten_restore_cardcard_idSet condition to live (1)
kaiten_delete_cardcard_idDelete through Kaiten's DELETE endpoint

Editable fields: title, description, due_date, due_date_time_present, asap, size_text, owner_id, type_id. changes must contain at least one field. Omitted fields remain unchanged. null clears description, due_date, or size_text. Description text uses Kaiten's default Markdown format.

Dates accept YYYY-MM-DD or ISO timestamps with an explicit timezone. Boolean flags accept booleans; IDs accept numbers. A title must be a nonempty string.

Search filters: query, space_id, board_id, column_id, lane_id, owner_ids, member_ids, responsible_ids, tag_ids, type_ids, states, archived, asap, overdue, due_date_after, due_date_before. Plural ID filters are arrays. states accepts 1 (queued), 2 (in progress), 3 (done). Omitted filters retain Kaiten's defaults.

Use archived: false to search only live cards, or archived: true for archived cards. Search uses Kaiten's version 1 endpoint, ordered by card ID, and paginates with offset. The server returns that position as next_cursor; pass it as cursor with the same filters to continue. A full page may require one final empty request before next_cursor becomes null. Offset pages can shift if matching cards are added, removed or changed between requests.

Old version 2 OpenSearch cursors are incompatible. After updating, start an existing search again without cursor. The search endpoint and its pagination are documented in Kaiten's API reference.

Summaries include ID, title, location, state, condition, archive flag, due date, owner ID and update time when present. Details additionally include the full description, priority, size, type, location names, owner, memberships, tags, properties and checklist references. Comments and checklist item content use separate tools. Mutation results project fields from the write response without an additional read; fields absent in that response stay absent.

json
{
  "card_id": 123,
  "changes": {
    "description": "## Delivery\nImplement the agreed workflow.",
    "due_date": "2026-10-15",
    "asap": false
  }
}

Comments, memberships and tags ​

ToolArgumentsBehavior
kaiten_list_commentscard_id, pageFull text and available author/timestamp fields; local pagination
kaiten_add_commentcard_id, textAdd a text comment
kaiten_update_commentcard_id, comment_id, textReplace comment text
kaiten_delete_commentcard_id, comment_idDelete a comment
kaiten_list_card_memberscard_id, pageMembership IDs, user IDs, names and role type; local pagination
kaiten_add_card_membercard_id, user_idAdd an existing user
kaiten_update_card_member_rolecard_id, member_id, typeMake the member responsible with type: 2
kaiten_remove_card_membercard_id, member_idRemove a membership
kaiten_list_card_tagscard_id, pageAttached tags including tag_id; local pagination
kaiten_add_card_tagcard_id, nameAttach by name; Kaiten may create a missing tag
kaiten_remove_card_tagcard_id, tag_idDetach a tag

Use the membership id for member_id, and its user_id for the user. For tag removal use tag_id from the card tag list. Successful deletion responses contain the ID confirmed by Kaiten.

Role updates accept only type: 2. Their result contains card_id, user_id, type and available timestamps; Kaiten does not return a membership id.

Checklists ​

ToolArgumentsBehavior
kaiten_list_checklistscard_id, pageRead references from the card; local pagination
kaiten_get_checklistcard_id, checklist_idRead the checklist and all its items
kaiten_create_checklistcard_id, name, sort_order?Create an empty checklist
kaiten_update_checklistcard_id, checklist_id, changesUpdate name and/or sort_order
kaiten_delete_checklistcard_id, checklist_idRemove the checklist from the card
kaiten_add_checklist_itemcard_id, checklist_id, text, item fieldsAdd an item
kaiten_update_checklist_itemcard_id, checklist_id, item_id, changesChange supplied item fields
kaiten_delete_checklist_itemcard_id, checklist_id, item_idDelete an item

Optional item fields: checked, sort_order, due_date, responsible_id. Item changes support these fields and text. checked: true marks completion; false clears it. due_date: null clears the deadline and responsible_id: null clears responsibility on update. text: null or an empty string clears item text on update; adding an item requires nonempty text. An update requires at least one field.

Existing custom properties ​

ToolArgumentsBehavior
kaiten_list_custom_propertiesquery?, pageFind definitions with type and settings
kaiten_get_custom_propertyproperty_idGet one definition
kaiten_list_select_valuesproperty_id, query?, pageFind existing select option IDs and values
kaiten_list_catalog_valuesproperty_id, query?, pageFind existing catalog value IDs and values
kaiten_list_custom_directoriesquery?, pageRead directories with field definitions
kaiten_list_custom_directory_recordsdirectory_id, query?, pageRead existing records with their values
kaiten_set_card_propertiescard_id, propertiesAssign or clear a nonempty map of card property values

Read the definition and relevant options first. Property keys use id_<positive property ID>. Values use Kaiten's native JSON representation:

PropertyValue example
String, URL, email, phone"value"
Number or rating12
Select or multiselect[12] or [12, 13] using option IDs
Catalog"3" using a catalog value ID
Custom directory["12345678-1234-4234-8234-123456789abc"] using record UUIDs
Date{"date":"2026-10-15","time":"12:00:00","tzOffset":180}
Clear the valuenull

The server validates keys and JSON values; Kaiten validates compatibility with the property's type and permissions. Fields not included in properties are not sent. Definitions, options and directory records are read-only in this version.

json
{
  "card_id": 123,
  "properties": {
    "id_7": [12, 13],
    "id_8": null
  }
}

Released under the MIT License.