← WebMCP Directory

Tool tree

kanzen.naklitechie.com

Productivity & BusinessTools verified
Website
KanZen — Kanban without the noise. Single-file local-first kanban. No server, no account, no board limits.
Explore capabilities
    describe_toolsAnswer

    Every KanZen tool with its kind, input schema and approval rule, plus the person-only acts no agent can perform. Start here.

    View tool JSON
    {
      "name": "describe_tools",
      "kind": "answer",
      "impl": "imperative",
      "description": "Every KanZen tool with its kind, input schema and approval rule, plus the person-only acts no agent can perform. Start here.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "required": [],
        "additionalProperties": false
      }
    }
    get_app_stateAnswer

    Where boards are stored, the open board, the current view and filters, theme, auto-snapshot settings, and how many agent proposals wait for approval.

    View tool JSON
    {
      "name": "get_app_state",
      "kind": "answer",
      "impl": "imperative",
      "description": "Where boards are stored, the open board, the current view and filters, theme, auto-snapshot settings, and how many agent proposals wait for approval.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "required": [],
        "additionalProperties": false
      }
    }
    list_boardsAnswer

    All boards in the open library, with ids, names and counts. The open board is current_board_id.

    View tool JSON
    {
      "name": "list_boards",
      "kind": "answer",
      "impl": "imperative",
      "description": "All boards in the open library, with ids, names and counts. The open board is current_board_id.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "required": [],
        "additionalProperties": false
      }
    }
    get_boardAnswer

    A board in full: columns in order (with card_ids), labels, members, and every card summarised. Use the ids here in other tools.

    View tool JSON
    {
      "name": "get_board",
      "kind": "answer",
      "impl": "imperative",
      "description": "A board in full: columns in order (with card_ids), labels, members, and every card summarised. Use the ids here in other tools.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "board_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$",
            "description": "board to act on; default: the open board"
          },
          "include_descriptions": {
            "type": "boolean",
            "description": "include each card description"
          }
        },
        "required": [],
        "additionalProperties": false
      }
    }
    get_cardAnswer

    One card with description, checklist items, comments, attachment names and sizes, and who last changed it.

    View tool JSON
    {
      "name": "get_card",
      "kind": "answer",
      "impl": "imperative",
      "description": "One card with description, checklist items, comments, attachment names and sizes, and who last changed it.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "board_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$",
            "description": "board to act on; default: the open board"
          },
          "card_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$"
          }
        },
        "required": [
          "card_id"
        ],
        "additionalProperties": false
      }
    }
    search_cardsAnswer

    Cards matching text (title or description), label, member, priority, due bucket or column. Every filter is optional.

    View tool JSON
    {
      "name": "search_cards",
      "kind": "answer",
      "impl": "imperative",
      "description": "Cards matching text (title or description), label, member, priority, due bucket or column. Every filter is optional.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "board_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$",
            "description": "board to act on; default: the open board"
          },
          "query": {
            "type": "string",
            "maxLength": 200
          },
          "label_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$"
          },
          "member_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$"
          },
          "column_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$"
          },
          "priority": {
            "type": "string",
            "enum": [
              "none",
              "low",
              "medium",
              "high",
              "urgent"
            ]
          },
          "due": {
            "type": "string",
            "enum": [
              "overdue",
              "today",
              "week",
              "none"
            ]
          },
          "include_descriptions": {
            "type": "boolean"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 500
          }
        },
        "required": [],
        "additionalProperties": false
      }
    }
    get_activityAnswer

    The board history, newest first. Each entry says whether a person or an agent made it, and through which door.

    View tool JSON
    {
      "name": "get_activity",
      "kind": "answer",
      "impl": "imperative",
      "description": "The board history, newest first. Each entry says whether a person or an agent made it, and through which door.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "board_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$",
            "description": "board to act on; default: the open board"
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 500
          },
          "user": {
            "type": "string",
            "maxLength": 200
          },
          "action": {
            "type": "string",
            "maxLength": 60
          },
          "card_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$"
          },
          "actor": {
            "type": "string",
            "enum": [
              "person",
              "agent"
            ]
          }
        },
        "required": [],
        "additionalProperties": false
      }
    }
    list_snapshotsAnswer

    Saved snapshots of a board, newest first.

    View tool JSON
    {
      "name": "list_snapshots",
      "kind": "answer",
      "impl": "imperative",
      "description": "Saved snapshots of a board, newest first.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "board_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$",
            "description": "board to act on; default: the open board"
          }
        },
        "required": [],
        "additionalProperties": false
      }
    }
    compare_snapshotsAction

    Card-level differences between two snapshots: added, removed and modified cards. The older snapshot is the base.

    View tool JSON
    {
      "name": "compare_snapshots",
      "kind": "act",
      "impl": "imperative",
      "description": "Card-level differences between two snapshots: added, removed and modified cards. The older snapshot is the base.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "a": {
            "type": "string",
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,119}$",
            "description": "filename from list_snapshots"
          },
          "b": {
            "type": "string",
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,119}$",
            "description": "filename from list_snapshots"
          }
        },
        "required": [
          "a",
          "b"
        ],
        "additionalProperties": false
      }
    }
    export_boardAction

    A board as KanZen JSON, CSV or Markdown. Returns the file name and its text; nothing is downloaded.

    View tool JSON
    {
      "name": "export_board",
      "kind": "act",
      "impl": "imperative",
      "description": "A board as KanZen JSON, CSV or Markdown. Returns the file name and its text; nothing is downloaded.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "board_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$",
            "description": "board to act on; default: the open board"
          },
          "format": {
            "type": "string",
            "enum": [
              "json",
              "csv",
              "markdown"
            ]
          }
        },
        "required": [
          "format"
        ],
        "additionalProperties": false
      }
    }
    export_all_boardsAction

    Every board in the library as one KanZen JSON export. Attachments are included, so this can be large.

    View tool JSON
    {
      "name": "export_all_boards",
      "kind": "act",
      "impl": "imperative",
      "description": "Every board in the library as one KanZen JSON export. Attachments are included, so this can be large.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "required": [],
        "additionalProperties": false
      }
    }
    create_share_linkAction

    A URL that carries a board (or a snapshot) in its #fragment, optionally encrypted with a passphrase you choose. Nothing is uploaded. Boards over 64,000 characters return url:null.

    View tool JSON
    {
      "name": "create_share_link",
      "kind": "act",
      "impl": "imperative",
      "description": "A URL that carries a board (or a snapshot) in its #fragment, optionally encrypted with a passphrase you choose. Nothing is uploaded. Boards over 64,000 characters return url:null.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "board_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$",
            "description": "board to act on; default: the open board"
          },
          "stripped": {
            "type": "boolean",
            "description": "leave out descriptions, checklists, attachments and comments"
          },
          "passphrase": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200
          },
          "snapshot": {
            "type": "string",
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,119}$",
            "description": "filename from list_snapshots"
          }
        },
        "required": [],
        "additionalProperties": false
      }
    }
    suggest_subtasksAction

    Short subtasks for a task, from the on-device model KanZen has inside NakliOS. Returns items only; add them with add_checklist_items.

    View tool JSON
    {
      "name": "suggest_subtasks",
      "kind": "act",
      "impl": "imperative",
      "description": "Short subtasks for a task, from the on-device model KanZen has inside NakliOS. Returns items only; add them with add_checklist_items.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "minLength": 1,
            "maxLength": 500
          },
          "description": {
            "type": "string",
            "maxLength": 5000
          }
        },
        "required": [
          "title"
        ],
        "additionalProperties": false
      }
    }
    test_sync_connectionAction

    Checks the cloud-sync Worker the person configured. Never returns the token or passphrase.

    View tool JSON
    {
      "name": "test_sync_connection",
      "kind": "act",
      "impl": "imperative",
      "description": "Checks the cloud-sync Worker the person configured. Never returns the token or passphrase.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "required": [],
        "additionalProperties": false
      }
    }
    list_proposalsAnswer

    Agent proposals in this tab, newest first, with their status: pending, applied, rejected, withdrawn or failed.

    View tool JSON
    {
      "name": "list_proposals",
      "kind": "answer",
      "impl": "imperative",
      "description": "Agent proposals in this tab, newest first, with their status: pending, applied, rejected, withdrawn or failed.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "pending",
              "applied",
              "rejected",
              "withdrawn",
              "failed"
            ]
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 500
          }
        },
        "required": [],
        "additionalProperties": false
      }
    }
    get_proposalAnswer

    One proposal: its status and, once applied, its result (for example the new card_id).

    View tool JSON
    {
      "name": "get_proposal",
      "kind": "answer",
      "impl": "imperative",
      "description": "One proposal: its status and, once applied, its result (for example the new card_id).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "proposal_id": {
            "type": "string",
            "pattern": "^prop_[A-Za-z0-9]{1,40}$"
          }
        },
        "required": [
          "proposal_id"
        ],
        "additionalProperties": false
      }
    }
    switch_boardAction

    Open another board in this tab. Unsaved edits on the board being left are saved first.

    View tool JSON
    {
      "name": "switch_board",
      "kind": "act",
      "impl": "imperative",
      "description": "Open another board in this tab. Unsaved edits on the board being left are saved first.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "board_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$"
          }
        },
        "required": [
          "board_id"
        ],
        "additionalProperties": false
      }
    }
    set_viewAction

    Show the open board as board, list or calendar; sort the list; or move the calendar to a month.

    View tool JSON
    {
      "name": "set_view",
      "kind": "act",
      "impl": "imperative",
      "description": "Show the open board as board, list or calendar; sort the list; or move the calendar to a month.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "mode": {
            "type": "string",
            "enum": [
              "board",
              "list",
              "calendar"
            ]
          },
          "list_sort": {
            "type": "object",
            "properties": {
              "field": {
                "type": "string",
                "enum": [
                  "title",
                  "column",
                  "priority",
                  "due_date",
                  "updated"
                ]
              },
              "direction": {
                "type": "string",
                "enum": [
                  "asc",
                  "desc"
                ]
              }
            },
            "required": [
              "field"
            ],
            "additionalProperties": false
          },
          "calendar_month": {
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}$",
            "description": "YYYY-MM"
          }
        },
        "required": [],
        "additionalProperties": false
      }
    }
    set_filterAction

    Dim the cards that do not match. Set only the fields to change; an empty string clears a field.

    View tool JSON
    {
      "name": "set_filter",
      "kind": "act",
      "impl": "imperative",
      "description": "Dim the cards that do not match. Set only the fields to change; an empty string clears a field.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "search": {
            "type": "string",
            "maxLength": 200
          },
          "label_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{0,80}$"
          },
          "member_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{0,80}$"
          },
          "priority": {
            "type": "string",
            "enum": [
              "",
              "none",
              "low",
              "medium",
              "high",
              "urgent"
            ]
          },
          "due": {
            "type": "string",
            "enum": [
              "",
              "overdue",
              "today",
              "week",
              "none"
            ]
          }
        },
        "required": [],
        "additionalProperties": false
      }
    }
    clear_filtersAction

    Clear search and every filter.

    View tool JSON
    {
      "name": "clear_filters",
      "kind": "act",
      "impl": "imperative",
      "description": "Clear search and every filter.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "required": [],
        "additionalProperties": false
      }
    }
    withdraw_proposalAction

    Take back a pending proposal so the person no longer sees it.

    View tool JSON
    {
      "name": "withdraw_proposal",
      "kind": "act",
      "impl": "imperative",
      "description": "Take back a pending proposal so the person no longer sees it.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "proposal_id": {
            "type": "string",
            "pattern": "^prop_[A-Za-z0-9]{1,40}$"
          }
        },
        "required": [
          "proposal_id"
        ],
        "additionalProperties": false
      }
    }
    create_boardAction

    A new board with To Do, In Progress and Done columns and three starter labels. It opens when applied. Waits for the person's approval: returns {status:"pending_approval", proposal_id}; call get_proposal for the outcome.

    View tool JSON
    {
      "name": "create_board",
      "kind": "act",
      "impl": "imperative",
      "description": "A new board with To Do, In Progress and Done columns and three starter labels. It opens when applied. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200
          }
        },
        "required": [
          "name"
        ],
        "additionalProperties": false
      }
    }
    rename_boardAction

    Rename a board. Its file name on disk stays the same. Waits for the person's approval: returns {status:"pending_approval", proposal_id}; call get_proposal for the outcome. Batchable in apply_changes.

    View tool JSON
    {
      "name": "rename_board",
      "kind": "act",
      "impl": "imperative",
      "description": "Rename a board. Its file name on disk stays the same. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome. Batchable in apply_changes.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "board_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$",
            "description": "board to act on; default: the open board"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200
          }
        },
        "required": [
          "name"
        ],
        "additionalProperties": false
      }
    }
    set_board_backgroundAction

    Board background: a gradient by name (Sky, Sunset, Forest, Berry, Ocean, Plum, Slate, Mint) or a solid #rrggbb colour. Waits for the person's approval: returns {status:"pending_approval", proposal_id}; call get_proposal for the outcome. Batchable in apply_changes.

    View tool JSON
    {
      "name": "set_board_background",
      "kind": "act",
      "impl": "imperative",
      "description": "Board background: a gradient by name (Sky, Sunset, Forest, Berry, Ocean, Plum, Slate, Mint) or a solid #rrggbb colour. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome. Batchable in apply_changes.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "board_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$",
            "description": "board to act on; default: the open board"
          },
          "kind": {
            "type": "string",
            "enum": [
              "gradient",
              "solid"
            ]
          },
          "value": {
            "type": "string",
            "minLength": 1,
            "maxLength": 120
          }
        },
        "required": [
          "kind",
          "value"
        ],
        "additionalProperties": false
      }
    }
    create_columnAction

    Add a column (list). Returns column_id. Waits for the person's approval: returns {status:"pending_approval", proposal_id}; call get_proposal for the outcome. Batchable in apply_changes.

    View tool JSON
    {
      "name": "create_column",
      "kind": "act",
      "impl": "imperative",
      "description": "Add a column (list). Returns column_id. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome. Batchable in apply_changes.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "board_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$",
            "description": "board to act on; default: the open board"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200
          },
          "position": {
            "type": "integer",
            "minimum": 0,
            "maximum": 100000,
            "description": "0-based position; omit to append"
          }
        },
        "required": [
          "name"
        ],
        "additionalProperties": false
      }
    }
    update_columnAction

    Rename a column, set its soft WIP limit (0 = none), or collapse it. Waits for the person's approval: returns {status:"pending_approval", proposal_id}; call get_proposal for the outcome. Batchable in apply_changes.

    View tool JSON
    {
      "name": "update_column",
      "kind": "act",
      "impl": "imperative",
      "description": "Rename a column, set its soft WIP limit (0 = none), or collapse it. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome. Batchable in apply_changes.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "board_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$",
            "description": "board to act on; default: the open board"
          },
          "column_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200
          },
          "wip_limit": {
            "type": "integer",
            "minimum": 0,
            "maximum": 999
          },
          "collapsed": {
            "type": "boolean"
          }
        },
        "required": [
          "column_id"
        ],
        "additionalProperties": false
      }
    }
    move_columnAction

    Reorder a column to a 0-based position. Waits for the person's approval: returns {status:"pending_approval", proposal_id}; call get_proposal for the outcome. Batchable in apply_changes.

    View tool JSON
    {
      "name": "move_column",
      "kind": "act",
      "impl": "imperative",
      "description": "Reorder a column to a 0-based position. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome. Batchable in apply_changes.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "board_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$",
            "description": "board to act on; default: the open board"
          },
          "column_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$"
          },
          "position": {
            "type": "integer",
            "minimum": 0,
            "maximum": 100000,
            "description": "0-based position; omit to append"
          }
        },
        "required": [
          "column_id",
          "position"
        ],
        "additionalProperties": false
      }
    }
    create_cardAction

    Add a card to a column, with optional description (markdown), priority, due date, labels and members. Returns card_id. Waits for the person's approval: returns {status:"pending_approval", proposal_id}; call get_proposal for the outcome. Batchable in apply_changes.

    View tool JSON
    {
      "name": "create_card",
      "kind": "act",
      "impl": "imperative",
      "description": "Add a card to a column, with optional description (markdown), priority, due date, labels and members. Returns card_id. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome. Batchable in apply_changes.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "board_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$",
            "description": "board to act on; default: the open board"
          },
          "column_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$"
          },
          "title": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1000
          },
          "description": {
            "type": "string",
            "maxLength": 200000
          },
          "priority": {
            "type": "string",
            "enum": [
              "none",
              "low",
              "medium",
              "high",
              "urgent"
            ]
          },
          "due_date": {
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "label_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "pattern": "^[A-Za-z0-9_-]{1,80}$"
            },
            "maxItems": 100
          },
          "member_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "pattern": "^[A-Za-z0-9_-]{1,80}$"
            },
            "maxItems": 100
          },
          "position": {
            "type": "integer",
            "minimum": 0,
            "maximum": 100000,
            "description": "0-based position; omit to append"
          }
        },
        "required": [
          "column_id",
          "title"
        ],
        "additionalProperties": false
      }
    }
    update_cardAction

    Change a card. Give only the fields to change. due_date null clears it; label_ids, member_ids and checklist replace the whole list (checklist items keep their id when you pass it). Waits for the person's approval: returns {status:"pending_approval", proposal_id}; call get_proposal for the outcome. Batchable in apply_changes.

    View tool JSON
    {
      "name": "update_card",
      "kind": "act",
      "impl": "imperative",
      "description": "Change a card. Give only the fields to change. due_date null clears it; label_ids, member_ids and checklist replace the whole list (checklist items keep their id when you pass it). Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome. Batchable in apply_changes.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "board_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$",
            "description": "board to act on; default: the open board"
          },
          "card_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$"
          },
          "title": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1000
          },
          "description": {
            "type": "string",
            "maxLength": 200000
          },
          "priority": {
            "type": "string",
            "enum": [
              "none",
              "low",
              "medium",
              "high",
              "urgent"
            ]
          },
          "due_date": {
            "type": [
              "string",
              "null"
            ],
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "label_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "pattern": "^[A-Za-z0-9_-]{1,80}$"
            },
            "maxItems": 100
          },
          "member_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "pattern": "^[A-Za-z0-9_-]{1,80}$"
            },
            "maxItems": 100
          },
          "checklist": {
            "type": "array",
            "maxItems": 500,
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "pattern": "^[A-Za-z0-9_-]{1,80}$"
                },
                "text": {
                  "type": "string",
                  "maxLength": 1000
                },
                "done": {
                  "type": "boolean"
                }
              },
              "required": [
                "text"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "card_id"
        ],
        "additionalProperties": false
      }
    }
    move_cardAction

    Move a card to a column, at a 0-based position (default: the end). Waits for the person's approval: returns {status:"pending_approval", proposal_id}; call get_proposal for the outcome. Batchable in apply_changes.

    View tool JSON
    {
      "name": "move_card",
      "kind": "act",
      "impl": "imperative",
      "description": "Move a card to a column, at a 0-based position (default: the end). Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome. Batchable in apply_changes.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "board_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$",
            "description": "board to act on; default: the open board"
          },
          "card_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$"
          },
          "column_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$"
          },
          "position": {
            "type": "integer",
            "minimum": 0,
            "maximum": 100000,
            "description": "0-based position; omit to append"
          }
        },
        "required": [
          "card_id",
          "column_id"
        ],
        "additionalProperties": false
      }
    }
    add_checklist_itemsAction

    Append unchecked items to a card checklist. Returns their item_ids. Waits for the person's approval: returns {status:"pending_approval", proposal_id}; call get_proposal for the outcome. Batchable in apply_changes.

    View tool JSON
    {
      "name": "add_checklist_items",
      "kind": "act",
      "impl": "imperative",
      "description": "Append unchecked items to a card checklist. Returns their item_ids. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome. Batchable in apply_changes.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "board_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$",
            "description": "board to act on; default: the open board"
          },
          "card_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$"
          },
          "items": {
            "type": "array",
            "minItems": 1,
            "maxItems": 100,
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 1000
            }
          }
        },
        "required": [
          "card_id",
          "items"
        ],
        "additionalProperties": false
      }
    }
    update_checklist_itemAction

    Tick, untick or reword one checklist item. Waits for the person's approval: returns {status:"pending_approval", proposal_id}; call get_proposal for the outcome. Batchable in apply_changes.

    View tool JSON
    {
      "name": "update_checklist_item",
      "kind": "act",
      "impl": "imperative",
      "description": "Tick, untick or reword one checklist item. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome. Batchable in apply_changes.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "board_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$",
            "description": "board to act on; default: the open board"
          },
          "card_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$"
          },
          "item_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$"
          },
          "text": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1000
          },
          "done": {
            "type": "boolean"
          }
        },
        "required": [
          "card_id",
          "item_id"
        ],
        "additionalProperties": false
      }
    }
    add_commentAction

    Comment on a card (markdown). author_member_id names a board member; omit it for an anonymous comment. Waits for the person's approval: returns {status:"pending_approval", proposal_id}; call get_proposal for the outcome. Batchable in apply_changes.

    View tool JSON
    {
      "name": "add_comment",
      "kind": "act",
      "impl": "imperative",
      "description": "Comment on a card (markdown). author_member_id names a board member; omit it for an anonymous comment. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome. Batchable in apply_changes.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "board_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$",
            "description": "board to act on; default: the open board"
          },
          "card_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$"
          },
          "text": {
            "type": "string",
            "minLength": 1,
            "maxLength": 20000
          },
          "author_member_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$"
          }
        },
        "required": [
          "card_id",
          "text"
        ],
        "additionalProperties": false
      }
    }
    add_attachmentAction

    Embed a file in a card, as base64. HTML, SVG and XML are refused because a browser could run them. 25 MB limit. Waits for the person's approval: returns {status:"pending_approval", proposal_id}; call get_proposal for the outcome. Batchable in apply_changes.

    View tool JSON
    {
      "name": "add_attachment",
      "kind": "act",
      "impl": "imperative",
      "description": "Embed a file in a card, as base64. HTML, SVG and XML are refused because a browser could run them. 25 MB limit. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome. Batchable in apply_changes.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "board_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$",
            "description": "board to act on; default: the open board"
          },
          "card_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200
          },
          "mime_type": {
            "type": "string",
            "pattern": "^[A-Za-z0-9!#$&^_.+-]{1,64}/[A-Za-z0-9!#$&^_.+-]{1,100}$"
          },
          "data_base64": {
            "type": "string",
            "maxLength": 36000000
          }
        },
        "required": [
          "card_id",
          "name",
          "mime_type",
          "data_base64"
        ],
        "additionalProperties": false
      }
    }
    create_labelAction

    Add a label to a board. Returns label_id. Waits for the person's approval: returns {status:"pending_approval", proposal_id}; call get_proposal for the outcome. Batchable in apply_changes.

    View tool JSON
    {
      "name": "create_label",
      "kind": "act",
      "impl": "imperative",
      "description": "Add a label to a board. Returns label_id. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome. Batchable in apply_changes.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "board_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$",
            "description": "board to act on; default: the open board"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200
          },
          "color": {
            "type": "string",
            "pattern": "^#[0-9a-fA-F]{6}$"
          }
        },
        "required": [
          "name"
        ],
        "additionalProperties": false
      }
    }
    update_labelAction

    Rename or recolour a label. Waits for the person's approval: returns {status:"pending_approval", proposal_id}; call get_proposal for the outcome. Batchable in apply_changes.

    View tool JSON
    {
      "name": "update_label",
      "kind": "act",
      "impl": "imperative",
      "description": "Rename or recolour a label. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome. Batchable in apply_changes.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "board_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$",
            "description": "board to act on; default: the open board"
          },
          "label_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200
          },
          "color": {
            "type": "string",
            "pattern": "^#[0-9a-fA-F]{6}$"
          }
        },
        "required": [
          "label_id"
        ],
        "additionalProperties": false
      }
    }
    create_memberAction

    Add a member to a board. Returns member_id. Waits for the person's approval: returns {status:"pending_approval", proposal_id}; call get_proposal for the outcome. Batchable in apply_changes.

    View tool JSON
    {
      "name": "create_member",
      "kind": "act",
      "impl": "imperative",
      "description": "Add a member to a board. Returns member_id. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome. Batchable in apply_changes.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "board_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$",
            "description": "board to act on; default: the open board"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200
          },
          "color": {
            "type": "string",
            "pattern": "^#[0-9a-fA-F]{6}$"
          }
        },
        "required": [
          "name"
        ],
        "additionalProperties": false
      }
    }
    update_memberAction

    Rename or recolour a member. Waits for the person's approval: returns {status:"pending_approval", proposal_id}; call get_proposal for the outcome. Batchable in apply_changes.

    View tool JSON
    {
      "name": "update_member",
      "kind": "act",
      "impl": "imperative",
      "description": "Rename or recolour a member. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome. Batchable in apply_changes.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "board_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$",
            "description": "board to act on; default: the open board"
          },
          "member_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200
          },
          "color": {
            "type": "string",
            "pattern": "^#[0-9a-fA-F]{6}$"
          }
        },
        "required": [
          "member_id"
        ],
        "additionalProperties": false
      }
    }
    apply_changesAction

    Several board edits as one proposal and one undo step. Each change is {tool, input, as?}; tools must be batchable (see describe_tools). Name a created thing with "as" and use "$name" in a later change's id field. If any change fails, none is applied. Waits for the person's approval: returns {status:"pending_approval", proposal_id}; call get_proposal for the outcome.

    View tool JSON
    {
      "name": "apply_changes",
      "kind": "act",
      "impl": "imperative",
      "description": "Several board edits as one proposal and one undo step. Each change is {tool, input, as?}; tools must be batchable (see describe_tools). Name a created thing with \"as\" and use \"$name\" in a later change's id field. If any change fails, none is applied. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "board_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$",
            "description": "board to act on; default: the open board"
          },
          "operations": {
            "type": "array",
            "minItems": 1,
            "maxItems": 100,
            "items": {
              "type": "object",
              "properties": {
                "tool": {
                  "type": "string",
                  "maxLength": 60
                },
                "input": {
                  "type": "object"
                },
                "as": {
                  "type": "string",
                  "pattern": "^[A-Za-z][A-Za-z0-9_]{0,30}$"
                }
              },
              "required": [
                "tool",
                "input"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "operations"
        ],
        "additionalProperties": false
      }
    }
    undoAction

    Step the board back one change (50 steps per board, this tab only). Waits for the person's approval: returns {status:"pending_approval", proposal_id}; call get_proposal for the outcome.

    View tool JSON
    {
      "name": "undo",
      "kind": "act",
      "impl": "imperative",
      "description": "Step the board back one change (50 steps per board, this tab only). Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "board_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$",
            "description": "board to act on; default: the open board"
          }
        },
        "required": [],
        "additionalProperties": false
      }
    }
    redoAction

    Re-apply the change undo stepped back from. Waits for the person's approval: returns {status:"pending_approval", proposal_id}; call get_proposal for the outcome.

    View tool JSON
    {
      "name": "redo",
      "kind": "act",
      "impl": "imperative",
      "description": "Re-apply the change undo stepped back from. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "board_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$",
            "description": "board to act on; default: the open board"
          }
        },
        "required": [],
        "additionalProperties": false
      }
    }
    take_snapshotAction

    Save a named copy of a board that restore_snapshot can bring back. Waits for the person's approval: returns {status:"pending_approval", proposal_id}; call get_proposal for the outcome.

    View tool JSON
    {
      "name": "take_snapshot",
      "kind": "act",
      "impl": "imperative",
      "description": "Save a named copy of a board that restore_snapshot can bring back. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "board_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$",
            "description": "board to act on; default: the open board"
          },
          "name": {
            "type": "string",
            "maxLength": 200
          }
        },
        "required": [],
        "additionalProperties": false
      }
    }
    set_auto_snapshotAction

    Turn automatic snapshots on or off: before destructive changes, and once a day. Waits for the person's approval: returns {status:"pending_approval", proposal_id}; call get_proposal for the outcome.

    View tool JSON
    {
      "name": "set_auto_snapshot",
      "kind": "act",
      "impl": "imperative",
      "description": "Turn automatic snapshots on or off: before destructive changes, and once a day. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "before_destructive": {
            "type": "boolean"
          },
          "daily": {
            "type": "boolean"
          }
        },
        "required": [],
        "additionalProperties": false
      }
    }
    import_boardsAction

    Add boards from a KanZen JSON export. Existing boards are kept; clashing ids get new ones. Waits for the person's approval: returns {status:"pending_approval", proposal_id}; call get_proposal for the outcome.

    View tool JSON
    {
      "name": "import_boards",
      "kind": "act",
      "impl": "imperative",
      "description": "Add boards from a KanZen JSON export. Existing boards are kept; clashing ids get new ones. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": [
              "object",
              "string"
            ],
            "description": "a KanZen export: one board object, {boards:{...}}, or the same as a JSON string"
          }
        },
        "required": [
          "data"
        ],
        "additionalProperties": false
      }
    }
    import_trelloAction

    Create a board from a Trello JSON export: lists, cards, labels, members and checklists. Attachments are skipped. Waits for the person's approval: returns {status:"pending_approval", proposal_id}; call get_proposal for the outcome.

    View tool JSON
    {
      "name": "import_trello",
      "kind": "act",
      "impl": "imperative",
      "description": "Create a board from a Trello JSON export: lists, cards, labels, members and checklists. Attachments are skipped. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": [
              "object",
              "string"
            ],
            "description": "the Trello export, or it as a JSON string"
          }
        },
        "required": [
          "data"
        ],
        "additionalProperties": false
      }
    }
    import_share_linkAction

    Create a board from a KanZen share URL (#kz:, #kze: or #e=). Encrypted links need their passphrase. Waits for the person's approval: returns {status:"pending_approval", proposal_id}; call get_proposal for the outcome.

    View tool JSON
    {
      "name": "import_share_link",
      "kind": "act",
      "impl": "imperative",
      "description": "Create a board from a KanZen share URL (#kz:, #kze: or #e=). Encrypted links need their passphrase. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "minLength": 2,
            "maxLength": 200000
          },
          "passphrase": {
            "type": "string",
            "maxLength": 200
          }
        },
        "required": [
          "url"
        ],
        "additionalProperties": false
      }
    }
    set_team_modeAction

    Split a board into one file per card for git-friendly collaboration, or join it back into one file. Needs a Folder or Crate. Lossless both ways. Waits for the person's approval: returns {status:"pending_approval", proposal_id}; call get_proposal for the outcome.

    View tool JSON
    {
      "name": "set_team_mode",
      "kind": "act",
      "impl": "imperative",
      "description": "Split a board into one file per card for git-friendly collaboration, or join it back into one file. Needs a Folder or Crate. Lossless both ways. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "board_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$",
            "description": "board to act on; default: the open board"
          },
          "on": {
            "type": "boolean"
          }
        },
        "required": [
          "on"
        ],
        "additionalProperties": false
      }
    }
    set_themeAction

    Light or dark theme. Waits for the person's approval: returns {status:"pending_approval", proposal_id}; call get_proposal for the outcome.

    View tool JSON
    {
      "name": "set_theme",
      "kind": "act",
      "impl": "imperative",
      "description": "Light or dark theme. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "theme": {
            "type": "string",
            "enum": [
              "light",
              "dark"
            ]
          }
        },
        "required": [
          "theme"
        ],
        "additionalProperties": false
      }
    }
    set_paletteAction

    Colour palette: default, sumi, kinari, tadelakt, sang, snow, mumbai. Waits for the person's approval: returns {status:"pending_approval", proposal_id}; call get_proposal for the outcome.

    View tool JSON
    {
      "name": "set_palette",
      "kind": "act",
      "impl": "imperative",
      "description": "Colour palette: default, sumi, kinari, tadelakt, sang, snow, mumbai. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "palette": {
            "type": "string",
            "enum": [
              "default",
              "sumi",
              "kinari",
              "tadelakt",
              "sang",
              "snow",
              "mumbai"
            ]
          }
        },
        "required": [
          "palette"
        ],
        "additionalProperties": false
      }
    }
    delete_boardSensitive Action

    Delete a board and its file, and its cloud copy when synced. Cannot be undone. Waits for the person's approval: returns {status:"pending_approval", proposal_id}; call get_proposal for the outcome. Destructive.

    View tool JSON
    {
      "name": "delete_board",
      "kind": "transact",
      "impl": "imperative",
      "description": "Delete a board and its file, and its cloud copy when synced. Cannot be undone. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome. Destructive.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "board_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$"
          }
        },
        "required": [
          "board_id"
        ],
        "additionalProperties": false
      }
    }
    delete_columnSensitive Action

    Delete a column and every card in it. Waits for the person's approval: returns {status:"pending_approval", proposal_id}; call get_proposal for the outcome. Destructive.

    View tool JSON
    {
      "name": "delete_column",
      "kind": "transact",
      "impl": "imperative",
      "description": "Delete a column and every card in it. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome. Destructive.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "board_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$",
            "description": "board to act on; default: the open board"
          },
          "column_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$"
          }
        },
        "required": [
          "column_id"
        ],
        "additionalProperties": false
      }
    }
    delete_cardSensitive Action

    Delete a card. Waits for the person's approval: returns {status:"pending_approval", proposal_id}; call get_proposal for the outcome. Destructive.

    View tool JSON
    {
      "name": "delete_card",
      "kind": "transact",
      "impl": "imperative",
      "description": "Delete a card. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome. Destructive.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "board_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$",
            "description": "board to act on; default: the open board"
          },
          "card_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$"
          }
        },
        "required": [
          "card_id"
        ],
        "additionalProperties": false
      }
    }
    remove_checklist_itemAction

    Remove one checklist item from a card. Waits for the person's approval: returns {status:"pending_approval", proposal_id}; call get_proposal for the outcome. Destructive.

    View tool JSON
    {
      "name": "remove_checklist_item",
      "kind": "act",
      "impl": "imperative",
      "description": "Remove one checklist item from a card. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome. Destructive.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "board_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$",
            "description": "board to act on; default: the open board"
          },
          "card_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$"
          },
          "item_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$"
          }
        },
        "required": [
          "card_id",
          "item_id"
        ],
        "additionalProperties": false
      }
    }
    delete_commentSensitive Action

    Delete one comment from a card. Waits for the person's approval: returns {status:"pending_approval", proposal_id}; call get_proposal for the outcome. Destructive.

    View tool JSON
    {
      "name": "delete_comment",
      "kind": "transact",
      "impl": "imperative",
      "description": "Delete one comment from a card. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome. Destructive.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "board_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$",
            "description": "board to act on; default: the open board"
          },
          "card_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$"
          },
          "comment_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$"
          }
        },
        "required": [
          "card_id",
          "comment_id"
        ],
        "additionalProperties": false
      }
    }
    remove_attachmentAction

    Remove an embedded file from a card. Waits for the person's approval: returns {status:"pending_approval", proposal_id}; call get_proposal for the outcome. Destructive.

    View tool JSON
    {
      "name": "remove_attachment",
      "kind": "act",
      "impl": "imperative",
      "description": "Remove an embedded file from a card. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome. Destructive.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "board_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$",
            "description": "board to act on; default: the open board"
          },
          "card_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$"
          },
          "attachment_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$"
          }
        },
        "required": [
          "card_id",
          "attachment_id"
        ],
        "additionalProperties": false
      }
    }
    delete_labelSensitive Action

    Delete a label and take it off every card. Waits for the person's approval: returns {status:"pending_approval", proposal_id}; call get_proposal for the outcome. Destructive.

    View tool JSON
    {
      "name": "delete_label",
      "kind": "transact",
      "impl": "imperative",
      "description": "Delete a label and take it off every card. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome. Destructive.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "board_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$",
            "description": "board to act on; default: the open board"
          },
          "label_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$"
          }
        },
        "required": [
          "label_id"
        ],
        "additionalProperties": false
      }
    }
    delete_memberSensitive Action

    Remove a member from a board and from every card. Waits for the person's approval: returns {status:"pending_approval", proposal_id}; call get_proposal for the outcome. Destructive.

    View tool JSON
    {
      "name": "delete_member",
      "kind": "transact",
      "impl": "imperative",
      "description": "Remove a member from a board and from every card. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome. Destructive.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "board_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$",
            "description": "board to act on; default: the open board"
          },
          "member_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$"
          }
        },
        "required": [
          "member_id"
        ],
        "additionalProperties": false
      }
    }
    restore_snapshotAction

    Replace a board with a snapshot of it. A safety snapshot is taken first. Waits for the person's approval: returns {status:"pending_approval", proposal_id}; call get_proposal for the outcome. Destructive.

    View tool JSON
    {
      "name": "restore_snapshot",
      "kind": "act",
      "impl": "imperative",
      "description": "Replace a board with a snapshot of it. A safety snapshot is taken first. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome. Destructive.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "board_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,80}$",
            "description": "board to act on; default: the open board"
          },
          "filename": {
            "type": "string",
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,119}$",
            "description": "filename from list_snapshots"
          }
        },
        "required": [
          "filename"
        ],
        "additionalProperties": false
      }
    }
    delete_snapshotSensitive Action

    Delete a saved snapshot. Waits for the person's approval: returns {status:"pending_approval", proposal_id}; call get_proposal for the outcome. Destructive.

    View tool JSON
    {
      "name": "delete_snapshot",
      "kind": "transact",
      "impl": "imperative",
      "description": "Delete a saved snapshot. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome. Destructive.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "filename": {
            "type": "string",
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,119}$",
            "description": "filename from list_snapshots"
          }
        },
        "required": [
          "filename"
        ],
        "additionalProperties": false
      }
    }
    replace_all_boardsSensitive Action

    Delete every board in the library and import a KanZen export in their place. Cannot be undone. Waits for the person's approval: returns {status:"pending_approval", proposal_id}; call get_proposal for the outcome. Destructive.

    View tool JSON
    {
      "name": "replace_all_boards",
      "kind": "transact",
      "impl": "imperative",
      "description": "Delete every board in the library and import a KanZen export in their place. Cannot be undone. Waits for the person's approval: returns {status:\"pending_approval\", proposal_id}; call get_proposal for the outcome. Destructive.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": [
              "object",
              "string"
            ],
            "description": "a KanZen export: one board object, {boards:{...}}, or the same as a JSON string"
          }
        },
        "required": [
          "data"
        ],
        "additionalProperties": false
      }
    }