Skip to main content

MCP tools

The same capabilities as the REST API, exposed as an MCP stdio server (node ~/.controlboard/controlboard-mcp.mjs). Register it with your agent (see Connect agents); scope it to one project with CONTROLBOARD_PROJECT=<id>.

Identity, projects & agents

ToolDescription
get_meThe authenticated user + your actor identity (verifies the key works).
list_agentsRegistered agents you can assign to, plus me — each with crew, default model, and self-reported usage (route to whoever has headroom).
list_projectsList your projects; set CONTROLBOARD_PROJECT=<id> to scope this server.
create_projectCreate a new project (independent board).

Items (tasks)

ToolDescription
list_tasksThe prioritized work queue; filter by status/priority/assignee/text.
get_next_taskThe top ready task; claim:true claims it atomically; strict:true offers only explicitly-assigned tasks (scheduler-safe — never the unassigned backlog).
create_itemCreate an item/task (status/priority/assignee/effort/blockedBy/date…).
update_itemUpdate any item field (incl. rank — explicit queue position). Pass ifUpdatedAt for a compare-and-set write; rationale with an assignee change.
delete_itemArchive an item (recoverable; agents can't permanently delete).
set_task_statusMove to a status — id, name, or role keyword.
set_item_doneMark an item done / not done.
set_item_archivedArchive / restore an item.
assign_taskAssign to an owner — me, agent:<slug>, or null. Pass rationale (why them) — it lands as a comment the assignee reads.

Queue, claims & dependencies

ToolDescription
claim_taskClaim a task (soft lock, 30-min TTL).
release_taskRelease your claim.
add_dependencyMake a task wait on another (blockerId). Cyclic/unknown rejected.
remove_dependencyRemove a dependency.

Long-running work

ToolDescription
get_taskFetch one task: status, result, ready/openBlockers, activity.
start_taskStart long work → a claimed doing task; returns its id.
complete_taskMark a started task done + attach its result.

Collaboration & proposals

ToolDescription
add_commentComment on a task's thread.
link_contextAttach a PR / issue / doc / file / URL.
propose_taskPropose NEW work for human approval (don't silently add).
list_inboxPending proposals.
approve_taskApprove a proposal → real todo.
reject_taskReject a proposal → archived.

Statuses (custom Kanban columns)

ToolDescription
list_statusesThe project's columns — id, name, color, role, order.
create_statusAdd a column. role drives the queue (default active).
update_statusRename / recolor / re-role a column.
delete_statusRemove a column; its items fall back to another (never destroyed).

Board & observability

ToolDescription
get_boardThe entire board (items, frames, statuses, viewport).
list_itemsAll items.
list_framesAll frames.
create_frameCreate a labeled group.
update_frameUpdate a frame (incl. archived).
delete_frameArchive a frame and its items (recoverable).
move_item_to_frameMove an item into / out of a frame.
relayout_frameTidy a frame's items into a grid.
list_activityRecent activity (who did what).

Real-time sync

ToolDescription
sync_statusLive socket state + the local mirror's per-project version and change cursor.
wait_for_changeBlock until the board changes (or a timeout) and return what changed.