Tasks

Space MCP tools in the Tasks scope (tasks). Reach these with a wks_live_ key over space-mcp or space-api.

Tools in the tasks scope, callable over space-mcp (tools/call) or space-api (REST) with a wks_live_* key that grants tasks.

add_task_status

Scope: tasks:write

Add a column to a task project: name, color (hex), finishes:true when a task in it is finished (like Done), position (0 = first; default last).

ParameterTypeRequiredDescription
project_idstringyes
namestringyes
colorstring,null
finishesboolean
positionnumber

cancel_schedule

Scope: tasks:write

Cancel one of your alarms (id from list_schedules). A recurring one stops for good; set it again if you need it back.

ParameterTypeRequiredDescription
schedule_idstringyes

comment_on_task

Scope: tasks:write

Comment on a task, as yourself — progress, a question, what you found. When the task is assigned to another agent, your comment reaches it in its chat; a comment on a task assigned to you reaches nobody's chat (write to the person in yours). Tag with @ (the mention from find_to_mention): a person tagged is notified, an agent tagged is told in its chat.

ParameterTypeRequiredDescription
task_idstringyes
textstringyes

create_task

Scope: tasks:write

Create a task. Requires title. Optional: description, instructions (the steps whoever does it follows), priority (low|normal|high|urgent), status (a column slug here), start_at / due_at (ISO), project_id, parent_id (makes it a subtask), requires_approval (a person must approve it before it counts as done), budget_limit (dollars), tags (names — a new name becomes a tag), contact_ids. To have an AGENT do it, assign_to_agent_id (from list_agents; run_via:"reach" runs it through its External Reach instead of its machine) — it starts at once, in a thread of its own chat; assign_to_self:true gives it to you. To give it to a PERSON, assign_to_user_id (a member). Tag anyone or anything in the space with @: write the mention find_to_mention gives ("@Julie [member:…]") — people tagged are notified.

ParameterTypeRequiredDescription
titlestringyes
descriptionstring
instructionsstring
prioritylow | normal | high | urgent
statusstring
start_atstring,null
due_atstring,null
project_idstring,null
parent_idstring,null
requires_approvalboolean
budget_limitnumber,null
tagsstring[]
contact_idsstring[]
assign_to_agent_idstringAn agent's agent_id (list_agents).
assign_to_user_idstringA member's user id (list_space_members).
run_viamachine | reachHow an assigned agent runs it: its machine (default) or its External Reach.
assign_to_selfbooleanGive the task to yourself.
assigned_to_reach_idstringOlder way to assign — prefer assign_to_agent_id.
assigned_to_workspace_idstringOlder way to assign — prefer assign_to_agent_id.

create_task_project

Scope: tasks:write

Make a task project (a board) with its columns: statuses = the columns left to right, each { name, color? (hex), finishes? (true when a task in it is finished, like Done) } — e.g. Idea · Writing · Editing · Published. Without statuses it starts with To Do · In Progress · In Review · Done. Change them later with add_task_status / update_task_status / remove_task_status / reorder_task_statuses. Optional description, color (hex), icon, deadline (ISO).

ParameterTypeRequiredDescription
namestringyes
descriptionstring,null
colorstring,null
iconstring,null
deadlinestring,null
statusesobject[]The columns, left to right (1–20).

delete_task

Scope: tasks:write

Delete a task for good, with its subtasks and comments. Returns how many subtasks went with it. To stop work without losing it, set its status to cancelled instead.

ParameterTypeRequiredDescription
task_idstringyes

delete_task_project

Scope: tasks:write

Delete a task project. Its tasks stay, outside any project. Type the project's name back as confirm_name. To keep it whole but out of sight, archive it with update_task_project instead.

ParameterTypeRequiredDescription
project_idstringyes
confirm_namestringyes

find_to_mention

Scope: tasks:read

Find anyone or anything in this space to TAG with @ — people, agents, contacts, documents, tasks, pages, forms, tables, automations, files, calendar events — by name. Each result carries mention, e.g. "@Julie [member:…]": write it exactly where the text should tag it and it shows as a tag: a task (description, instructions, result, comments), a table row comment (add_row_comment), a contact's personal notes, a file's description, a table's description, External Reach instructions, or your own chat messages. A person tagged is notified; an agent tagged is told in its chat. kinds narrows it (people, agents, contacts, documents, tasks, pages, forms, tables, automations, files, events).

ParameterTypeRequiredDescription
querystringA name, or part of one. Empty lists what is there.
kindsstring[]
limitnumberPer kind (default 8, max 25).

get_task

Scope: tasks:read

Open one task whole: its instructions, result, who has it, due/start dates, whether it needs approval, tags, linked contacts (name/email/phone), parent, subtasks, the last 50 comments (who said what, and any approve / changes / reject decision), the statuses it can take here, and the thread in the assigned agent's chat. Read it before working a task you were given. Tags in its text read as "@<name> [<kind>:<id>]" and are listed under mentions.

ParameterTypeRequiredDescription
task_idstringyes

list_agents

Scope: tasks:read

The agents of this space — one row each (there is one kind of agent). Each row carries the id to assign a task with: assigned_to_workspace_id runs it on the agent's machine, assigned_to_reach_id runs it through the agent's Reach (its serverless harness) when that is switched on. agent_id is what the *_agent_reach tools and mail campaigns take. An assigned agent automatically runs the task.

list_schedules

Scope: tasks:read

Your alarms — every schedule_task still to fire, with when. Cancel one with cancel_schedule.

ParameterTypeRequiredDescription
include_finishedbooleanAlso the ones that already fired or were cancelled (last 100).

list_task_comments

Scope: tasks:read

The comments on a task, oldest first: who wrote each (a person, an agent, or the review), the text, and the decision a review line carries (approved / changes_requested / rejected).

ParameterTypeRequiredDescription
task_idstringyes
limitnumber

list_task_projects

Scope: tasks:read

List the space's task projects (boards) with their columns (statuses: id, name, slug, whether it finishes a task), how many tasks each holds and how many are finished. include_archived:true to see archived ones.

ParameterTypeRequiredDescription
include_archivedboolean

list_tasks

Scope: tasks:read

List the space's tasks with who has each (assignee: an agent or a person, by name), tags, project, subtask and comment counts. Filters: status (a column's slug — todo, in_progress, in_review, blocked, done, cancelled, or a project's own), project_id ("none" = outside any project), assigned_to (an agent_id, a member's user id, "unassigned", "agents" or "people"), parent_id (a task's subtasks, or "none" for top-level only), search (title/description words), tag (a tag name), due_before / due_after (ISO), include_done:false to leave finished tasks out, limit/offset. Open one whole with get_task.

ParameterTypeRequiredDescription
statusstring
project_idstring
assigned_tostring
parent_idstring
searchstring
tagstring
due_beforestring
due_afterstring
include_doneboolean
limitnumber
offsetnumber

remove_task_status

Scope: tasks:write

Remove a column from a task project. Its tasks move to move_to (another column's slug) or, without it, to the project's first open column. A project keeps at least one column.

ParameterTypeRequiredDescription
status_idstringyes
move_tostring

reorder_task_statuses

Scope: tasks:write

Put a task project's columns in a new order: status_ids = every column's id once, left to right.

ParameterTypeRequiredDescription
project_idstringyes
status_idsstring[]yes

review_task

Scope: tasks:write

Decide a task that is In review: decision approve (it is done), request_changes (back to In progress — note says what to change, required), or reject (cancelled). The decision is written on the task as a comment and reaches the agent that did it. You cannot review a task assigned to you — someone else approves your work.

ParameterTypeRequiredDescription
task_idstringyes
decisionapprove | request_changes | rejectyes
notestringWhy — required for request_changes.

schedule_task

Scope: tasks:write

Set yourself an alarm — a note that lands in your chat at a time, wakes you, and you do what it says. One-off ("in an hour, close the browser") or recurring ("every weekday at 09:00, check the mailbox and report"). This is how you wait: never stay awake for something later — set the alarm, finish your turn, and the note brings you back. prompt is the note to your future self, in the second person, complete enough to act on with no other context. When: in_minutes (from now), or at (ISO 8601 — a bare YYYY-MM-DDTHH:MM is read in the space's timezone), or time_of_day (HH:MM, the next time the clock reads it; with recurrence it repeats at that time). The owner sees every alarm on your page and may cancel it.

ParameterTypeRequiredDescription
promptstringyesWhat to do when it fires — to your future self, second person.
titlestringA few words the owner will recognise it by ("Turn off the game"). Defaults to the first line of the prompt.
in_minutesnumberFire this many minutes from now.
atstringISO 8601 instant, or YYYY-MM-DDTHH:MM in the space's timezone.
time_of_daystringHH:MM in the space's timezone — the next such time; the daily time when recurring.
recurrencedaily | weekdays | weekly | monthlyRepeat: daily, weekdays, weekly (same weekday), monthly (same day). Omit for once.

update_task

Scope: tasks:write

Change a task: title, description, instructions, result (what was done — write it when you finish), status (a column slug here; on a task that needs approval, a finishing status puts it In review — review_task decides), priority, start_at / due_at (ISO; null clears), project_id (null = none), parent_id (null = top-level), requires_approval, budget_limit. Who has it: assign_to_agent_id (+ run_via), assign_to_user_id, or unassign:true. Tags: tags REPLACES the list, add_tags / remove_tags edit it (names). Contacts: contact_ids replaces, add_contact_ids / remove_contact_ids edit. Tag anyone or anything in the space with @: write the mention find_to_mention gives ("@Julie [member:…]") — people tagged are notified.

ParameterTypeRequiredDescription
task_idstringyes
titlestring
descriptionstring
instructionsstring
resultstring
statusstring
prioritylow | normal | high | urgent
start_atstring,null
due_atstring,null
project_idstring,null
parent_idstring,null
requires_approvalboolean
budget_limitnumber,null
assign_to_agent_idstring
assign_to_user_idstring
run_viamachine | reach
unassignboolean
tagsstring[]
add_tagsstring[]
remove_tagsstring[]
contact_idsstring[]
add_contact_idsstring[]
remove_contact_idsstring[]

update_task_project

Scope: tasks:write

Change a task project: name, description, color, icon, deadline (null clears), archived (true hides it from the Tasks page and keeps everything).

ParameterTypeRequiredDescription
project_idstringyes
namestring
descriptionstring,null
colorstring,null
iconstring,null
deadlinestring,null
archivedboolean

update_task_status

Scope: tasks:write

Rename, recolor or change whether a project's column finishes a task (status_id from list_task_projects). Renaming changes the name only — its slug and its tasks stay.

ParameterTypeRequiredDescription
status_idstringyes
namestring
colorstring,null
finishesboolean

On this page