MCP tool reference
Every tool Done's MCP server gives an agent, one page each: what it does, what it takes, what it may change, and which tokens can call it.
- Tools
- 86
- Read-only
- 36
- Write
- 50
All 86 pages are generated from the server's own tool definitions, so a name and description here are word for word what Claude, ChatGPT or any other MCP client receives.
86 of 86 tools
Agent queue & handoffs12
How an agent finds its work, claims it, hands it on, or stops.
list_my_tasksList my tasksRead-onlyList tasks assigned to an AI agent (your work queue), highest priority first.next_taskGet next taskWriteAtomically pick AND claim the single highest-priority task ready for you to work — the queue's dequeue.claim_taskClaim taskWriteClaim a task: mark it in_progress, assign it to the AI agent, and post a comment so the human sees you started.release_taskRelease taskWriteRelease your claim on a task (clears the lease) so another agent — or a later retry — can pick it up.decline_taskDecline taskWriteHand a task back: takes it off your queue entirely (clears the assignee and your claim, and returns it to not_started) and posts your reason to the task's thread.handoff_taskHand off taskWritePass a task you own to ANOTHER named agent on the roster, mid-flow — e.g. you built the lead list, now it's Instinct's outreach.list_agentsList agentsRead-onlyThe account's agent roster — the named agents a task can be pinned to (e.g. Claude, Instinct, Muse) — and which one YOU are.pause_taskPause taskWriteStop work on a task and keep every agent — including you, on the next run — off it until a human resumes it.pause_boardPause boardWriteStop the whole board: every agent on this account stops being handed work until a human resumes it.list_triggersList triggersRead-onlyRequests a human has addressed to you: someone hit "Run now" on a task, or wrote @claude in a comment.list_routinesList routinesRead-onlyRead-only: the recurring routines a human has scheduled on your boards.claim_triggerClaim triggerWriteTake responsibility for one request from list_triggers, so a fleet doesn't double-work an ask.
Tasks16
Read, create, change and annotate the tasks on your board.
list_tasksList tasksRead-onlyList all tasks on the board (sorted by priority then due date).get_taskGet taskRead-onlyGet one task in full: notes, metadata, subtasks, any calendar events it's tied to, and the activity feed (comments + status history, each entry naming who wrote it).comment_on_taskComment on taskWritePost a comment (markdown ok) to a task's thread as the AI agent — the lane a human actually reads.delete_commentDelete commentWriteDelete one of your own comments off a task's activity feed — a duplicate left by a retry, or a draft you've replaced with a better write-up.check_criterionTick acceptance criterionWriteTick one acceptance criterion off as met (or untick it with done:false).create_taskCreate taskWriteCreate a task. Break work into subtasks via parent_id, or file a follow-up.update_taskUpdate taskWriteUpdate fields on a task (title, notes, acceptance_criteria, description, priority, status, parent_id, project_id, start_date, due_date, due_time, due_hard, waiting, resurface_date, estimate_minutes…create_artifact_uploadCreate artifact uploadWriteAttach a real file to a task — a PDF, a screenshot, a spreadsheet, anything too large or too binary for an inline deliverable.delete_taskDelete taskWriteDelete a task and all of its subtasks (cascade). Returns how many were deleted.list_trashList trashRead-onlyList deleted tasks still in Trash (most recently deleted first), each restorable with restore_task.restore_taskRestore taskWriteRestore a deleted task (and whichever of its subtasks were deleted with it) out of Trash.quick_captureQuick captureWriteFast, frictionless capture: create a task from raw text. Understands natural-language cues — due dates (today/tomorrow/next friday/in 3 days/YYYY-MM-DD; prefix with "by" e.g. "by friday" to mark it a hard deadline, or "when:"/"due:" to pin a date the title…block_taskBlock taskWriteMark a task as blocked by another: it won't show up in list_my_tasks (the ready queue) until the blocker is done.unblock_taskUnblock taskWriteRemove a blocking dependency between two tasks.search_activitySearch activityRead-onlySearch the activity feed across every task you can see — comments, status changes and agent write-ups — instead of reading one task at a time.changes_sinceList changes since last sessionRead-onlyPull just what changed since your last session, instead of re-reading the whole board on every run.
Plans & steps6
Propose an approach before the work, then track it step by step.
propose_planPropose planWritePropose *how* you intend to tackle a task before doing the work, and wait for a human to approve it.approve_planApprove planWriteApprove a task's proposed plan (status plan_proposed), returning it to in_progress with plan_approved_at stamped so work can start.reject_planReject planWriteReject a task's proposed plan (status plan_proposed), sending it back to not_started with feedback so the approach can be reworked before any execution happens.decompose_taskDecompose taskWriteBreak a task into subtasks in one call: give it an id and a list of subtask titles, and it creates them all under that task (same as parent_id nesting, just batched).render_planRender planRead-onlyRender a task's plan of sub-steps for the user, laid out nicely.set_step_statusSet step statusWriteCheck a plan sub-step off (done=true) or reopen it (done=false), then return the refreshed plan.
Approvals & evidence8
Close work through the approval gate, with the evidence to check first.
complete_taskComplete taskWriteMark a task done directly. Only works on tasks with agent_ok=true — for anything else, call propose_completion instead (it'll error and tell you to).propose_completionPropose completionWritePropose a task as complete without closing it: posts your summary as a comment and sets status to pending_approval, where it sits until a human approves (→ done) or rejects (→ back to in_progress…approve_taskApprove taskWriteApprove a task that's pending_approval, marking it done. Human-only — this always errors when called by an agent (there's no way to tell a supervising agent from the one that proposed it); a human approves it in the app.reject_taskReject taskWriteReject a task that's pending_approval, sending it back to in_progress with feedback for whoever (re-)works it.propose_editPropose editWritePropose changes to a task's fields WITHOUT making them: a diff a human reads as current-vs-proposed and accepts or dismisses one field at a time.propose_brief_editPropose brief editWritePropose new wording for a project's or a task's agent brief (notes_for_agent) WITHOUT writing it.get_evidenceGet evidenceRead-onlyGather everything a human approving this task would want to check, in one call: acceptance-criteria progress, what the runs actually spent against the task's budget, every receipt the runs left…get_autonomy_ledgerGet autonomy ledgerRead-onlySee where agent_ok has been earned. Groups every approval and rejection of an agent-proposed completion by a stored class — a project or a tag — and reports, per class: how many were approved, how many rejected, the current run of…
Questions for you3
Park a question for a person without stopping the run.
ask_decisionAsk a human to decideWritePark a question for the human and MOVE ON — the one way to involve them without ending your run.list_open_decisionsList open decisionsRead-onlyEvery question currently waiting on the human, across the board — and the first thing to check each run, since a task whose question was answered is the cheapest work available (context already…withdraw_decisionWithdraw decisionWriteWithdraw a question you no longer need answered — you worked it out yourself, or the task moved past it.
Capture & grooming5
Suggest new tasks, and sort out the ones that went quiet.
propose_capturePropose captureWritePropose a task for the human's capture inbox — the front door, aimed at creation the way propose_completion is aimed at completion.list_capture_inboxList capture inboxRead-onlyRead the capture inbox back: suggestions and what the human did with them.propose_groomingPropose groomingWritePropose a batch of grooming dispositions in one reviewable pass — the disposition half of list_stale_tasks.list_grooming_proposalsList grooming proposalsRead-onlyRead grooming proposals back, with each item's disposition, reason and current state (pending / approved / dismissed).list_stale_tasksList stale tasksRead-onlyFind open work that has gone quiet, with the evidence needed to decide what to do about it — the grooming sweep.
Projects, tags & workspaces10
The containers and labels tasks are filed under.
list_projectsList projectsRead-onlyList all projects (sidebar containers) with their ids, names, colors, and waiting flag (true = blocked on someone else).list_workspacesList workspacesRead-onlyList the workspaces this account belongs to — id, name, role (owner or member), and `notes_for_agent`, the workspace's standing brief: instructions that apply to everything in it, the widest of the…delete_projectDelete projectWriteDelete a project. Its tasks are kept but unassigned from the project (project_id cleared).create_projectCreate projectWriteCreate a project to group tasks. color is one of: violet, red, emerald, amber, blue, pink, teal, slate.update_projectUpdate projectWriteRename a project, change its color, set waiting (true = you're blocked on someone else; filed under "Waiting on" in the sidebar), and/or reparent it (parent_id, or null to make it a top-level…list_tagsList tagsRead-onlyList all tags (cross-cutting labels, distinct from projects) with their ids, names, and colors.create_tagCreate tagWriteCreate a tag. color is one of: violet, red, emerald, amber, blue, pink, teal, slate.delete_tagDelete tagWriteDelete a tag. Removes it from every task that had it.tag_taskTag taskWriteApply an existing tag to a task. Tags are cross-cutting labels that work across projects — use them to group work a project can't ("needs-ale", "quick-win").untag_taskUntag taskWriteTake a tag off a task. Only removes the link — the tag itself survives on every other task carrying it, so this is safe to call without checking.
Goals4
The outcomes your projects add up to.
list_goalsList goalsRead-onlyList goals — the North Star tier above projects (an outcome you're working toward).create_goalCreate goalWriteCreate a goal — the North Star tier above projects. Goals don't nest and aren't project-shareable; file projects/tasks under it afterward via goal_id.update_goalUpdate goalWriteUpdate a goal's title, notes, target_date, or status (active/achieved/archived).delete_goalDelete goalWriteDelete a goal. Projects/tasks filed under it are kept but unfiled from it (goal_id cleared).
Calendar & your day5
Today's plan, and which task each meeting is about.
get_todays_planGet today's planRead-onlyGet the human's plan for today — the same day the app's Plan my day draws, from the same scheduler: their open tasks packed into time blocks around their meetings, inside their working hours, highest…list_calendar_eventsList calendar eventsRead-onlyList the human's cached calendar events (title, time, location, organiser, attendees) from their connected Google accounts.suggest_event_matchesSuggest event matchesRead-onlyRank likely task↔calendar-event pairs, best first, with the evidence behind each one.link_task_to_eventLink task to eventWriteRecord that a task and a calendar event are about the same thing.unlink_task_from_eventUnlink task from eventWriteRemove a task↔calendar-event link that turned out to be wrong.
Connected apps4
Read from, and save to, the apps you connected to Done.
list_connectionsList connectionsRead-onlyThe human's connected apps — Drive, Gmail, Notion, GitHub, Linear, Slack, Fireflies, Granola, PostHog — and what each one can be asked for.search_contextSearch contextRead-onlySearch the human's connected apps for something to read. Returns HITS, never bodies: each carries a connection_id and a ref to hand to read_context, plus a title, a kind (file, note, issue, message, transcript, email, insight) and a link.read_contextRead contextRead-onlyRead one thing found by search_context, as plain text. Takes the connection_id and ref from a hit — refs are the provider's own handle and are not guessable, with two exceptions worth knowing because they save a search: a GitHub ref is "owner/repo#123"…save_contextSave contextWriteSave a text document into a connected app that can hold one — Google Drive today, and only where list_connections shows `files.write`.
Runs, budgets & fleet8
Log work sessions, stay inside budgets, and see what each agent costs.
get_agent_rosterGet agent rosterRead-onlyWhat each named agent (task_runs.agent_name) has actually done, in one report: runs, minutes and tool calls spent, how many of its tasks a human approved vs rejected, the rejection rate, the…get_agent_economicsGet agent cost vs valueRead-onlyCost vs value of delegated work over a window of days, per agent (task_runs.agent_name; null = unnamed) and per project: runs, tool calls, minutes and reported tokens spent; spend against budget on…fleet_statusGet agent fleet statusRead-onlyLive snapshot of the agent fleet: every task an agent currently holds a claim on, how long it's been held, whether the lease has lapsed (a stall), and the open run's spend.runner_heartbeatReport runner heartbeatWriteFor a self-hosted runner box only. Registers this box against the account and reports its health, so the human can see their runner in Done rather than by reading logs over SSH.start_runStart runWriteOpen a run — one work session on a task — when you begin substantive work.check_night_budgetCheck overnight budgetRead-onlyAsk whether you may start another task tonight. Call this BETWEEN tasks in a scheduled/unattended run — task budgets cap one task, this caps the whole session, which is what stops an overnight routine from spending a week's headroom in one night.check_budgetCheck budgetRead-onlyCheck a task's remaining budget WITHOUT opening a run — call it mid-task to decide whether to keep going.end_runEnd runWriteClose a run you opened with start_run, reporting what it spent and the evidence for what it claims.
Briefings & reports5
Snapshots of your day, your week, and what agents shipped.
get_digestGet digestRead-onlyGet today's snapshot: overdue tasks, tasks due today, stalled tasks (open, untouched for 5+ days), tasks completed in the last 24h, tasks awaiting your approval, and the size of the AI agent queue.get_briefingGet briefingRead-onlyGet the human's Briefing — the app's one page to start the day from, built by the same rules: (1) `agents`: what agents did since `since` — tasks shipped, runs that failed or are still running, how…get_weekly_reviewGet weekly reviewRead-onlyGet a week-in-review snapshot: tasks completed in the last 7 days, stalled tasks, overdue count, and total open count.get_statsGet statsRead-onlyGet productivity stats: totals (open/done/overdue/agent queue), a daily completion trend, the current completion streak, open tasks by priority and by project, and completions split between you and…list_claude_shippedList what agents shippedRead-onlyList the tasks an AI agent (not you) marked done, newest first — 'what Claude shipped'.
Connect Done to your assistant
One MCP endpoint per account, over OAuth or a token. Step-by-step setup for each client: