MCP tools
The 38 tools your agent gets when it connects — lean payloads, batch writes and safe retries included.
The MCP endpoint at /mcp exposes one tool per relevant operation — projects, fields, views, automations, cards, comments, search. This page lists every tool with its parameters, generated from the server at build time so it cannot drift.
Lean payloads
MCP responses are designed so agents don’t burn tokens reading boards:
- Summary by default.
get_board/list_cardsreturn each card summarized ({ id, number, key, title, status }). Passsummary: falsefor the full payload,fields: [fieldId…]to project specific fields, orincludeDescription: truewhen you need the text. For a single card, preferget_card. - Lean writes.
create_card/update_card/move_card/archive_card/add_commentalso return the summary by default;summary: falsebrings the full payload. - Pagination.
limitis an alias ofpageSize, andoffsetskips items (overriding thepageoffset). Numeric fields accept strings ("10"→ 10), so outdated client schemas keep working. Unknown arguments fail with an error instead of being silently ignored. - Batch.
batchruns up to 50 writes in a single call (move_card,update_card,add_comment,archive_card,unarchive_card,delete_card). It is not a single transaction: by default it stops at the first error and reports per item (applied/failedwith index and reason);continueOnErrorkeeps going. SendidempotencyKeyand the response is stored for 24 hours, so a retry does not duplicate effects. Batch does not create cards.
All tools
The table below is the live catalogue: tool, what it does, and its parameters (name, type, required).
38 tools, generated from the server at build time (npm run docs:mcp).
| Tool | Description | Params |
|---|---|---|
add_comment | Adds a comment to a card. Accepts `author` (or the `actor` alias) and a structured `role`, recorded in the activity trail. | 8 params
|
add_field_option | Adds an option to a SINGLE_SELECT/MULTI_SELECT/USER field (e.g. a new Status column, or a new label). | 3 params
|
archive_card | Archives a card. | 5 params
|
batch | Runs a list of writes in a single call: move_card, update_card, add_comment, archive_card, unarchive_card, delete_card. NOT a single transaction: by default it stops at the first error and reports per item (index + reason); use continueOnError to keep going. Each op accepts cardId OR projectId+number. Send idempotencyKey so an agent retry does not duplicate effects. Does not create cards. | 4 params
|
create_automation | Creates an automation (trigger -> action), executed synchronously in a single pass (an automation never triggers another). Triggers: card_created, field_changed (fieldId+toOptionId), pr_merged (fired by the events endpoint when a PR is merged). Actions: set_field_value (fieldId + optionId or value), archive_card. | 5 params
|
create_card | Creates a card on a project. If statusOptionId is not given, the card goes to the first Status column. `fields` accepts values by fieldId (text/number/date as the raw value, single-select as an optionId, multi-select/user as an array of optionIds). USER fields accept principal refs (`user:<id>` / `key:<id>`, see `list_assignees`) or existing option ids. | 7 params
|
create_field | Creates a custom field on the project. Types: TEXT, NUMBER, DATE, SINGLE_SELECT, MULTI_SELECT, USER. For SINGLE_SELECT/MULTI_SELECT/USER you can also send the initial options. | 4 params
|
create_project | Creates a new Kanban project. It already provisions the Status field using a template (default `agent-workflow`: Backlog / To Do / In Progress / Needs Human / In Review / Done plus Priority, Assignee and Labels; or `simple`: To Do / In Progress / Done) and the Board/Table views. The response includes the ids of the fields and of the Status options - store them, they are required to create and move cards. | 4 params
|
create_view | Creates a view. type BOARD must group by a SINGLE_SELECT field (groupByFieldId, usually Status). type TABLE is a filterable/sortable list. | 7 params
|
delete_automation | Deletes an automation. | 1 param
|
delete_card | Permanently deletes a card (irreversible - prefer archive_card when possible). Use for true duplicates/orphans. | 3 params
|
delete_field | Deletes a custom field (builtin fields like Status/Title cannot be removed). | 1 param
|
delete_field_option | Deletes a field option (e.g. a board column). Cards that had this value are left without a value on that field. | 1 param
|
delete_project | Deletes a project and all its cards/fields/views/automations (irreversible). | 1 param
|
delete_view | Deletes a view. | 1 param
|
get_board | Fetches a project's board in a single call: columns (Status field options) with the cards already grouped and ordered. By default each card comes summarized (id, number, title, status) to keep the payload small - use summary:false (or `fields`) only when you need the details, and get_card for a specific card. | 8 params
|
get_card | Card detail, with the values of all fields. Accepts `cardId` OR `projectId` + `number` (e.g. BAT-107). Use summary:true or `fields` for a smaller response. | 6 params
|
get_card_activity | Audit trail of a card (creation, field changes, moves, comments). Use `since` for "what changed since X". | 5 params
|
get_project | Project detail: fields, options and views. | 1 param
|
get_project_activity | Activity across all cards of a project, newest first (creation, field changes, moves, comments). Use `since` for "what changed since X". | 4 params
|
get_view_items | Resolves any view by id: for BOARD returns grouped/ordered columns, for TABLE returns filtered/ordered/paginated rows. Use get_board when you only need the project's default board. | 10 params
|
list_assignees | Lists the people (users) and agents (API keys) that can be assigned to USER fields, with the `ref` to use as the value (e.g. `user:abc`, `key:xyz`). | none |
list_automations | Lists a project's automations. | 1 param
|
list_cards | Lists/filters a project's cards (flat list, not grouped - use get_board for the column view). By default cards come summarized (id, number, key, title, status) to keep the payload small - use summary:false or `fields` when you need details. To find a card by number (BAT-107), use `number`. | 16 params
|
list_comments | Lists a card's comments (paginated). Use `since` for "what changed since X" without re-reading the history. | 6 params
|
list_fields | Lists a project's fields (data columns) with their options. | 1 param
|
list_projects | Lists the projects (boards). | 1 param
|
list_views | Lists a project's views (Board/Table). | 1 param
|
move_card | Moves a card to another column (a Status field option). Without afterCardId/beforeCardId/position the card goes to the end of the target column. | 9 params
|
search_cards | Full-text search over card titles/descriptions and comment bodies (prefix match, any language). Returns short snippets; use get_card for details. | 3 params
|
unarchive_card | Unarchives a card. | 5 params
|
update_automation | Updates an automation's name, enabled flag, trigger or action. | 5 params
|
update_card | Updates a card's title/description/fields. Moving columns is also possible by passing the Status field id inside `fields`, but prefer the move_card tool - it also handles the position within the column. USER fields accept principal refs (`user:<id>` / `key:<id>`, see `list_assignees`) or existing option ids. | 8 params
|
update_field | Renames or reorders a field. | 3 params
|
update_field_option | Renames, recolors or reorders a field option. | 4 params
|
update_project | Renames, updates the description of, or archives/unarchives a project. | 4 params
|
update_view | Updates a view's name, grouping, filter, sorting or visible columns. | 6 params
|
whoami | Returns the identity behind the current API key: its name (used as the default actor) and id. | none |